Thread (1 message) 1 message, 1 author, 2026-02-24

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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help