diff options
author | Jason Leach <jleach@ximian.com> | 2001-08-14 05:36:41 +0800 |
---|---|---|
committer | Jacob Leach <jleach@src.gnome.org> | 2001-08-14 05:36:41 +0800 |
commit | df8180e04abf2efd32ca0624484df5b35e564759 (patch) | |
tree | 036d3bf652af9ee351075751d552f3ff63bb63c9 /mail/mail-local.c | |
parent | 074f38d92e739c53d0ac35f1f2f52b8c039eed84 (diff) | |
download | gsoc2013-evolution-df8180e04abf2efd32ca0624484df5b35e564759.tar.gz gsoc2013-evolution-df8180e04abf2efd32ca0624484df5b35e564759.tar.zst gsoc2013-evolution-df8180e04abf2efd32ca0624484df5b35e564759.zip |
Fix this so it can actually get folders from the hash of folders on the
2001-08-13 Jason Leach <jleach@ximian.com>
* mail-local.c (get_folder): Fix this so it can actually get
folders from the hash of folders on the local store (it was
looking up plain @folder_name, which is typically "mbox", instead
of the full URI, /home/jleach/evolution/local/Foo/mbox).
* component-factory.c (do_remove_folder): Rename to
remove_folder_done, more fitting for it's purpose.
(do_xfer_folder): Similar name change.
(do_create_folder): Similar name change.
(remove_folder): Don't notifyResult for the component here, we
will notify with our result in remove_folder_done.
(xfer_folder): Ditto.
* mail-vfolder.c (vfolder_refresh): Create new folders with unread
counts of "0" instead of #FALSE (which just happens to be #defined
as zero).
svn path=/trunk/; revision=11964
Diffstat (limited to 'mail/mail-local.c')
-rw-r--r-- | mail/mail-local.c | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/mail/mail-local.c b/mail/mail-local.c index 8602e4acb7..c3a5e5723f 100644 --- a/mail/mail-local.c +++ b/mail/mail-local.c @@ -310,23 +310,30 @@ mail_local_store_get_type (void) } static CamelFolder * -get_folder (CamelStore *store, const char *folder_name, - guint32 flags, CamelException *ex) +get_folder (CamelStore *store, + const char *folder_name, + guint32 flags, + CamelException *ex) { MailLocalStore *local_store = (MailLocalStore *)store; CamelFolder *folder; MailLocalFolder *local_folder; - - local_folder = g_hash_table_lookup (local_store->folders, folder_name); + char *name; + + name = g_strconcat (CAMEL_SERVICE (store)->url->path, folder_name, NULL); + + local_folder = g_hash_table_lookup (local_store->folders, name); + if (local_folder) { folder = local_folder->folder; camel_object_ref (CAMEL_OBJECT (folder)); } else { folder = NULL; camel_exception_setv (ex, CAMEL_EXCEPTION_STORE_NO_FOLDER, - _("No such folder %s"), folder_name); + _("No such folder %s"), name); } - + + g_free (name); return folder; } @@ -504,8 +511,10 @@ register_folder_registered(struct _mail_msg *mm) if (local_folder->folder) { gchar *name; - g_hash_table_insert (local_folder->local_store->folders, local_folder->uri + 8, + g_hash_table_insert (local_folder->local_store->folders, + local_folder->uri + 8, local_folder); + /* Remove the circular ref once the local store knows aboutthe folder */ camel_object_unref ((CamelObject *)local_folder->local_store); @@ -555,7 +564,7 @@ local_storage_new_folder_cb (EvolutionStorageListener *storage_listener, MailLocalFolder *local_folder; struct _register_msg *m; int id; - + if (strcmp (folder->type, "mail") != 0 || strncmp (folder->physical_uri, "file://", 7) != 0 || strncmp (folder->physical_uri + 7, local_store->local_path, |