diff options
author | Junio C Hamano <gitster@pobox.com> | 2014-06-25 11:46:23 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-06-25 11:46:23 -0700 |
commit | c122c9a968d5528b799fd5aeab8e67fffb45ef4d (patch) | |
tree | bd71efe988e971408b48572a23b9032540465d05 /builtin | |
parent | Merge branch 'jk/complete-merge-pull' into maint (diff) | |
parent | apply --ignore-space-change: lines with and without leading whitespaces do no... (diff) | |
download | tgif-c122c9a968d5528b799fd5aeab8e67fffb45ef4d.tar.xz |
Merge branch 'jc/apply-ignore-whitespace' into maint
"--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')
-rw-r--r-- | builtin/apply.c | 12 |
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; |