Fixed bug in diff whitespace ignore options. It is now OK to specify more than one whitespace ignore option on the command line. Signed-off-by: Keith Cascio <keith@xxxxxxxxxxx> --- Dscho, You are right. The code and the patch are more readable this way. -- Keith t/t4015-diff-whitespace.sh | 8 ++++---- xdiff/xutils.c | 6 ++++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/t/t4015-diff-whitespace.sh b/t/t4015-diff-whitespace.sh index dbb608c..6d13da3 100755 --- a/t/t4015-diff-whitespace.sh +++ b/t/t4015-diff-whitespace.sh @@ -99,11 +99,11 @@ EOF git diff -w > out test_expect_success 'another test, with -w' 'test_cmp expect out' git diff -w -b > out -test_expect_failure 'another test, with -w -b' 'test_cmp expect out' +test_expect_success 'another test, with -w -b' 'test_cmp expect out' git diff -w --ignore-space-at-eol > out -test_expect_failure 'another test, with -w --ignore-space-at-eol' 'test_cmp expect 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_failure 'another test, with -w -b --ignore-space-at-eol' 'test_cmp expect 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 @@ -123,7 +123,7 @@ 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_failure 'another test, with -b --ignore-space-at-eol' 'test_cmp expect 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 diff --git a/xdiff/xutils.c b/xdiff/xutils.c index d7974d1..04ad468 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); -- 1.6.1.213.g28da8.dirty -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html