SF.net SVN: geany:[5391] trunk
ntrel at users.sourceforge.net
ntrel at xxxxx
Wed Nov 10 13:44:10 UTC 2010
Revision: 5391
http://geany.svn.sourceforge.net/geany/?rev=5391&view=rev
Author: ntrel
Date: 2010-11-10 13:44:10 +0000 (Wed, 10 Nov 2010)
Log Message:
-----------
Fix not reporting an error message when saving a document fails.
Check result of fclose().
Modified Paths:
--------------
trunk/ChangeLog
trunk/src/document.c
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2010-11-10 13:13:28 UTC (rev 5390)
+++ trunk/ChangeLog 2010-11-10 13:44:10 UTC (rev 5391)
@@ -4,6 +4,9 @@
Use LF line endings for templates internally instead of default
pref because the default can change. This fixes missing line
endings sometimes when changing default setting.
+ * src/document.c:
+ Fix not reporting an error message when saving a document fails.
+ Check result of fclose().
2010-11-09 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
Modified: trunk/src/document.c
===================================================================
--- trunk/src/document.c 2010-11-10 13:13:28 UTC (rev 5390)
+++ trunk/src/document.c 2010-11-10 13:44:10 UTC (rev 5391)
@@ -1725,24 +1725,31 @@
G_FILE_CREATE_NONE, NULL, NULL, &error);
g_object_unref(fp);
#else
- gint err = 0;
FILE *fp;
gint bytes_written;
+ gboolean fail = FALSE;
/* Use POSIX API for unsafe saving (GVFS-unsafe) */
fp = g_fopen(locale_filename, "wb");
- if (G_UNLIKELY(fp == NULL))
- return g_strdup(g_strerror(errno));
+ if (fp == NULL)
+ fail = TRUE;
+ else
+ {
+ bytes_written = fwrite(data, sizeof(gchar), len, fp);
- bytes_written = fwrite(data, sizeof(gchar), len, fp);
+ if (len != bytes_written)
+ fail = TRUE;
- if (G_UNLIKELY(len != bytes_written))
- err = errno;
-
- fclose(fp);
-
- if (err != 0)
+ if (fclose(fp) != 0)
+ fail = TRUE;
+ }
+ if (fail)
+ {
+ gint err = errno;
+ if (!err)
+ err = EIO;
return g_strdup(g_strerror(err));
+ }
#endif
}
else
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Commits
mailing list