From a6aba35df1c77772c1417354a68a310f90944ced Mon Sep 17 00:00:00 2001 From: 0 Date: Thu, 20 Sep 2001 22:58:23 +0000 Subject: Build the path on the folderinfo. 2001-09-20 * providers/local/camel-maildir-store.c (camel_folder_info_new): Build the path on the folderinfo. * providers/local/camel-spool-store.c (get_folder_info): If we have this folder open, then set unread from the folder itself. (get_folder_info): Change the INBOX path to not include the leading /. * providers/local/camel-spool-folder.c (camel_spool_folder_construct): Fix path. (camel_spool_folder_construct): Properly setup the url field when we say we've got a new folder created. * providers/imap/camel-imap-store.c (unsubscribe_folder): Build path on folderinfo. * camel-store.c (camel_folder_info_build_path): Prepend / to path. * camel-vee-folder.c (camel_vee_folder_construct): Use macro for unmatched folder name. (camel_vee_folder_new): " * camel-vee-store.c (vee_get_folder_info): Use macro for unmatched folder name. (vee_delete_folder): " (vee_rename_folder): " (vee_get_folder): Prepend / onto path. (vee_delete_folder): Setup path in folderinfo. (vee_get_folder_info): Fix path in folderinfo. * camel-vee-folder.h (CAMEL_UNMATCHED_NAME): New define for unmatched (internal) name. svn path=/trunk/; revision=13022 --- camel/providers/local/camel-spool-store.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'camel/providers/local/camel-spool-store.c') diff --git a/camel/providers/local/camel-spool-store.c b/camel/providers/local/camel-spool-store.c index 998c97597c..c10c0f252d 100644 --- a/camel/providers/local/camel-spool-store.c +++ b/camel/providers/local/camel-spool-store.c @@ -34,6 +34,7 @@ #include "camel-spool-folder.h" #include "camel-exception.h" #include "camel-url.h" +#include "camel-private.h" #define d(x) @@ -186,14 +187,24 @@ get_folder_info (CamelStore *store, const char *top, { CamelFolderInfo *fi = NULL; CamelService *service = (CamelService *)store; + CamelFolder *folder; - if (top == NULL || strcmp(top, "/INBOX") == 0) { + if (top == NULL || strcmp(top, "INBOX") == 0) { /* FIXME: if the folder is opened we could look it up? */ fi = g_malloc0(sizeof(*fi)); - fi->full_name = "/INBOX"; + fi->full_name = "INBOX"; fi->name = "INBOX"; fi->url = g_strdup_printf("spool:%s#%s", service->url->path, fi->name); - fi->unread_message_count = -1; + + CAMEL_STORE_LOCK(store, cache_lock); + folder = g_hash_table_lookup(store->folders, fi->full_name); + if (folder) + fi->unread_message_count = camel_folder_get_message_count(folder); + else + fi->unread_message_count = -1; + CAMEL_STORE_UNLOCK(store, cache_lock); + + camel_folder_info_build_path(fi, '/'); } return fi; -- cgit v1.2.3