diff options
author | Theo Buehler <tb@cvs.openbsd.org> | 2017-12-20 21:08:07 +0000 |
---|---|---|
committer | Theo Buehler <tb@cvs.openbsd.org> | 2017-12-20 21:08:07 +0000 |
commit | 18e0d5328106cabe4c1754ab2752a2527969ecd8 (patch) | |
tree | d53626eaf13c8ea1379606b4b56527c9485d474d /usr.bin | |
parent | 3d251c3ea7e8a7e757b50894f841646dab44750f (diff) |
Fix adding and removing files with git-style a/ b/ diffs: only skip
six letters if they actually match "--- a/" and "+++ b/" instead of
laxer checks.
ok tom, tedu, millert
Diffstat (limited to 'usr.bin')
-rw-r--r-- | usr.bin/patch/pch.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/usr.bin/patch/pch.c b/usr.bin/patch/pch.c index cc9047cfa8c..539754d814b 100644 --- a/usr.bin/patch/pch.c +++ b/usr.bin/patch/pch.c @@ -1,4 +1,4 @@ -/* $OpenBSD: pch.c,v 1.58 2017/05/30 06:55:40 florian Exp $ */ +/* $OpenBSD: pch.c,v 1.59 2017/12/20 21:08:06 tb Exp $ */ /* * patch - a program to apply diffs to original files @@ -301,14 +301,16 @@ intuit_diff_type(void) &names[OLD_FILE].exists, strippath); else if (strnEQ(s, "--- ", 4)) { size_t off = 4; - if (piece_of_git && strippath == 957) + if (piece_of_git && strippath == 957 && + strnEQ(s, "--- a/", 6)) off = 6; names[NEW_FILE].path = fetchname(s + off, &names[NEW_FILE].exists, strippath); } else if (strnEQ(s, "+++ ", 4)) { /* pretend it is the old name */ size_t off = 4; - if (piece_of_git && strippath == 957) + if (piece_of_git && strippath == 957 && + strnEQ(s, "+++ b/", 6)) off = 6; names[OLD_FILE].path = fetchname(s + off, &names[OLD_FILE].exists, strippath); |