Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.kernel.org/pub/scm/git/git.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Sixt <j6t@kdbg.org>2021-10-24 12:56:43 +0300
committerJunio C Hamano <gitster@pobox.com>2021-10-25 18:47:44 +0300
commit386076ec92c702104cb15bc23e4521dac10c7c2d (patch)
treeb56c6f018bcce04e0c82c75758c626ac9942aa40 /userdiff.c
parentc4fdba338355d80e40b84391af9f8c022d4f21af (diff)
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>
Diffstat (limited to 'userdiff.c')
-rw-r--r--userdiff.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/userdiff.c b/userdiff.c
index 7b143ef36b..8578cb0d12 100644
--- a/userdiff.c
+++ b/userdiff.c
@@ -67,11 +67,11 @@ PATTERNS("cpp",
/* identifiers and keywords */
"[a-zA-Z_][a-zA-Z0-9_]*"
/* decimal and octal integers as well as floatingpoint numbers */
- "|[0-9][0-9.']*([Ee][-+]?[0-9]+)?[fFlLuU]*"
+ "|[0-9][0-9.]*([Ee][-+]?[0-9]+)?[fFlLuU]*"
/* hexadecimal and binary integers */
- "|0[xXbB][0-9a-fA-F']+[lLuU]*"
+ "|0[xXbB][0-9a-fA-F]+[lLuU]*"
/* floatingpoint numbers that begin with a decimal point */
- "|\\.[0-9][0-9']*([Ee][-+]?[0-9]+)?[fFlL]?"
+ "|\\.[0-9][0-9]*([Ee][-+]?[0-9]+)?[fFlL]?"
"|[-+*/<>%&^|=!]=|--|\\+\\+|<<=?|>>=?|&&|\\|\\||::|->\\*?|\\.\\*|<=>"),
PATTERNS("csharp",
/* Keywords */