From: Benno Schulenberg Date: Tue, 11 Aug 2015 17:43:08 +0000 (+0000) Subject: Avoiding a possibly erroneous message, because failing to delete X-Git-Tag: v2.5.0~109 X-Git-Url: https://git.wh0rd.org/?a=commitdiff_plain;h=07fdf46154fd3fafeb2a56449da734ccda28ff60;p=nano.git 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 --- diff --git a/ChangeLog b/ChangeLog index 53fca6fe..a3b769b5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,8 @@ 2015-08-11 Benno Schulenberg * 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 * src/global.c, src/help.c (help_init), src/nano.c (do_toggle, main), diff --git a/src/files.c b/src/files.c index 5f95ae32..c93ef39c 100644 --- 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));