commit 2cc58882f6f9b8c242c4d51cb59f645a1efb22c1
parent 93f2ea11940998e034f09e0fb2bea798e517c2ff
Author: Chris Allegretta <chrisa@asty.org>
Date: Sat, 16 Aug 2008 23:54:15 +0000
* files.c (write_file): Check exit code of fclose(), since in certain out of space conditions the OS will
happily report successful fwrite()s until you try and close the file. Fix for Savannah bug
#24000: no free space on partition - nano claims successful write - file empty
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4304 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
Diffstat:
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/ChangeLog b/ChangeLog
@@ -1,3 +1,8 @@
+2008-08-08 Chris Allegretta <chrisa@asty.org>
+ * files.c (write_file): Check exit code of fclose(), since in certain out of space conditions the OS will
+ happily report successful fwrite()s until you try and close the file. Fix for Savannah bug
+ #24000: no free space on partition - nano claims successful write - file empty
+
GNU nano 2.1.4 - 2008.08.09
2008-08-08 Chris Allegretta <chrisa@asty.org>
* files.c (write_file): Do not go on and attempt to write the main file if writing the backup file failed,
diff --git a/src/files.c b/src/files.c
@@ -1728,8 +1728,11 @@ bool write_file(const char *name, FILE *f_open, bool tmp, append_type
strerror(errno));
goto cleanup_and_exit;
}
- } else
- fclose(f);
+ } else if (fclose(f) != 0) {
+ statusbar(_("Error writing %s: %s"), realname,
+ strerror(errno));
+ goto cleanup_and_exit;
+ }
if (!tmp && append == OVERWRITE) {
if (!nonamechange) {