diff options
author | Keith Cascio <keith@CS.UCLA.EDU> | 2009-01-19 10:03:04 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-01-19 21:21:58 -0800 |
commit | 6d12acefd5ac0cd688bcc77470bb1d73859cdab1 (patch) | |
tree | 41dd08677ee6c17691ddf32daaa49ff406c55d19 /xdiff | |
parent | 537a071f41259c8631284bef28497280cd33db95 (diff) | |
download | git-6d12acefd5ac0cd688bcc77470bb1d73859cdab1.tar.gz git-6d12acefd5ac0cd688bcc77470bb1d73859cdab1.tar.xz |
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>
Diffstat (limited to 'xdiff')
-rw-r--r-- | xdiff/xutils.c | 6 |
1 files changed, 4 insertions, 2 deletions
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); |