]> git.wh0rd.org Git - nano.git/commitdiff
backport of Fix for Savnnah bug 24000: no free space on partition - nano claims...
authorChris Allegretta <chrisa@asty.org>
Sun, 17 Aug 2008 00:10:34 +0000 (00:10 +0000)
committerChris Allegretta <chrisa@asty.org>
Sun, 17 Aug 2008 00:10:34 +0000 (00:10 +0000)
git-svn-id: svn://svn.savannah.gnu.org/nano/branches/nano_2_0_branch/nano@4305 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
src/files.c

index bd74f1a14c29c66c13bfdbb210ddfdaf5e4b7637..1494fa806e88f62b5112d8586b83d825de996744 100644 (file)
--- 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 
+
 2008-07-11 Mitsuya Shibata <mty.shibata@gmail.com>
         * text.c: Fix crashing in help menu when using certain locales
           (Savannah bug 23751)
index bb556bf48fab39f27eceb442bdcfc34798be7b30..f4846360ed70ec451eede985e73218502bd0747b 100644 (file)
@@ -1704,8 +1704,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) {