summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/patch.c6
-rw-r--r--tests/concat-git-diff41
2 files changed, 41 insertions, 6 deletions
diff --git a/src/patch.c b/src/patch.c
index 0bce8fb..0b0fdd4 100644
--- a/src/patch.c
+++ b/src/patch.c
@@ -196,8 +196,12 @@ main (int argc, char **argv)
if (have_git_diff != pch_git_diff ())
{
+ if (have_git_diff)
+ {
+ output_files (NULL);
+ inerrno = -1;
+ }
have_git_diff = ! have_git_diff;
- output_files (NULL);
}
if (TMPREJNAME_needs_removal)
diff --git a/tests/concat-git-diff b/tests/concat-git-diff
index 927eb5a..c78da53 100644
--- a/tests/concat-git-diff
+++ b/tests/concat-git-diff
@@ -56,11 +56,7 @@ check 'cat f' <<EOF
three
EOF
-cat > f <<EOF
-1
-2
-3
-EOF
+seq 3 > f
cat > concat2.diff <<EOF
diff --git a/f b/f
@@ -95,3 +91,38 @@ a
3
b
EOF
+
+seq 3 > f
+
+cat > concat3.diff <<EOF
+diff --git a/f b/f
+index 01e79c3..0d0b976 100644
+--- a/f
++++ b/f
+@@ -1,3 +1,4 @@
+ 1
+ 2
+ 3
++b
+diff a/f b/f
+--- a/f
++++ b/f
+@@ -1,3 +1,4 @@
++a
+ 1
+ 2
+ 3
+EOF
+
+check 'patch -p1 < concat3.diff || echo "Status: $?"' <<EOF
+patching file f
+patching file f
+EOF
+
+check 'cat f' <<EOF
+a
+1
+2
+3
+b
+EOF