src/prefs.c

changeset 10399
67995cae36c0
parent 10389
6c8d0ef5b6c4
child 10423
4663a8238def
equal deleted inserted replaced
10398:e7543a7da8d6 10399:67995cae36c0
794 } 794 }
795 } 795 }
796 796
797 void gaim_prefs_sync() { 797 void gaim_prefs_sync() {
798 FILE *file; 798 FILE *file;
799 struct stat st;
799 const char *user_dir = gaim_user_dir(); 800 const char *user_dir = gaim_user_dir();
800 char *filename; 801 char *filename;
801 char *filename_real; 802 char *filename_real;
802 803
803 if(!prefs_is_loaded) { 804 if(!prefs_is_loaded) {
824 fclose(file); 825 fclose(file);
825 chmod(filename, S_IRUSR | S_IWUSR); 826 chmod(filename, S_IRUSR | S_IWUSR);
826 } else { 827 } else {
827 gaim_debug(GAIM_DEBUG_ERROR, "prefs", "Unable to write %s\n", 828 gaim_debug(GAIM_DEBUG_ERROR, "prefs", "Unable to write %s\n",
828 filename); 829 filename);
830 g_free(filename);
831 return;
832 }
833
834 if (stat(filename, &st) || (st.st_size == 0)) {
835 gaim_debug_error("prefs", "Failed to save prefs\n");
836 unlink(filename);
829 g_free(filename); 837 g_free(filename);
830 return; 838 return;
831 } 839 }
832 840
833 filename_real = g_build_filename(user_dir, "prefs.xml", NULL); 841 filename_real = g_build_filename(user_dir, "prefs.xml", NULL);

mercurial