diff src/prefs.c @ 10399:aab0c9508318

[gaim-migrate @ 11630] Don't erase prefs/accounts/blist/pounces if we failed to write the new file to disk - this fixes the "Gaim lost all my settings when my disk/quota filled up" bugs. committer: Tailor Script <tailor@pidgin.im>
author Stu Tomlinson <stu@nosnilmot.com>
date Sun, 19 Dec 2004 17:35:59 +0000
parents c432b927b0b1
children 3232e1a33899
line wrap: on
line diff
--- a/src/prefs.c	Sun Dec 19 12:57:29 2004 +0000
+++ b/src/prefs.c	Sun Dec 19 17:35:59 2004 +0000
@@ -796,6 +796,7 @@
 
 void gaim_prefs_sync() {
 	FILE *file;
+	struct stat st;
 	const char *user_dir = gaim_user_dir();
 	char *filename;
 	char *filename_real;
@@ -830,6 +831,13 @@
 		return;
 	}
 
+	if (stat(filename, &st) || (st.st_size == 0)) {
+		gaim_debug_error("prefs", "Failed to save prefs\n");
+		unlink(filename);
+		g_free(filename);
+		return;
+	}
+
 	filename_real = g_build_filename(user_dir, "prefs.xml", NULL);
 	if(rename(filename, filename_real) < 0)
 		gaim_debug(GAIM_DEBUG_ERROR, "prefs", "Error renaming %s to %s\n",