summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Schindelin <Johannes.Schindelin@gmx.de>2006-12-03 18:25:34 (GMT)
committerJunio C Hamano <junkio@cox.net>2006-12-05 00:30:54 (GMT)
commitc7c24889bb694f93a12f41a28fab26d30e571c17 (patch)
tree44d4ce6aeda68a63f4bcde207268e66f8629cc5e
parentba988a83f0cfdafdcfdc7ed44253840ea83578fb (diff)
downloadgit-c7c24889bb694f93a12f41a28fab26d30e571c17.zip
git-c7c24889bb694f93a12f41a28fab26d30e571c17.tar.gz
git-c7c24889bb694f93a12f41a28fab26d30e571c17.tar.bz2
diff -b: ignore whitespace at end of line
This is _not_ the same as "treat eol as whitespace", since that would mean that multiple empty lines would be treated as equal to e.g. a space. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
-rwxr-xr-xt/t4015-diff-whitespace.sh6
-rw-r--r--xdiff/xutils.c3
2 files changed, 4 insertions, 5 deletions
diff --git a/t/t4015-diff-whitespace.sh b/t/t4015-diff-whitespace.sh
index 1bc5b7a..adf4993 100755
--- a/t/t4015-diff-whitespace.sh
+++ b/t/t4015-diff-whitespace.sh
@@ -109,12 +109,10 @@ index d99af23..8b32fb5 100644
+ whitespace at beginning
whitespace change
-whitespace in the middle
--whitespace at end
+white space in the middle
-+whitespace at end
+ whitespace at end
unchanged line
--CR at endQ
-+CR at end
+ CR at endQ
EOF
git-diff -b > out
test_expect_success 'another test, with -b' 'diff -u expect out'
diff --git a/xdiff/xutils.c b/xdiff/xutils.c
index 9e4bb47..1b899f3 100644
--- a/xdiff/xutils.c
+++ b/xdiff/xutils.c
@@ -230,7 +230,8 @@ unsigned long xdl_hash_record(char const **data, char const *top, long flags) {
while (ptr + 1 < top && isspace(ptr[1])
&& ptr[1] != '\n')
ptr++;
- if (flags & XDF_IGNORE_WHITESPACE_CHANGE) {
+ if (flags & XDF_IGNORE_WHITESPACE_CHANGE
+ && ptr[1] != '\n') {
ha += (ha << 5);
ha ^= (unsigned long) ' ';
}