Subject: Re: [GSoC PATCH 0/2] diff: handle ANSI chars in prefix when calculating diffstat width

From: Junio C Hamano <[email-masked]>
Date: Mon, 23 Feb 2026 21:17:43 -0800

LorenzoPegorari <[email-masked]> writes:

> This patch aims to fix a bug where the calculation of the diffstat width
> incorrectly uses the strlen() of line_prefix instead of its actual
> display width.
>
> This patch addresses the NEEDSWORK item added by ce8529b2 (diff: leave
> NEEDWORK notes in show_stats() function, 2022-10-21).
>
> Also, this bug was reported and suggested to me by Junio C Hamano here:
> https://lore.kernel.org/git/[email-masked]/
>
> Junio, do you wish to be included in this patch by a Reported-by and/or
> Suggested-by tag?

Neither.  I didn't report or suggest anything recently.  I merely
pointed at one out of the two NEEDSWORK comments that was written
long time ago when you addressed the other one.

>   diff: handle ANSI chars in prefix when calculating diffstat width
>   t4074: add test for diffstat width when prefix contains ANSI chars

"ANSI chars" is a phrase that was hard to understand, as the theme
of this was paged out of my working memory a long time ago ;-).  I
think the issue is that strings with ANSI color escape sequences are
used in "log --graph" and other output, and in order to measure how
many display columns these strings occupy, we must not be using
strlen() but utr8_strnwidth() that knows how to count UTF-8 chars
(whose display widths do not match the number of bytes) as well as
that these color escape sequences do not occupy any display width?

Anyway, thanks for working on these patches.