aboutsummaryrefslogtreecommitdiffstats
path: root/camel
diff options
context:
space:
mode:
Diffstat (limited to 'camel')
-rw-r--r--camel/ChangeLog8
-rw-r--r--camel/camel-store.c1
-rw-r--r--camel/providers/imap/camel-imap-store.c5
3 files changed, 12 insertions, 2 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog
index 94ffcdc39b..00df1f6bf9 100644
--- a/camel/ChangeLog
+++ b/camel/ChangeLog
@@ -8,6 +8,14 @@
2003-12-09 Not Zed <NotZed@Ximian.com>
+ ** See bug #51899.
+
+ * providers/imap/camel-imap-store.c (get_folders): add the first
+ fi to the info's hash, so we dont duplicate it if we come across
+ it again (which we generally will).
+
+2003-12-09 Not Zed <NotZed@Ximian.com>
+
* providers/smtp/camel-smtp-transport.c (smtp_send_to): encode the
address before sending it out, rather than using the raw/utf8
version.
diff --git a/camel/camel-store.c b/camel/camel-store.c
index 8d576d4583..c076128c38 100644
--- a/camel/camel-store.c
+++ b/camel/camel-store.c
@@ -953,6 +953,7 @@ camel_folder_info_build (GPtrArray *folders, const char *namespace,
name = fi->full_name;
if (*name == separator)
name++;
+
g_hash_table_insert (hash, g_strdup(name), fi);
}
diff --git a/camel/providers/imap/camel-imap-store.c b/camel/providers/imap/camel-imap-store.c
index 07152eef87..2d6337896f 100644
--- a/camel/providers/imap/camel-imap-store.c
+++ b/camel/providers/imap/camel-imap-store.c
@@ -2498,6 +2498,7 @@ get_folders(CamelStore *store, const char *top, guint32 flags, CamelException *e
fi = q->data;
q = g_slist_remove_link(q, q);
+ g_hash_table_insert(infos, fi->full_name, fi);
g_ptr_array_add(folders_out, fi);
d(printf("Checking folder '%s'\n", fi->full_name));
@@ -2574,10 +2575,10 @@ get_folder_info_online (CamelStore *store, const char *top, guint32 flags, Camel
if (folders == NULL)
return NULL;
-
+
tree = camel_folder_info_build(folders, top, '/', TRUE);
g_ptr_array_free(folders, TRUE);
-
+
if (!(flags & CAMEL_STORE_FOLDER_INFO_FAST))
get_folder_counts(imap_store, tree, ex);