diff options
-rw-r--r-- | mail/ChangeLog | 5 | ||||
-rw-r--r-- | mail/mail-ops.c | 24 |
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; |