]> git.wh0rd.org Git - nano.git/commitdiff
Backport r5353 from trunk.
authorChris Allegretta <chrisa@asty.org>
Sun, 15 Nov 2015 06:47:43 +0000 (06:47 +0000)
committerChris Allegretta <chrisa@asty.org>
Sun, 15 Nov 2015 06:47:43 +0000 (06:47 +0000)
git-svn-id: svn://svn.savannah.gnu.org/nano/branches/nano_2_4_branch@5415 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
src/files.c

index 4bbc413068f108da8ce3724aa3363302a10390f2..02975bcba288865cd649084a37b4b5b0578aae7b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,8 @@
 2015-08-11  Benno Schulenberg  <bensberg@justemail.net>
        * src/files.c (write_file): Avoid calling copy_file() with a null
        pointer.  Found with cppcheck.
+       * src/files.c (write_file): A failure to delete the temporary file
+       does not mean that it wasn't copied properly.
 
 2015-08-08  Benno Schulenberg  <bensberg@justemail.net>
        * src/winio.c (display_string): For some reason the reallocation done
index 85bb006a3f88f85f49fc4fc93cef9c2db203f025..6081e4a1e8ab702cd33eda2bf9fc0d36cb7f7bd3 100644 (file)
@@ -1728,7 +1728,7 @@ bool write_file(const char *name, FILE *f_open, bool tmp, append_type
     FILE *f = NULL;
        /* The actual file, realname, we are writing to. */
     char *tempname = NULL;
-       /* The temp file name we write to on prepend. */
+       /* The name of the temporary file we write to on prepend. */
 
     assert(name != NULL);
 
@@ -2135,11 +2135,13 @@ bool write_file(const char *name, FILE *f_open, bool tmp, append_type
            goto cleanup_and_exit;
        }
 
-       if (copy_file(f_source, f) == -1 || unlink(tempname) == -1) {
+       if (copy_file(f_source, f) == -1) {
            statusbar(_("Error writing %s: %s"), realname,
                strerror(errno));
            goto cleanup_and_exit;
        }
+
+       unlink(tempname);
     } else if (fclose(f) != 0) {
            statusbar(_("Error writing %s: %s"), realname,
                strerror(errno));