summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Gruenbacher <agruen@gnu.org>2019-07-16 01:16:28 +0200
committerAndreas Gruenbacher <agruen@gnu.org>2019-07-16 01:16:28 +0200
commit76e775847f4954b63dc72afe34d9d921c6688b31 (patch)
tree234c303afdef7b41a8e188c3b12b94fb6d721d3a
parent15b158db3ae11cb835f2eb8d2eb48e09d1a4af48 (diff)
downloadpatch-76e775847f4954b63dc72afe34d9d921c6688b31.tar.gz
Fix failed assertion 'outstate->after_newline'
The assertion triggers when the -o FILE option is used, more than one output file is written into FILE, and one of those files (except the last one) ends in the middle of a line. * src/patch.c (main): Fix the case described above.
-rw-r--r--src/patch.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/patch.c b/src/patch.c
index 02fd982..3794319 100644
--- a/src/patch.c
+++ b/src/patch.c
@@ -369,6 +369,13 @@ main (int argc, char **argv)
/* outstate.ofp now owns the file descriptor */
outfd = -1;
}
+ else
+ {
+ /* When writing to a single output file (-o FILE), always pretend
+ that the output file ends in a newline. Otherwise, when another
+ file is written to the same output file, apply_hunk will fail. */
+ outstate.after_newline = true;
+ }
/* find out where all the lines are */
if (!skip_rest_of_patch) {