aboutsummaryrefslogtreecommitdiffstats
path: root/camel/camel-store.c
diff options
context:
space:
mode:
authorJeffrey Stedfast <fejj@ximian.com>2001-09-28 06:32:11 +0800
committerJeffrey Stedfast <fejj@src.gnome.org>2001-09-28 06:32:11 +0800
commita0c093ed244b8187e8f1eed40ed3598493468741 (patch)
treea7ddc2877f465e196db368c764d084f43cd7d21c /camel/camel-store.c
parent7511816ec5a6f67e08d0dd4701754af8cf4b5145 (diff)
downloadgsoc2013-evolution-a0c093ed244b8187e8f1eed40ed3598493468741.tar.gz
gsoc2013-evolution-a0c093ed244b8187e8f1eed40ed3598493468741.tar.zst
gsoc2013-evolution-a0c093ed244b8187e8f1eed40ed3598493468741.zip
CRLF decode the stream before parsing it into a MIME part. This fixes bug
2001-09-27 Jeffrey Stedfast <fejj@ximian.com> * camel-pgp-mime.c (camel_pgp_mime_part_decrypt): CRLF decode the stream before parsing it into a MIME part. This fixes bug #10521. * camel-store.c: Remove the old folder from the vTrash folder. svn path=/trunk/; revision=13199
Diffstat (limited to 'camel/camel-store.c')
-rw-r--r--camel/camel-store.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/camel/camel-store.c b/camel/camel-store.c
index 4c70ae9981..31b410604e 100644
--- a/camel/camel-store.c
+++ b/camel/camel-store.c
@@ -333,9 +333,11 @@ camel_store_delete_folder (CamelStore *store, const char *folder_name, CamelExce
if (g_hash_table_lookup_extended(store->folders, folder_name, (void **)&key, (void **)&folder)) {
g_hash_table_remove(store->folders, key);
g_free(key);
+ camel_object_ref (CAMEL_OBJECT (folder));
CAMEL_STORE_UNLOCK(store, cache_lock);
if (store->vtrash)
camel_vee_folder_remove_folder((CamelVeeFolder *)store->vtrash, folder);
+ camel_object_unref (CAMEL_OBJECT (folder));
} else {
CAMEL_STORE_UNLOCK(store, cache_lock);
}
@@ -373,14 +375,23 @@ camel_store_rename_folder (CamelStore *store, const char *old_name, const char *
CAMEL_STORE_LOCK(store, folder_lock);
CS_CLASS (store)->rename_folder (store, old_name, new_name, ex);
-
+
/* remove the old name from the cache if it is there */
CAMEL_STORE_LOCK(store, cache_lock);
if (g_hash_table_lookup_extended(store->folders, old_name, (void **)&key, (void **)&folder)) {
g_hash_table_remove(store->folders, key);
g_free(key);
+
+ camel_object_ref (CAMEL_OBJECT (folder));
+
+ CAMEL_STORE_UNLOCK(store, cache_lock);
+
+ if (store->vtrash)
+ camel_vee_folder_remove_folder (CAMEL_VEE_FOLDER (store->vtrash), folder);
+ camel_object_unref (CAMEL_OBJECT (folder));
+ } else {
+ CAMEL_STORE_UNLOCK(store, cache_lock);
}
- CAMEL_STORE_UNLOCK(store, cache_lock);
CAMEL_STORE_UNLOCK(store, folder_lock);
}