1*4882a593SmuzhiyunFrom b5a91a01e5d0897facdd0f49d64b76b0f02b43e1 Mon Sep 17 00:00:00 2001 2*4882a593SmuzhiyunFrom: Andreas Gruenbacher <agruen@gnu.org> 3*4882a593SmuzhiyunDate: Fri, 6 Apr 2018 11:34:51 +0200 4*4882a593SmuzhiyunSubject: [PATCH] Allow input files to be missing for ed-style patches 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun* src/pch.c (do_ed_script): Allow input files to be missing so that new 7*4882a593Smuzhiyunfiles will be created as with non-ed-style patches. 8*4882a593Smuzhiyun 9*4882a593SmuzhiyunSigned-off-by: Baruch Siach <baruch@tkos.co.il> 10*4882a593Smuzhiyun--- 11*4882a593SmuzhiyunUpstream status: commit b5a91a01e5d0 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun src/pch.c | 8 +++++--- 14*4882a593Smuzhiyun 1 file changed, 5 insertions(+), 3 deletions(-) 15*4882a593Smuzhiyun 16*4882a593Smuzhiyundiff --git a/src/pch.c b/src/pch.c 17*4882a593Smuzhiyunindex bc6278c4032c..0c5cc2623079 100644 18*4882a593Smuzhiyun--- a/src/pch.c 19*4882a593Smuzhiyun+++ b/src/pch.c 20*4882a593Smuzhiyun@@ -2394,9 +2394,11 @@ do_ed_script (char const *inname, char const *outname, 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun if (! dry_run && ! skip_rest_of_patch) { 23*4882a593Smuzhiyun int exclusive = *outname_needs_removal ? 0 : O_EXCL; 24*4882a593Smuzhiyun- assert (! inerrno); 25*4882a593Smuzhiyun- *outname_needs_removal = true; 26*4882a593Smuzhiyun- copy_file (inname, outname, 0, exclusive, instat.st_mode, true); 27*4882a593Smuzhiyun+ if (inerrno != ENOENT) 28*4882a593Smuzhiyun+ { 29*4882a593Smuzhiyun+ *outname_needs_removal = true; 30*4882a593Smuzhiyun+ copy_file (inname, outname, 0, exclusive, instat.st_mode, true); 31*4882a593Smuzhiyun+ } 32*4882a593Smuzhiyun sprintf (buf, "%s %s%s", editor_program, 33*4882a593Smuzhiyun verbosity == VERBOSE ? "" : "- ", 34*4882a593Smuzhiyun outname); 35*4882a593Smuzhiyun-- 36*4882a593Smuzhiyun2.16.3 37*4882a593Smuzhiyun 38