2006-10-08 [colin] 2.5.3cvs22
authorColin Leroy <colin@colino.net>
Sun, 8 Oct 2006 08:34:21 +0000 (08:34 +0000)
committerColin Leroy <colin@colino.net>
Sun, 8 Oct 2006 08:34:21 +0000 (08:34 +0000)
* src/prefs_gtk.c
Don't cache anything if caching fails

ChangeLog
PATCHSETS
configure.ac
src/prefs_gtk.c

index 1d23088..847896a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2006-10-08 [colin]     2.5.3cvs22
+
+       * src/prefs_gtk.c
+               Don't cache anything if caching fails
+
 2006-10-08 [colin]     2.5.3cvs21
 
        * src/common/utils.c
index 59f215d..3c492b5 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( cvs diff -u -r 1.1.2.1 -r 1.1.2.2 src/plugins/pgpcore/pgp_viewer.c;  cvs diff -u -r 1.1.2.1 -r 1.1.2.2 src/plugins/pgpcore/pgp_viewer.h;  ) > 2.5.3cvs19.patchset
 ( cvs diff -u -r 1.1.2.2 -r 1.1.2.3 src/plugins/pgpcore/pgp_viewer.c;  ) > 2.5.3cvs20.patchset
 ( cvs diff -u -r 1.36.2.84 -r 1.36.2.85 src/common/utils.c;  ) > 2.5.3cvs21.patchset
+( cvs diff -u -r 1.10.2.22 -r 1.10.2.23 src/prefs_gtk.c;  ) > 2.5.3cvs22.patchset
index 4b3d97a..e861bbc 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=5
 MICRO_VERSION=3
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=21
+EXTRA_VERSION=22
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
index 1c7a0d7..7fdd8f9 100644 (file)
@@ -909,7 +909,7 @@ static void prefs_destroy_file_cache(gpointer to_free)
        g_hash_table_destroy(table);
 }
 
-static void prefs_cache_sections(GHashTable *file_cache, const gchar *rcfile)
+static int prefs_cache_sections(GHashTable *file_cache, const gchar *rcfile)
 {
        FILE *fp = g_fopen(rcfile, "rb");
        gchar buf[PREFSBUFSIZE];
@@ -917,7 +917,7 @@ static void prefs_cache_sections(GHashTable *file_cache, const gchar *rcfile)
 
        if (!fp) {
                debug_print("cache: %s: %s", rcfile, strerror(errno));
-               return;
+               return -1;
        }
        
        flockfile(fp);
@@ -940,9 +940,9 @@ static void prefs_cache_sections(GHashTable *file_cache, const gchar *rcfile)
                                blockname, section_cache);
                } else {
                        if (!section_cache) {
-                               g_warning("uh no table\n");
+                               debug_print("no table at %s\n", buf);
                                fclose(fp);
-                               return;
+                               return -1;
                        } else {
                                gchar *pref;
                                
@@ -959,9 +959,10 @@ static void prefs_cache_sections(GHashTable *file_cache, const gchar *rcfile)
        }
        funlockfile(fp);
        fclose(fp);
+       return 0;
 }
 
-static void prefs_cache(const gchar *rcfile)
+static int prefs_cache(const gchar *rcfile)
 {
        GHashTable *file_cache = g_hash_table_new_full(g_str_hash, g_str_equal, 
                                        g_free, prefs_destroy_file_cache);
@@ -969,7 +970,7 @@ static void prefs_cache(const gchar *rcfile)
        debug_print("new file '%s'\n", rcfile);
        g_hash_table_insert(whole_cache, g_strdup(rcfile), file_cache);
        
-       prefs_cache_sections(file_cache, rcfile);
+       return prefs_cache_sections(file_cache, rcfile);
 }
 
 void prefs_prepare_cache(void)
@@ -988,10 +989,11 @@ void prefs_prepare_cache(void)
                g_free(accountrc);
                return;
        }
-       prefs_cache(sylpheedrc);
-       prefs_cache(folderitemrc);
-       prefs_cache(accountrc);
-       
+       if (prefs_cache(sylpheedrc) < 0 ||
+           prefs_cache(folderitemrc) < 0 ||
+           prefs_cache(accountrc) < 0)
+               prefs_destroy_cache();
+
        g_free(sylpheedrc);
        g_free(folderitemrc);
        g_free(accountrc);