summaryrefslogtreecommitdiff
path: root/builtin/apply.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2014-06-03 19:06:40 (GMT)
committerJunio C Hamano <gitster@pobox.com>2014-06-03 19:06:40 (GMT)
commitf008cef4abb2a4db766b4a152b304aca91a0101a (patch)
tree67c1722488c99d9f56aedcc8ae52fad3558e413e /builtin/apply.c
parent52df9173fa9b409a96c02a62b06d2b19f4ff5d0f (diff)
parent14d3bb4955a41e146b6f1cd6571602a6b46b2af9 (diff)
downloadgit-f008cef4abb2a4db766b4a152b304aca91a0101a.zip
git-f008cef4abb2a4db766b4a152b304aca91a0101a.tar.gz
git-f008cef4abb2a4db766b4a152b304aca91a0101a.tar.bz2
Merge branch 'jc/apply-ignore-whitespace'
"--ignore-space-change" option of "git apply" ignored the spaces at the beginning of line too aggressively, which is inconsistent with the option of the same name "diff" and "git diff" have. * jc/apply-ignore-whitespace: apply --ignore-space-change: lines with and without leading whitespaces do not match
Diffstat (limited to 'builtin/apply.c')
-rw-r--r--builtin/apply.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/builtin/apply.c b/builtin/apply.c
index 87439fa..9c5724e 100644
--- a/builtin/apply.c
+++ b/builtin/apply.c
@@ -300,11 +300,13 @@ static int fuzzy_matchlines(const char *s1, size_t n1,
while ((*last2 == '\r') || (*last2 == '\n'))
last2--;
- /* skip leading whitespace */
- while (isspace(*s1) && (s1 <= last1))
- s1++;
- while (isspace(*s2) && (s2 <= last2))
- s2++;
+ /* skip leading whitespaces, if both begin with whitespace */
+ if (s1 <= last1 && s2 <= last2 && isspace(*s1) && isspace(*s2)) {
+ while (isspace(*s1) && (s1 <= last1))
+ s1++;
+ while (isspace(*s2) && (s2 <= last2))
+ s2++;
+ }
/* early return if both lines are empty */
if ((s1 > last1) && (s2 > last2))
return 1;