aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author1 <NotZed@Ximian.com>2001-09-22 03:45:21 +0800
committerMichael Zucci <zucchi@src.gnome.org>2001-09-22 03:45:21 +0800
commit4d97946e705c10d3125f94ed8500ac0ed1af39d8 (patch)
tree9c31672a2ea307c45ab92be1cb4b2b3aefe576e7
parenteba0053faab73c8e7d222bc62901c5965400f415 (diff)
downloadgsoc2013-evolution-4d97946e705c10d3125f94ed8500ac0ed1af39d8.tar
gsoc2013-evolution-4d97946e705c10d3125f94ed8500ac0ed1af39d8.tar.gz
gsoc2013-evolution-4d97946e705c10d3125f94ed8500ac0ed1af39d8.tar.bz2
gsoc2013-evolution-4d97946e705c10d3125f94ed8500ac0ed1af39d8.tar.lz
gsoc2013-evolution-4d97946e705c10d3125f94ed8500ac0ed1af39d8.tar.xz
gsoc2013-evolution-4d97946e705c10d3125f94ed8500ac0ed1af39d8.tar.zst
gsoc2013-evolution-4d97946e705c10d3125f94ed8500ac0ed1af39d8.zip
Use url path as full_name, not shell path. (mail_local_folder_construct):
2001-09-21 <NotZed@Ximian.com> * mail-local.c (mail_local_store_add_folder): Use url path as full_name, not shell path. (mail_local_folder_construct): Remove path argument, and use the full_name instead. (mls_get_folder): Dont lookup folderinfo in cache. Like duh the shell hasn't told me its there yet, smaaaart. svn path=/trunk/; revision=13053
-rw-r--r--mail/ChangeLog7
-rw-r--r--mail/mail-local.c29
2 files changed, 13 insertions, 23 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
index 25e21c60c8..dc681c31c6 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -1,5 +1,12 @@
2001-09-21 <NotZed@Ximian.com>
+ * mail-local.c (mail_local_store_add_folder): Use url path as
+ full_name, not shell path.
+ (mail_local_folder_construct): Remove path argument, and use the
+ full_name instead.
+ (mls_get_folder): Dont lookup folderinfo in cache. Like duh the
+ shell hasn't told me its there yet, smaaaart.
+
* mail-folder-cache.c (mail_note_store): Take a new argument
'done' that can callback when complete. Fixed callers
appropriately.
diff --git a/mail/mail-local.c b/mail/mail-local.c
index 32f77e2aee..d3541d24a9 100644
--- a/mail/mail-local.c
+++ b/mail/mail-local.c
@@ -510,7 +510,7 @@ mail_local_folder_get_type (void)
}
static MailLocalFolder *
-mail_local_folder_construct(MailLocalFolder *mlf, MailLocalStore *parent_store, const char *full_name, char *path, CamelException *ex)
+mail_local_folder_construct(MailLocalFolder *mlf, MailLocalStore *parent_store, const char *full_name, CamelException *ex)
{
const char *name;
char *metapath;
@@ -524,8 +524,7 @@ mail_local_folder_construct(MailLocalFolder *mlf, MailLocalStore *parent_store,
camel_folder_construct(CAMEL_FOLDER (mlf), CAMEL_STORE(parent_store), full_name, name);
- mlf->real_path = ((CamelFolder *)mlf)->full_name;
- ((CamelFolder *)mlf)->full_name = g_strdup(path);
+ mlf->real_path = g_strdup(((CamelFolder *)mlf)->full_name);
metapath = g_strdup_printf("%s/%s/local-metadata.xml", ((CamelService *)parent_store)->url->path, full_name);
mlf->meta = load_metainfo(metapath);
@@ -661,24 +660,8 @@ mls_get_folder(CamelStore *store, const char *folder_name, guint32 flags, CamelE
d(printf("--LOCAL-- get_folder: %s\n", folder_name));
- physical_uri = g_strdup_printf("file:/%s/%s", ((CamelService *)store)->url->path, folder_name);
- LOCAL_STORE_LOCK(local_store);
- info = g_hash_table_lookup(local_store->folder_infos, physical_uri);
- g_free(physical_uri);
- if (info) {
- path = g_strdup(info->full_name);
- LOCAL_STORE_UNLOCK(local_store);
- } else {
- LOCAL_STORE_UNLOCK(local_store);
- g_warning("LocalStore opening a folder we weren't told existed!: %s", physical_uri);
- camel_exception_setv (ex, CAMEL_EXCEPTION_SYSTEM,
- _("Cannot open folder: %s: No such folder"),
- folder_name);
- return NULL;
- }
-
folder = (MailLocalFolder *)camel_object_new(MAIL_LOCAL_FOLDER_TYPE);
- folder = mail_local_folder_construct(folder, local_store, folder_name, path, ex);
+ folder = mail_local_folder_construct(folder, local_store, folder_name, ex);
if (folder == NULL)
return NULL;
@@ -813,6 +796,8 @@ static void mail_local_store_add_folder(MailLocalStore *mls, const char *uri, co
CamelFolderInfo *info = NULL;
CamelURL *url;
+ d(printf("Shell adding folder: '%s' path = '%s'\n", uri, path));
+
url = camel_url_new(uri, NULL);
if (url == NULL) {
g_warning("Shell trying to add invalid folder url: %s", uri);
@@ -831,7 +816,7 @@ static void mail_local_store_add_folder(MailLocalStore *mls, const char *uri, co
} else {
info = g_malloc0(sizeof(*info));
info->url = g_strdup(uri);
- info->full_name = g_strdup(path);
+ info->full_name = g_strdup(url->path+1);
info->name = g_strdup(name);
info->unread_message_count = -1;
info->path = g_strdup (path);
@@ -843,8 +828,6 @@ static void mail_local_store_add_folder(MailLocalStore *mls, const char *uri, co
camel_url_free(url);
if (info) {
- d(printf("adding folder: '%s' path = '%s'\n", uri, path));
-
/* FIXME: should copy info, so we dont get a removed while we're using it? */
camel_object_trigger_event((CamelObject *)mls, "folder_created", info);