Re: [PATCH replacement for take 3 4/4] color-words: take an optional regular expression describing words

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Johannes Schindelin
Date: Wednesday, January 14, 2009 - 6:36 pm

Hi,

On Thu, 15 Jan 2009, Johannes Schindelin wrote:


[PATCH to be squashed into the word regex patch] Fix for strange '@@ -2 +1,0 @@' hunk header

If a hunk header '@@ -2 +1,0 @@' is found that logically should be
'@@ -2 +2,0 @@', diff_words got confused.

It would bee squashed into 4/4.

This might be a libxdiff issue, though.

Not sure yet.
---
 diff.c                |   18 ++++++++++++++++++
 t/t4034-diff-words.sh |   16 ++++++++++++++++
 2 files changed, 34 insertions(+), 0 deletions(-)

diff --git a/diff.c b/diff.c
index c5f7c57..3709651 100644
--- a/diff.c
+++ b/diff.c
@@ -360,6 +360,24 @@ static void fn_out_diff_words_aux(void *priv, char *line, unsigned long len)
 	plus_end = plus_len == 0 ? plus_begin :
 		diff_words->plus.orig[plus_first + plus_len - 1].end;
 
+	/*
+	 * since this is a --unified=0 diff, it can result in a single hunk
+	 * with a header like this: @@ -2 +1,0 @@
+	 *
+	 * This breaks the assumption that minus_first == plus_first.
+	 *
+	 * So we have to fix it: whenever we reach the end of pre and post
+	 * texts, but nothing was added, we need to shift the plus part
+	 * to the end of the buffer.
+	 *
+	 * It is only necessary for the plus part, as we show the common
+	 * words from that buffer.
+	 */
+	if (plus_len == 0 && minus_first + minus_len
+			== diff_words->minus.orig_nr)
+		plus_begin = plus_end =
+			diff_words->plus.orig[diff_words->plus.orig_nr - 1].end;
+
 	if (diff_words->current_plus != plus_begin)
 		fwrite(diff_words->current_plus,
 				plus_begin - diff_words->current_plus, 1,
diff --git a/t/t4034-diff-words.sh b/t/t4034-diff-words.sh
index 07e48d1..817fba6 100755
--- a/t/t4034-diff-words.sh
+++ b/t/t4034-diff-words.sh
@@ -135,6 +135,22 @@ test_expect_success 'test parsing words for newline' '
 
 	word_diff --color-words="a+"
 
+'
+
+echo '(:' > pre
+echo '(' > post
+
+cat > expect <<\EOF
+<WHITE>diff --git a/pre b/post<RESET>
+<WHITE>index 289cb9d..2d06f37 100644<RESET>
+<WHITE>--- a/pre<RESET>
+<WHITE>+++ b/post<RESET>
+<BROWN>@@ -1 +1 @@<RESET>
+(<RED>:<RESET>
+EOF
+
+test_expect_success 'test when words are only removed at the end' '
+
 	word_diff --color-words=.
 
 '
-- 
1.6.1.300.gbc493

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 0/4] refactor the --color-words to make it more hac ..., Johannes Schindelin, (Sun Jan 11, 12:58 pm)
[PATCH 1/4] Add color_fwrite(), a function coloring each l ..., Johannes Schindelin, (Sun Jan 11, 12:59 pm)
[PATCH 2/4] color-words: refactor word splitting and use A ..., Johannes Schindelin, (Sun Jan 11, 12:59 pm)
[PATCH 3/4] color-words: refactor to allow for 0-character ..., Johannes Schindelin, (Sun Jan 11, 12:59 pm)
[PATCH 4/4] color-words: take an optional regular expressi ..., Johannes Schindelin, (Sun Jan 11, 1:00 pm)
Re: [PATCH 0/4] refactor the --color-words to make it more ..., Johannes Schindelin, (Sun Jan 11, 4:02 pm)
Re: [PATCH 3/4] color-words: refactor to allow for 0-chara ..., Johannes Schindelin, (Sun Jan 11, 4:38 pm)
Re: [PATCH 1/4] Add color_fwrite(), a function coloring ea ..., Johannes Schindelin, (Sun Jan 11, 4:49 pm)
[PATCH v2 1/4] Add color_fwrite(), a function coloring eac ..., Johannes Schindelin, (Sun Jan 11, 4:49 pm)
[PATCH take 3 0/4] color-words improvements, Johannes Schindelin, (Wed Jan 14, 10:49 am)
[PATCH 1/4] Add color_fwrite_lines(), a function coloring ..., Johannes Schindelin, (Wed Jan 14, 10:50 am)
[PATCH 2/4] color-words: refactor word splitting and use A ..., Johannes Schindelin, (Wed Jan 14, 10:50 am)
[PATCH 3/4] color-words: change algorithm to allow for 0-c ..., Johannes Schindelin, (Wed Jan 14, 10:51 am)
[PATCH 4/4] color-words: take an optional regular expressi ..., Johannes Schindelin, (Wed Jan 14, 10:51 am)
Re: [PATCH 3/4] color-words: change algorithm to allow for ..., Johannes Schindelin, (Wed Jan 14, 11:08 am)
Re: [PATCH take 3 0/4] color-words improvements, Teemu Likonen, (Wed Jan 14, 11:54 am)
Re: [PATCH take 3 0/4] color-words improvements, Teemu Likonen, (Wed Jan 14, 11:57 am)
Re: [PATCH take 3 0/4] color-words improvements, Johannes Schindelin, (Wed Jan 14, 12:28 pm)
Re: [PATCH take 3 0/4] color-words improvements, Johannes Schindelin, (Wed Jan 14, 12:32 pm)
Re: [PATCH take 3 0/4] color-words improvements, Thomas Rast, (Wed Jan 14, 12:58 pm)
Re: [PATCH take 3 0/4] color-words improvements, Thomas Rast, (Wed Jan 14, 1:04 pm)
Re: [PATCH] color-words: make regex configurable via attri ..., Johannes Schindelin, (Wed Jan 14, 1:12 pm)
[PATCH replacement for take 3 3/4] color-words: change alg ..., Johannes Schindelin, (Wed Jan 14, 1:44 pm)
[PATCH replacement for take 3 4/4] color-words: take an op ..., Johannes Schindelin, (Wed Jan 14, 1:46 pm)
Re: [PATCH take 3 0/4] color-words improvements, Johannes Schindelin, (Wed Jan 14, 2:07 pm)
Re: [PATCH take 3 0/4] color-words improvements, Johannes Schindelin, (Wed Jan 14, 3:06 pm)
Re: [PATCH take 3 0/4] color-words improvements, Thomas Rast, (Wed Jan 14, 3:11 pm)
Re: [PATCH take 3 0/4] color-words improvements, Boyd Stephen Smith Jr., (Wed Jan 14, 3:24 pm)
[PATCH 1/4] color-words: fix quoting in t4034, Thomas Rast, (Wed Jan 14, 3:26 pm)
Re: [PATCH take 3 0/4] color-words improvements, Thomas Rast, (Wed Jan 14, 3:37 pm)
Re: [PATCH 1/4] color-words: fix quoting in t4034, Johannes Schindelin, (Wed Jan 14, 3:41 pm)
Re: [PATCH replacement for take 3 4/4] color-words: take a ..., Johannes Schindelin, (Wed Jan 14, 6:12 pm)
Re: [PATCH 4/4] color-words: make regex configurable via a ..., Johannes Schindelin, (Wed Jan 14, 6:33 pm)
Re: [PATCH replacement for take 3 4/4] color-words: take a ..., Johannes Schindelin, (Wed Jan 14, 6:36 pm)
Re: [PATCH 4/4] color-words: make regex configurable via a ..., Johannes Schindelin, (Wed Jan 14, 6:43 pm)
Re: [PATCH take 3 0/4] color-words improvements, Teemu Likonen, (Wed Jan 14, 9:56 pm)
Re: [PATCH take 3 0/4] color-words improvements, Johannes Schindelin, (Thu Jan 15, 5:41 am)
Re: [PATCH replacement for take 3 4/4] color-words: take a ..., Johannes Schindelin, (Thu Jan 15, 5:54 am)
Re: [PATCH take 3 0/4] color-words improvements, Teemu Likonen, (Thu Jan 15, 6:03 am)
Re: [PATCH take 3 0/4] color-words improvements, Thomas Rast, (Thu Jan 15, 6:27 am)
Re: [PATCH take 3 0/4] color-words improvements, Junio C Hamano, (Thu Jan 15, 11:15 am)
Re: [PATCH take 3 0/4] color-words improvements, Johannes Schindelin, (Thu Jan 15, 12:25 pm)
Re: [PATCH take 3 0/4] color-words improvements, Santi Béjar, (Thu Jan 15, 5:10 pm)
Re: [PATCH take 3 0/4] color-words improvements, Junio C Hamano, (Thu Jan 15, 6:37 pm)
Re: [PATCH take 3 0/4] color-words improvements, Boyd Stephen Smith Jr., (Thu Jan 15, 6:42 pm)
Re: [PATCH take 3 0/4] color-words improvements, Johannes Schindelin, (Thu Jan 15, 6:55 pm)
Re: [PATCH take 3 0/4] color-words improvements, Santi Béjar, (Fri Jan 16, 2:02 am)
Re: [PATCH take 3 0/4] color-words improvements, Johannes Schindelin, (Fri Jan 16, 4:57 am)
Re: [PATCH take 3 0/4] color-words improvements, Santi Béjar, (Fri Jan 16, 5:01 am)
Re: [PATCH take 3 0/4] color-words improvements, Johannes Schindelin, (Fri Jan 16, 5:40 am)
Re: [PATCH take 3 0/4] color-words improvements, Boyd Stephen Smith Jr., (Fri Jan 16, 9:11 am)
Re: [PATCH take 3 0/4] color-words improvements, Thomas Rast, (Fri Jan 16, 12:04 pm)
Re: [PATCH take 3 0/4] color-words improvements, Johannes Schindelin, (Fri Jan 16, 2:09 pm)
[PATCH v4 0/7] customizable --color-words, Thomas Rast, (Sat Jan 17, 9:29 am)
Re: [PATCH v4 0/7] customizable --color-words, Santi Béjar, (Sun Jan 18, 8:05 am)
Re: [PATCH v4 0/7] customizable --color-words, Santi Béjar, (Sun Jan 18, 8:29 am)
Re: [PATCH v4 0/7] customizable --color-words, Santi Béjar, (Mon Jan 19, 3:47 pm)
Re: [PATCH v4 0/7] customizable --color-words, Johannes Schindelin, (Mon Jan 19, 4:35 pm)
[PATCH] Add tests for diff.color-words configuration option., Boyd Stephen Smith Jr., (Mon Jan 19, 7:17 pm)
[PATCH] diff: Support diff.color-words config option, Boyd Stephen Smith Jr., (Mon Jan 19, 8:45 pm)
Re: [PATCH] diff: Support diff.color-words config option, Junio C Hamano, (Mon Jan 19, 11:59 pm)
Re: [PATCH] Add tests for diff.color-words configuration o ..., Johannes Schindelin, (Tue Jan 20, 2:58 am)
Re: [PATCH] diff: Support diff.color-words config option, Johannes Schindelin, (Tue Jan 20, 3:02 am)
Re: [PATCH] Add tests for diff.color-words configuration o ..., Boyd Stephen Smith Jr., (Tue Jan 20, 9:34 am)
Re: [PATCH] diff: Support diff.color-words config option, Boyd Stephen Smith Jr., (Tue Jan 20, 9:52 am)
Re: [PATCH] Add tests for diff.color-words configuration o ..., Johannes Schindelin, (Tue Jan 20, 9:54 am)
Re: [PATCH] diff: Support diff.color-words config option, Junio C Hamano, (Tue Jan 20, 10:09 am)
Re: [PATCH] diff: Support diff.color-words config option, Johannes Schindelin, (Tue Jan 20, 10:14 am)
Re: [PATCH] diff: Support diff.color-words config option, Johannes Schindelin, (Tue Jan 20, 10:28 am)
Re: [PATCH] diff: Support diff.color-words config option, Markus Heidelberg, (Tue Jan 20, 10:42 am)
Re: [PATCH] diff: Support diff.color-words config option, Boyd Stephen Smith Jr., (Tue Jan 20, 10:58 am)
Re: [PATCH] diff: Support diff.color-words config option, Junio C Hamano, (Tue Jan 20, 1:27 pm)
Re: [PATCH] diff: Support diff.color-words config option, Johannes Schindelin, (Tue Jan 20, 2:02 pm)
Re: [PATCH] diff: Support diff.color-words config option, Johannes Schindelin, (Tue Jan 20, 2:08 pm)
[PATCH] color-words: Support diff.color-words config option, Boyd Stephen Smith Jr., (Tue Jan 20, 8:46 pm)
[PATCH] Change the spelling of &quot;wordregex&quot;., Boyd Stephen Smith Jr., (Tue Jan 20, 9:59 pm)
Re: [PATCH] color-words: Support diff.color-words config o ..., Johannes Schindelin, (Wed Jan 21, 1:25 am)
Re: [PATCH] Change the spelling of &quot;wordregex&quot;., Johannes Schindelin, (Wed Jan 21, 1:26 am)
Re: [PATCH] Change the spelling of &quot;wordregex&quot;., Boyd Stephen Smith Jr., (Wed Jan 21, 8:33 am)
Re: [PATCH] color-words: Support diff.color-words config o ..., Boyd Stephen Smith Jr., (Wed Jan 21, 9:09 am)
Re: [PATCH] diff: Support diff.color-words config option, Markus Heidelberg, (Wed Jan 21, 12:37 pm)