commit 07fdf46154fd3fafeb2a56449da734ccda28ff60
parent c9337dd4edf169b1a39994e93b3a9f793fde5cf8
Author: Benno Schulenberg <bensberg@justemail.net>
Date: Tue, 11 Aug 2015 17:43:08 +0000
Avoiding a possibly erroneous message, because failing to delete
the temporary file does not mean that copying failed.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5353 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
Diffstat:
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git 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-09 Benno Schulenberg <bensberg@justemail.net>
* src/global.c, src/help.c (help_init), src/nano.c (do_toggle, main),
diff --git a/src/files.c b/src/files.c
@@ -1719,7 +1719,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);
@@ -2122,11 +2122,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));