From 9b710d49998524df1102f375a1af39f88d087049 Mon Sep 17 00:00:00 2001 From: Colin Leroy Date: Sun, 8 Oct 2006 08:34:21 +0000 Subject: [PATCH] 2006-10-08 [colin] 2.5.3cvs22 * src/prefs_gtk.c Don't cache anything if caching fails --- ChangeLog | 5 +++++ PATCHSETS | 1 + configure.ac | 2 +- src/prefs_gtk.c | 22 ++++++++++++---------- 4 files changed, 19 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1d23088f8..847896a37 100644 --- 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 diff --git a/PATCHSETS b/PATCHSETS index 59f215dd0..3c492b574 100644 --- a/PATCHSETS +++ b/PATCHSETS @@ -1976,3 +1976,4 @@ ( 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 diff --git a/configure.ac b/configure.ac index 4b3d97aa2..e861bbc7c 100644 --- a/configure.ac +++ b/configure.ac @@ -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= diff --git a/src/prefs_gtk.c b/src/prefs_gtk.c index 1c7a0d71d..7fdd8f923 100644 --- a/src/prefs_gtk.c +++ b/src/prefs_gtk.c @@ -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); -- 2.25.1