summaryrefslogtreecommitdiff
path: root/builtin/apply.c
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2014-06-03 12:06:40 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2014-06-03 12:06:40 -0700
commitf008cef4abb2a4db766b4a152b304aca91a0101a (patch)
tree67c1722488c99d9f56aedcc8ae52fad3558e413e /builtin/apply.c
parentMerge branch 'as/grep-fullname-config' (diff)
parentapply --ignore-space-change: lines with and without leading whitespaces do no... (diff)
downloadtgif-f008cef4abb2a4db766b4a152b304aca91a0101a.tar.xz
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 87439fad11..9c5724eacc 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;