aboutsummaryrefslogtreecommitdiffstats
path: root/camel/providers
diff options
context:
space:
mode:
Diffstat (limited to 'camel/providers')
-rw-r--r--camel/providers/imap/camel-imap-store.c31
-rw-r--r--camel/providers/nntp/camel-nntp-store.c6
2 files changed, 21 insertions, 16 deletions
diff --git a/camel/providers/imap/camel-imap-store.c b/camel/providers/imap/camel-imap-store.c
index 8e3816088d..f0ea3c0aec 100644
--- a/camel/providers/imap/camel-imap-store.c
+++ b/camel/providers/imap/camel-imap-store.c
@@ -675,6 +675,8 @@ get_folder_info (CamelStore *store, const char *top, gboolean fast,
topfi = topfi->child;
fi->child = NULL;
camel_folder_info_free (fi);
+ for (fi = topfi; fi; fi->sibling)
+ fi->parent = NULL;
}
g_free (namespace);
@@ -688,9 +690,10 @@ folder_subscribed (CamelStore *store, const char *folder_name)
CamelImapStore *imap_store = CAMEL_IMAP_STORE (store);
char *folder_path;
- folder_path = camel_imap_store_folder_path (imap_store, folder_name + 1 /* bump past the '/' */);
+ folder_path = camel_imap_store_folder_path (imap_store, folder_name);
- return (g_hash_table_lookup (imap_store->subscribed_folders, folder_path) != NULL);
+ return g_hash_table_lookup (imap_store->subscribed_folders,
+ folder_path) != NULL;
}
static void
@@ -701,14 +704,16 @@ subscribe_folder (CamelStore *store, const char *folder_name,
CamelImapResponse *response;
char *folder_path;
- folder_path = camel_imap_store_folder_path (imap_store, folder_name + 1 /* bump past the '/' */);
+ folder_path = camel_imap_store_folder_path (imap_store, folder_name);
response = camel_imap_command (imap_store, NULL, ex,
"SUBSCRIBE \"%s\"",
folder_path);
-
- if (response)
- g_hash_table_insert (imap_store->subscribed_folders, folder_path, folder_path);
+ if (response) {
+ g_hash_table_insert (imap_store->subscribed_folders,
+ folder_path, folder_path);
+ } else
+ g_free (folder_path);
camel_imap_response_free (response);
}
@@ -719,22 +724,22 @@ unsubscribe_folder (CamelStore *store, const char *folder_name,
CamelImapStore *imap_store = CAMEL_IMAP_STORE (store);
CamelImapResponse *response;
char *folder_path;
- char *key, *value;
+ gpointer key, value;
- folder_path = camel_imap_store_folder_path (imap_store, folder_name + 1 /* bump past the '/' */);
+ folder_path = camel_imap_store_folder_path (imap_store, folder_name);
response = camel_imap_command (imap_store, NULL, ex,
"UNSUBSCRIBE \"%s\"",
folder_path);
-
if (response) {
- g_hash_table_lookup_extended (imap_store->subscribed_folders, folder_path,
- (gpointer)&key, (gpointer)&value);
- g_hash_table_remove (imap_store->subscribed_folders, folder_path);
+ g_hash_table_lookup_extended (imap_store->subscribed_folders,
+ folder_path, key, value);
+ g_hash_table_remove (imap_store->subscribed_folders,
+ folder_path);
+ g_free (key);
}
camel_imap_response_free (response);
g_free (folder_path);
- g_free (key);
}
static void
diff --git a/camel/providers/nntp/camel-nntp-store.c b/camel/providers/nntp/camel-nntp-store.c
index 9bc59e7150..dbba4356be 100644
--- a/camel/providers/nntp/camel-nntp-store.c
+++ b/camel/providers/nntp/camel-nntp-store.c
@@ -563,7 +563,7 @@ nntp_store_folder_subscribed (CamelStore *store, const char *folder_name)
{
CamelNNTPStore *nntp_store = CAMEL_NNTP_STORE (store);
- return camel_nntp_newsrc_group_is_subscribed (nntp_store->newsrc, folder_name + 1);
+ return camel_nntp_newsrc_group_is_subscribed (nntp_store->newsrc, folder_name);
}
static void
@@ -572,7 +572,7 @@ nntp_store_subscribe_folder (CamelStore *store, const char *folder_name,
{
CamelNNTPStore *nntp_store = CAMEL_NNTP_STORE (store);
- camel_nntp_newsrc_subscribe_group (nntp_store->newsrc, folder_name + 1);
+ camel_nntp_newsrc_subscribe_group (nntp_store->newsrc, folder_name);
}
static void
@@ -581,7 +581,7 @@ nntp_store_unsubscribe_folder (CamelStore *store, const char *folder_name,
{
CamelNNTPStore *nntp_store = CAMEL_NNTP_STORE (store);
- camel_nntp_newsrc_unsubscribe_group (nntp_store->newsrc, folder_name + 1);
+ camel_nntp_newsrc_unsubscribe_group (nntp_store->newsrc, folder_name);
}
static void