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.
This commit is contained in:
parent
5333845ba4
commit
ff6fec6367
1 changed files with 3 additions and 10 deletions
|
@ -1103,22 +1103,15 @@ sokoke_key_file_save_to_file (GKeyFile* key_file,
|
||||||
GError** error)
|
GError** error)
|
||||||
{
|
{
|
||||||
gchar* data;
|
gchar* data;
|
||||||
FILE* fp;
|
gboolean success = FALSE;
|
||||||
|
|
||||||
data = g_key_file_to_data (key_file, NULL, error);
|
data = g_key_file_to_data (key_file, NULL, error);
|
||||||
if (!data)
|
if (!data)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
if (!(fp = fopen (filename, "w")))
|
success = g_file_set_contents (filename, data, -1, error);
|
||||||
{
|
|
||||||
*error = g_error_new (G_FILE_ERROR, G_FILE_ERROR_ACCES,
|
|
||||||
_("Writing failed."));
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
fputs (data, fp);
|
|
||||||
fclose (fp);
|
|
||||||
g_free (data);
|
g_free (data);
|
||||||
return TRUE;
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
Loading…
Reference in a new issue