From 07fdf46154fd3fafeb2a56449da734ccda28ff60 Mon Sep 17 00:00:00 2001
From: Benno Schulenberg <bensberg@justemail.net>
Date: Tue, 11 Aug 2015 17:43:08 +0000
Subject: [PATCH] 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
---
 ChangeLog   | 2 ++
 src/files.c | 6 ++++--
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 53fca6fe..a3b769b5 100644
--- 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
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));
-- 
GitLab