Merge branch 'tr/maint-word-diff-incomplete-line'
* tr/maint-word-diff-incomplete-line: word-diff: ignore '\ No newline at eof' marker
This commit is contained in:
commit
05c65cb116
9
diff.c
9
diff.c
@ -1113,6 +1113,15 @@ static void fn_out_consume(void *priv, char *line, unsigned long len)
|
|||||||
diff_words_append(line, len,
|
diff_words_append(line, len,
|
||||||
&ecbdata->diff_words->plus);
|
&ecbdata->diff_words->plus);
|
||||||
return;
|
return;
|
||||||
|
} else if (!prefixcmp(line, "\\ ")) {
|
||||||
|
/*
|
||||||
|
* Eat the "no newline at eof" marker as if we
|
||||||
|
* saw a "+" or "-" line with nothing on it,
|
||||||
|
* and return without diff_words_flush() to
|
||||||
|
* defer processing. If this is the end of
|
||||||
|
* preimage, more "+" lines may come after it.
|
||||||
|
*/
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
diff_words_flush(ecbdata);
|
diff_words_flush(ecbdata);
|
||||||
if (ecbdata->diff_words->type == DIFF_WORDS_PORCELAIN) {
|
if (ecbdata->diff_words->type == DIFF_WORDS_PORCELAIN) {
|
||||||
|
@ -334,4 +334,18 @@ test_expect_success 'word-diff with diff.sbe' '
|
|||||||
word_diff --word-diff=plain
|
word_diff --word-diff=plain
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'word-diff with no newline at EOF' '
|
||||||
|
cat >expect <<-\EOF &&
|
||||||
|
diff --git a/pre b/post
|
||||||
|
index 7bf316e..3dd0303 100644
|
||||||
|
--- a/pre
|
||||||
|
+++ b/post
|
||||||
|
@@ -1 +1 @@
|
||||||
|
a a [-a-]{+ab+} a a
|
||||||
|
EOF
|
||||||
|
printf "%s" "a a a a a" >pre &&
|
||||||
|
printf "%s" "a a ab a a" >post &&
|
||||||
|
word_diff --word-diff=plain
|
||||||
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
Loading…
Reference in New Issue
Block a user