From 033ee91461772e7f9611a5c8ac5a54e970908958 Mon Sep 17 00:00:00 2001 From: Christoph Hohmann Date: Sun, 30 Mar 2003 14:02:37 +0000 Subject: [PATCH] 0.8.11claws66 * src/folder.c don't use default folder for processing folder item because it can be a non local folder (fixes bug reported by Stephen Lewis ) --- ChangeLog.claws | 8 ++++++++ configure.ac | 2 +- src/folder.c | 43 +++++++++++++++++++++++++------------------ 3 files changed, 34 insertions(+), 19 deletions(-) diff --git a/ChangeLog.claws b/ChangeLog.claws index cf7619fe9..bf22c9977 100644 --- a/ChangeLog.claws +++ b/ChangeLog.claws @@ -1,3 +1,11 @@ +2003-03-30 [christoph] 0.8.11claws66 + + * src/folder.c + don't use default folder for processing folder item because + it can be a non local folder + + (fixes bug reported by Stephen Lewis ) + 2003-03-30 [alfons] 0.8.11claws65 * src/send_message.c diff --git a/configure.ac b/configure.ac index 2c11053b0..db345d3fd 100644 --- a/configure.ac +++ b/configure.ac @@ -11,7 +11,7 @@ MINOR_VERSION=8 MICRO_VERSION=11 INTERFACE_AGE=0 BINARY_AGE=0 -EXTRA_VERSION=claws65 +EXTRA_VERSION=claws66 VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION dnl set $target diff --git a/src/folder.c b/src/folder.c index ee4ea11a2..6de75e00f 100644 --- a/src/folder.c +++ b/src/folder.c @@ -2585,44 +2585,51 @@ static gchar * folder_item_get_tree_identifier(FolderItem * item) */ /* CLAWS: temporary local folder for filtering */ -static Folder *processing_folder; +#define TEMP_FOLDER "TEMP_FOLDER" +#define PROCESSING_FOLDER_ITEM "processing" + static FolderItem *processing_folder_item; static void folder_create_processing_folder(void) { -#define PROCESSING_FOLDER ".processing" - Folder *tmpparent; + Folder *processing_folder; gchar *tmpname; - tmpparent = folder_get_default_folder(); - g_assert(tmpparent); - debug_print("tmpparentroot %s\n", LOCAL_FOLDER(tmpparent)->rootpath); - if (LOCAL_FOLDER(tmpparent)->rootpath[0] == '/') - tmpname = g_strconcat(LOCAL_FOLDER(tmpparent)->rootpath, - G_DIR_SEPARATOR_S, PROCESSING_FOLDER, + if ((processing_folder = folder_find_from_name(TEMP_FOLDER, mh_get_class())) == NULL) { + gchar *tmppath; + + tmppath = + g_strconcat(get_rc_dir(), G_DIR_SEPARATOR_S, + "tempfolder", NULL); + processing_folder = + folder_new(mh_get_class(), TEMP_FOLDER, tmppath); + g_free(tmppath); + } + g_assert(processing_folder != NULL); + + debug_print("tmpparentroot %s\n", LOCAL_FOLDER(processing_folder)->rootpath); + if (LOCAL_FOLDER(processing_folder)->rootpath[0] == '/') + tmpname = g_strconcat(LOCAL_FOLDER(processing_folder)->rootpath, + G_DIR_SEPARATOR_S, PROCESSING_FOLDER_ITEM, NULL); else tmpname = g_strconcat(get_home_dir(), G_DIR_SEPARATOR_S, - LOCAL_FOLDER(tmpparent)->rootpath, - G_DIR_SEPARATOR_S, PROCESSING_FOLDER, + LOCAL_FOLDER(processing_folder)->rootpath, + G_DIR_SEPARATOR_S, PROCESSING_FOLDER_ITEM, NULL); - processing_folder = folder_new(mh_get_class(), "PROCESSING", LOCAL_FOLDER(tmpparent)->rootpath); - g_assert(processing_folder); - if (!is_dir_exist(tmpname)) { debug_print("*TMP* creating %s\n", tmpname); processing_folder_item = processing_folder->class->create_folder(processing_folder, processing_folder->node->data, - PROCESSING_FOLDER); - g_assert(processing_folder_item); - } - else { + PROCESSING_FOLDER_ITEM); + } else { debug_print("*TMP* already created\n"); processing_folder_item = folder_item_new(processing_folder, ".processing", ".processing"); g_assert(processing_folder_item); folder_item_append(processing_folder->node->data, processing_folder_item); } + g_assert(processing_folder_item != NULL); g_free(tmpname); } -- 2.25.1