Re: [GSoC PATCH 0/2] diff: handle ANSI chars in prefix when calculating diffstat width
From: Junio C Hamano <hidden>
Date: 2026-02-24 05:17:45
LorenzoPegorari [off-list ref] 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/xmqqikd3ermt.fsf@gitster.g/ (local) 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.