OSDN Git Service

Yet another attempt to get the fiddly patch file creation logic right.
authorRob Landley <rob@landley.net>
Mon, 12 Nov 2012 08:59:56 +0000 (02:59 -0600)
committerRob Landley <rob@landley.net>
Mon, 12 Nov 2012 08:59:56 +0000 (02:59 -0600)
toys/posix/patch.c

index 5af07a1..40d7cbc 100644 (file)
@@ -387,7 +387,9 @@ void patch_main(void)
                                // If we've got a file to open, do so.
                                } else if (!(toys.optflags & FLAG_p) || i <= TT.prefix) {
                                        // If the old file was null, we're creating a new one.
-                                       if (!strcmp(oldname, "/dev/null") && !oldsum) {
+                                       if ((!strcmp(oldname, "/dev/null") || !oldsum)
+                                               && access(name, F_OK))
+                                       {
                                                printf("creating %s\n", name);
                                                s = strrchr(name, '/');
                                                if (s) {