From 2cc58882f6f9b8c242c4d51cb59f645a1efb22c1 Mon Sep 17 00:00:00 2001 From: Chris Allegretta Date: Sat, 16 Aug 2008 23:54:15 +0000 Subject: [PATCH] * 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 --- ChangeLog | 5 +++++ src/files.c | 7 +++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 272c86f2..6d51d390 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-08-08 Chris Allegretta + * 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 * 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 index 6c898640..e589f619 100644 --- 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) {