summaryrefslogtreecommitdiff
path: root/xdiff/xutils.c
diff options
context:
space:
mode:
authorKeith Cascio <keith@CS.UCLA.EDU>2009-01-19 18:03:04 (GMT)
committerJunio C Hamano <gitster@pobox.com>2009-01-20 05:21:58 (GMT)
commit6d12acefd5ac0cd688bcc77470bb1d73859cdab1 (patch)
tree41dd08677ee6c17691ddf32daaa49ff406c55d19 /xdiff/xutils.c
parent537a071f41259c8631284bef28497280cd33db95 (diff)
downloadgit-6d12acefd5ac0cd688bcc77470bb1d73859cdab1.zip
git-6d12acefd5ac0cd688bcc77470bb1d73859cdab1.tar.gz
git-6d12acefd5ac0cd688bcc77470bb1d73859cdab1.tar.bz2
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/xutils.c')
-rw-r--r--xdiff/xutils.c6
1 files changed, 4 insertions, 2 deletions
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);