talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit debddd277f832d380507c0fe70e818e67f05f710
parent 3d00d863235ddd9f91682d0fe4e61e009fae84a9
Author: Colin Leroy <colin@colino.net>
Date:   Tue, 22 Nov 2011 19:37:32 +0000

2011-11-22 [colin]	3.7.10cvs99

	* src/account.c
	* src/prefs_filtering.c
	* src/prefs_filtering.h
		Partly revert 3.7.10cvs97 (bug #2404, bug #2406):
		The existing functions should do the job as well
		if not better, as they take into account the
		separator.

Diffstat:
MChangeLog | 10++++++++++
MPATCHSETS | 1+
Mconfigure.ac | 2+-
Msrc/account.c | 34++--------------------------------
Msrc/prefs_filtering.c | 77-----------------------------------------------------------------------------
Msrc/prefs_filtering.h | 2--
6 files changed, 14 insertions(+), 112 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -1,3 +1,13 @@ +2011-11-22 [colin] 3.7.10cvs99 + + * src/account.c + * src/prefs_filtering.c + * src/prefs_filtering.h + Partly revert 3.7.10cvs97 (bug #2404, bug #2406): + The existing functions should do the job as well + if not better, as they take into account the + separator. + 2011-11-21 [pawel] 3.7.10cvs98 * src/prefs_account.c diff --git a/PATCHSETS b/PATCHSETS @@ -4302,3 +4302,4 @@ ( cvs diff -u -r 1.60.2.58 -r 1.60.2.59 src/filtering.c; cvs diff -u -r 1.21.2.19 -r 1.21.2.20 src/filtering.h; cvs diff -u -r 1.60.2.76 -r 1.60.2.77 src/prefs_actions.c; ) > 3.7.10cvs96.patchset ( cvs diff -u -r 1.61.2.101 -r 1.61.2.102 src/account.c; cvs diff -u -r 1.59.2.85 -r 1.59.2.86 src/prefs_filtering.c; cvs diff -u -r 1.6.2.10 -r 1.6.2.11 src/prefs_filtering.h; ) > 3.7.10cvs97.patchset ( cvs diff -u -r 1.105.2.170 -r 1.105.2.171 src/prefs_account.c; ) > 3.7.10cvs98.patchset +( cvs diff -u -r 1.61.2.102 -r 1.61.2.103 src/account.c; cvs diff -u -r 1.59.2.86 -r 1.59.2.87 src/prefs_filtering.c; cvs diff -u -r 1.6.2.11 -r 1.6.2.12 src/prefs_filtering.h; ) > 3.7.10cvs99.patchset diff --git a/configure.ac b/configure.ac @@ -12,7 +12,7 @@ MINOR_VERSION=7 MICRO_VERSION=10 INTERFACE_AGE=0 BINARY_AGE=0 -EXTRA_VERSION=98 +EXTRA_VERSION=99 EXTRA_RELEASE= EXTRA_GTK2_VERSION= diff --git a/src/account.c b/src/account.c @@ -118,8 +118,6 @@ static void account_list_view_add (PrefsAccount *ac_prefs); static void account_list_view_set (void); static void account_list_set (void); -static void account_rename_path_prefix (const gchar *old_prefix, - const gchar *new_prefix); typedef struct FindAccountInStore { gint account_id; @@ -467,8 +465,8 @@ void account_open(PrefsAccount *ac_prefs) folder_prefs_save_config_recursive(FOLDER(ac_prefs->folder)); new_prefix = folder_get_identifier(FOLDER(ac_prefs->folder)); - account_rename_path_prefix(old_prefix, new_prefix); - prefs_filtering_rename_path_prefix(old_prefix, new_prefix); + account_rename_path(old_prefix, new_prefix); + prefs_filtering_rename_path(old_prefix, new_prefix); g_free(old_prefix); g_free(new_prefix); @@ -568,34 +566,6 @@ void account_rename_path(const gchar *old_id, const gchar *new_id) } } -#undef CHECK_CHANGE_FOLDER - -#define CHANGE_FOLDER_PREFIX(folder) { \ - if (folder && g_str_has_prefix(folder, old_prefix)) { \ - gchar *new_path = g_strconcat(new_prefix, \ - (folder + strlen(old_prefix)), NULL); \ - g_free(folder); \ - folder = new_path; \ - } \ -} - -static void account_rename_path_prefix(const gchar *old_prefix, - const gchar *new_prefix) -{ - GList *cur = account_list; - for (; cur != NULL; cur = g_list_next(cur)) { - PrefsAccount *ap = (PrefsAccount *)cur->data; - CHANGE_FOLDER_PREFIX(ap->inbox); - CHANGE_FOLDER_PREFIX(ap->local_inbox); - CHANGE_FOLDER_PREFIX(ap->queue_folder); - CHANGE_FOLDER_PREFIX(ap->sent_folder); - CHANGE_FOLDER_PREFIX(ap->draft_folder); - CHANGE_FOLDER_PREFIX(ap->trash_folder); - } -} - -#undef CHANGE_FOLDER_PREFIX - FolderItem *account_get_special_folder(PrefsAccount *ac_prefs, SpecialFolderItemType type) { diff --git a/src/prefs_filtering.c b/src/prefs_filtering.c @@ -765,83 +765,6 @@ static gboolean prefs_filtering_rename_path_func(GNode *node, gpointer data) return FALSE; } -static void rename_path_prefix(GSList *filters, const gchar *old_prefix, - const gchar *new_prefix) -{ - GSList *action_cur, *cur; - gchar *new_path; - - for (cur = filters; cur != NULL; cur = cur->next) { - FilteringProp *filtering = (FilteringProp *)cur->data; - - for(action_cur = filtering->action_list ; action_cur != NULL ; - action_cur = action_cur->next) { - - FilteringAction *action = action_cur->data; - - if (action->type == MATCHACTION_SET_TAG || - action->type == MATCHACTION_UNSET_TAG) - continue; - if (!action->destination) - continue; - if (!g_str_has_prefix(action->destination, old_prefix)) - continue; - - new_path = g_strconcat(new_prefix, - (action->destination + strlen(old_prefix)), NULL); - g_free(action->destination); - action->destination = new_path; - } - } -} - -static gboolean prefs_filtering_rename_path_prefix_func(GNode *node, gpointer data) -{ - GSList *filters; - const gchar * old_prefix; - const gchar * new_prefix; - const gchar ** paths; - FolderItem *item; - - paths = data; - old_prefix = paths[0]; - new_prefix = paths[1]; - - cm_return_val_if_fail(old_prefix != NULL, FALSE); - cm_return_val_if_fail(new_prefix != NULL, FALSE); - cm_return_val_if_fail(node != NULL, FALSE); - - item = node->data; - if (!item || !item->prefs) - return FALSE; - filters = item->prefs->processing; - - rename_path_prefix(filters, old_prefix, new_prefix); - - return FALSE; -} - -void prefs_filtering_rename_path_prefix(const gchar *old_prefix, - const gchar *new_prefix) -{ - GList * cur; - const gchar *paths[2] = {NULL, NULL}; - paths[0] = old_prefix; - paths[1] = new_prefix; - for (cur = folder_get_list() ; cur != NULL ; cur = g_list_next(cur)) { - Folder *folder; - folder = (Folder *) cur->data; - g_node_traverse(folder->node, G_PRE_ORDER, G_TRAVERSE_ALL, -1, - prefs_filtering_rename_path_prefix_func, paths); - } - - rename_path_prefix(pre_global_processing, old_prefix, new_prefix); - rename_path_prefix(post_global_processing, old_prefix, new_prefix); - rename_path_prefix(filtering_rules, old_prefix, new_prefix); - - prefs_matcher_write_config(); -} - static void rename_tag(GSList * filters, const gchar * old_tag, const gchar * new_tag) { diff --git a/src/prefs_filtering.h b/src/prefs_filtering.h @@ -47,8 +47,6 @@ void prefs_filtering_open(GSList ** p_processing, void prefs_filtering_rename_path (const gchar *old_path, const gchar *new_path); -void prefs_filtering_rename_path_prefix (const gchar *old_prefix, - const gchar *new_prefix); void prefs_filtering_delete_path (const gchar *path); void prefs_filtering_rename_tag(const gchar *old_tag, const gchar *new_tag);