зеркало из https://github.com/microsoft/git.git
Fix combined use of whitespace ignore options to diff
The code used to misbehave when options to ignore certain whitespaces (-w -b and --ignore-at-eol) were combined. Signed-off-by: Keith Cascio <keith@cs.ucla.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
537a071f41
Коммит
6d12acefd5
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
Загрузка…
Ссылка в новой задаче