summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2016-07-25 21:13:35 (GMT)
committerJunio C Hamano <gitster@pobox.com>2016-07-25 21:13:35 (GMT)
commitf2cfb8fcc993b77b0a0420a84fd1a9a48cbe0ab9 (patch)
treec41fd869cc504b59f5c7c65feaea0fe457786344
parent87492cb24d9d8be8e18217b89ae5f090089ff31d (diff)
parent044fb190f75cdec35e56bde30ec214ab144311d9 (diff)
downloadgit-f2cfb8fcc993b77b0a0420a84fd1a9a48cbe0ab9.zip
git-f2cfb8fcc993b77b0a0420a84fd1a9a48cbe0ab9.tar.gz
git-f2cfb8fcc993b77b0a0420a84fd1a9a48cbe0ab9.tar.bz2
Merge branch 'js/ignore-space-at-eol'
An age old bug that caused "git diff --ignore-space-at-eol" misbehave has been fixed. * js/ignore-space-at-eol: diff: fix a double off-by-one with --ignore-space-at-eol diff: demonstrate a bug with --patience and --ignore-space-at-eol
-rwxr-xr-xt/t4033-diff-patience.sh8
-rw-r--r--xdiff/xpatience.c2
-rw-r--r--xdiff/xutils.c6
3 files changed, 13 insertions, 3 deletions
diff --git a/t/t4033-diff-patience.sh b/t/t4033-diff-patience.sh
index 3c9932e..113304d 100755
--- a/t/t4033-diff-patience.sh
+++ b/t/t4033-diff-patience.sh
@@ -5,6 +5,14 @@ test_description='patience diff algorithm'
. ./test-lib.sh
. "$TEST_DIRECTORY"/lib-diff-alternative.sh
+test_expect_success '--ignore-space-at-eol with a single appended character' '
+ printf "a\nb\nc\n" >pre &&
+ printf "a\nbX\nc\n" >post &&
+ test_must_fail git diff --no-index \
+ --patience --ignore-space-at-eol pre post >diff &&
+ grep "^+.*X" diff
+'
+
test_diff_frobnitz "patience"
test_diff_unique "patience"
diff --git a/xdiff/xpatience.c b/xdiff/xpatience.c
index 04e1a1a..a613efc 100644
--- a/xdiff/xpatience.c
+++ b/xdiff/xpatience.c
@@ -1,6 +1,6 @@
/*
* LibXDiff by Davide Libenzi ( File Differential Library )
- * Copyright (C) 2003-2009 Davide Libenzi, Johannes E. Schindelin
+ * Copyright (C) 2003-2016 Davide Libenzi, Johannes E. Schindelin
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/xdiff/xutils.c b/xdiff/xutils.c
index 62cb23d..027192a 100644
--- a/xdiff/xutils.c
+++ b/xdiff/xutils.c
@@ -200,8 +200,10 @@ int xdl_recmatch(const char *l1, long s1, const char *l2, long s2, long flags)
return 0;
}
} else if (flags & XDF_IGNORE_WHITESPACE_AT_EOL) {
- while (i1 < s1 && i2 < s2 && l1[i1++] == l2[i2++])
- ; /* keep going */
+ while (i1 < s1 && i2 < s2 && l1[i1] == l2[i2]) {
+ i1++;
+ i2++;
+ }
}
/*