aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mail/ChangeLog5
-rw-r--r--mail/mail-ops.c24
2 files changed, 27 insertions, 2 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
index f8315faacd..c5b53ead0a 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -1,5 +1,10 @@
2001-10-16 Jeffrey Stedfast <fejj@ximian.com>
+ * mail-ops.c (uid_cachename_hack): Lets put the UID cache in
+ ~/evolution/mail/pop3 as this makes more sense than ~/mail/config
+ does. Perform checking to see what flavor cache-path the user is
+ on and compensate.
+
* message-list.c (on_cursor_activated_idle): Check that the
cursor_uid is non-NULL before emitting a "message_selected"
signal. Fixes bug #6015.
diff --git a/mail/mail-ops.c b/mail/mail-ops.c
index dd365b3fb5..e0d9836987 100644
--- a/mail/mail-ops.c
+++ b/mail/mail-ops.c
@@ -209,7 +209,8 @@ static char *
uid_cachename_hack (CamelStore *store)
{
CamelURL *url = CAMEL_SERVICE (store)->url;
- char *encoded_url, *filename;
+ char *encoded_url, *filename, *old_location;
+ struct stat st;
encoded_url = g_strdup_printf ("pop://%s%s%s@%s/", url->user,
url->authmech ? ";auth=" : "",
@@ -217,7 +218,26 @@ uid_cachename_hack (CamelStore *store)
url->host);
e_filename_make_safe (encoded_url);
- filename = g_strdup_printf ("%s/config/cache-%s", evolution_dir, encoded_url);
+ filename = g_strdup_printf ("%s/mail/pop3/cache-%s", evolution_dir, encoded_url);
+
+ /* lame hack, but we can't expect user's to actually migrate
+ their cache files - brain power requirements are too
+ high. */
+ if (stat (filename, &st) == -1) {
+ /* This is either the first time the user has checked
+ mail with this POP provider or else their cache
+ file is in the old location... */
+ old_location = g_strdup_printf ("%s/config/cache-%s", evolution_dir, encoded_url);
+ if (stat (old_location, &st) == -1) {
+ /* old location doesn't exist either so use the new location */
+ g_free (old_location);
+ } else {
+ /* old location exists, so I guess we use the old cache file location */
+ g_free (filename);
+ filename = old_location;
+ }
+ }
+
g_free (encoded_url);
return filename;