userdiff-cpp: back out the digit-separators in numbers
commit386076ec92c702104cb15bc23e4521dac10c7c2d
authorJohannes Sixt <j6t@kdbg.org>
Sun, 24 Oct 2021 09:56:43 +0000 (24 11:56 +0200)
committerJunio C Hamano <gitster@pobox.com>
Mon, 25 Oct 2021 15:47:44 +0000 (25 08:47 -0700)
treeb56c6f018bcce04e0c82c75758c626ac9942aa40
parentc4fdba338355d80e40b84391af9f8c022d4f21af
userdiff-cpp: back out the digit-separators in numbers

The implementation of digit-separating single-quotes introduced a
note-worthy regression: the change of a character literal with a
digit would splice the digit and the closing single-quote. For
example, the change from 'a' to '2' is now tokenized as
'[-a'-]{+2'+} instead of '[-a-]{+2+}'.

The options to fix the regression are:

- Tighten the regular expression such that the single-quote can only
  occur between digits (that would match the official syntax).

- Remove support for digit separators.

I chose to remove support, because

- I have not seen a lot of code make use of digit separators.

- If code does use digit separators, then the numbers are typically
  long. If a change in one of the segments occurs, it is actually
  better visible if only that segment is highlighted as the word
  that changed instead of the whole long number.

This choice does introduce another minor regression, though, which
is highlighted in the test case: when a change occurs in the second
or later segment of a hexadecimal number where the segment begins
with a digit, but also has letters, the segment is mistaken as
consisting of a number and an identifier. I can live with that.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t4034/cpp/expect
t/t4034/cpp/post
t/t4034/cpp/pre
userdiff.c