From: Christian Dywan Date: Thu, 10 Jun 2010 15:49:22 +0000 (+0200) Subject: Use g_file_set_contents to save 'config' with a temporary file X-Git-Url: https://spindle.queued.net/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ff6fec636700b71b296ebe5c2976b8cb7080d292;p=midori Use g_file_set_contents to save 'config' with a temporary file If the filesystem runs out of space and Midori tries to save the 'config' file under that condition, the file is lost. To avoid that, we use g_file_set_contents which writes a temporary file first, at the cost of destroying symbolic links. --- diff --git a/midori/sokoke.c b/midori/sokoke.c index 04c37af5..e8ade3af 100644 --- a/midori/sokoke.c +++ b/midori/sokoke.c @@ -1103,22 +1103,15 @@ sokoke_key_file_save_to_file (GKeyFile* key_file, GError** error) { gchar* data; - FILE* fp; + gboolean success = FALSE; data = g_key_file_to_data (key_file, NULL, error); if (!data) return FALSE; - if (!(fp = fopen (filename, "w"))) - { - *error = g_error_new (G_FILE_ERROR, G_FILE_ERROR_ACCES, - _("Writing failed.")); - return FALSE; - } - fputs (data, fp); - fclose (fp); + success = g_file_set_contents (filename, data, -1, error); g_free (data); - return TRUE; + return success; } void