diff options
author | Junio C Hamano <gitster@pobox.com> | 2016-07-25 14:13:35 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-07-25 14:13:35 -0700 |
commit | f2cfb8fcc993b77b0a0420a84fd1a9a48cbe0ab9 (patch) | |
tree | c41fd869cc504b59f5c7c65feaea0fe457786344 | |
parent | 87492cb24d9d8be8e18217b89ae5f090089ff31d (diff) | |
parent | 044fb190f75cdec35e56bde30ec214ab144311d9 (diff) | |
download | git-f2cfb8fcc993b77b0a0420a84fd1a9a48cbe0ab9.tar.gz git-f2cfb8fcc993b77b0a0420a84fd1a9a48cbe0ab9.tar.xz |
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-x | t/t4033-diff-patience.sh | 8 | ||||
-rw-r--r-- | xdiff/xpatience.c | 2 | ||||
-rw-r--r-- | xdiff/xutils.c | 6 |
3 files changed, 13 insertions, 3 deletions
diff --git a/t/t4033-diff-patience.sh b/t/t4033-diff-patience.sh index 3c9932edf..113304dc5 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 04e1a1ab2..a613efc70 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 62cb23dfd..027192a1c 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++; + } } /* |