summaryrefslogtreecommitdiff
path: root/usr.bin
diff options
context:
space:
mode:
authorTheo Buehler <tb@cvs.openbsd.org>2017-12-20 21:08:07 +0000
committerTheo Buehler <tb@cvs.openbsd.org>2017-12-20 21:08:07 +0000
commit18e0d5328106cabe4c1754ab2752a2527969ecd8 (patch)
treed53626eaf13c8ea1379606b4b56527c9485d474d /usr.bin
parent3d251c3ea7e8a7e757b50894f841646dab44750f (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.c8
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);