diff options
author | Junio C Hamano <gitster@pobox.com> | 2009-02-05 17:52:22 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-02-05 17:52:22 -0800 |
commit | 8c4c286c394cc383577bf884f37a708bba98549e (patch) | |
tree | 0cf968098bf4297baa233c7b409439ed0ff62c12 | |
parent | f26b5dc9efccc998510505685d6d919b4dd087e7 (diff) | |
parent | 6d12acefd5ac0cd688bcc77470bb1d73859cdab1 (diff) | |
download | git-8c4c286c394cc383577bf884f37a708bba98549e.tar.gz git-8c4c286c394cc383577bf884f37a708bba98549e.tar.xz |
Merge branch 'kc/maint-diff-bwi-fix' into maint
* kc/maint-diff-bwi-fix:
Fix combined use of whitespace ignore options to diff
test more combinations of ignore-whitespace options to diff
-rwxr-xr-x | t/t4015-diff-whitespace.sh | 27 | ||||
-rw-r--r-- | xdiff/xutils.c | 6 |
2 files changed, 31 insertions, 2 deletions
diff --git a/t/t4015-diff-whitespace.sh b/t/t4015-diff-whitespace.sh index fc2307eaa..6d13da30d 100755 --- a/t/t4015-diff-whitespace.sh +++ b/t/t4015-diff-whitespace.sh @@ -98,6 +98,12 @@ index d99af23..8b32fb5 100644 EOF git diff -w > out test_expect_success 'another test, with -w' 'test_cmp expect out' +git diff -w -b > out +test_expect_success 'another test, with -w -b' 'test_cmp expect out' +git diff -w --ignore-space-at-eol > out +test_expect_success 'another test, with -w --ignore-space-at-eol' 'test_cmp expect out' +git diff -w -b --ignore-space-at-eol > out +test_expect_success 'another test, with -w -b --ignore-space-at-eol' 'test_cmp expect out' tr 'Q' '\015' << EOF > expect diff --git a/x b/x @@ -116,6 +122,27 @@ index d99af23..8b32fb5 100644 EOF git diff -b > out test_expect_success 'another test, with -b' 'test_cmp expect out' +git diff -b --ignore-space-at-eol > out +test_expect_success 'another test, with -b --ignore-space-at-eol' 'test_cmp expect out' + +tr 'Q' '\015' << EOF > expect +diff --git a/x b/x +index d99af23..8b32fb5 100644 +--- a/x ++++ b/x +@@ -1,6 +1,6 @@ +-whitespace at beginning +-whitespace change +-whitespace in the middle ++ whitespace at beginning ++whitespace change ++white space in the middle + whitespace at end + unchanged line + CR at endQ +EOF +git diff --ignore-space-at-eol > out +test_expect_success 'another test, with --ignore-space-at-eol' 'test_cmp expect out' test_expect_success 'check mixed spaces and tabs in indent' ' diff --git a/xdiff/xutils.c b/xdiff/xutils.c index d7974d1a3..04ad46870 100644 --- a/xdiff/xutils.c +++ b/xdiff/xutils.c @@ -245,12 +245,14 @@ static unsigned long xdl_hash_record_with_whitespace(char const **data, while (ptr + 1 < top && isspace(ptr[1]) && ptr[1] != '\n') ptr++; - if (flags & XDF_IGNORE_WHITESPACE_CHANGE + if (flags & XDF_IGNORE_WHITESPACE) + ; /* already handled */ + else if (flags & XDF_IGNORE_WHITESPACE_CHANGE && ptr[1] != '\n') { ha += (ha << 5); ha ^= (unsigned long) ' '; } - if (flags & XDF_IGNORE_WHITESPACE_AT_EOL + else if (flags & XDF_IGNORE_WHITESPACE_AT_EOL && ptr[1] != '\n') { while (ptr2 != ptr + 1) { ha += (ha << 5); |