diff --git a/ChangeLog.claws b/ChangeLog.claws index 308d89c7e..02bd3131e 100644 --- a/ChangeLog.claws +++ b/ChangeLog.claws @@ -1,3 +1,9 @@ +2002-08-21 [colin] 0.8.1claws92 + + *src/prefs_filtering.c + fix renaming rules on folder rename + when folder is not a leaf folder + 2002-08-21 [paul] 0.8.1claws91 * src/prefs_folder_item.c diff --git a/configure.in b/configure.in index a1e490464..62a6af39a 100644 --- a/configure.in +++ b/configure.in @@ -8,7 +8,7 @@ MINOR_VERSION=8 MICRO_VERSION=1 INTERFACE_AGE=0 BINARY_AGE=0 -EXTRA_VERSION=claws91 +EXTRA_VERSION=claws92 VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION dnl set $target diff --git a/src/prefs_filtering.c b/src/prefs_filtering.c index 1faf4b8fc..c2bfb4b6c 100644 --- a/src/prefs_filtering.c +++ b/src/prefs_filtering.c @@ -615,6 +615,7 @@ void prefs_filtering_rename_path(const gchar *old_path, const gchar *new_path) gchar *prefix; gchar *suffix; gchar *dest_path; + gchar *old_path_with_sep; gint destlen; gint prefixlen; gint oldpathlen; @@ -623,6 +624,7 @@ void prefs_filtering_rename_path(const gchar *old_path, const gchar *new_path) g_return_if_fail(new_path != NULL); oldpathlen = strlen(old_path); + old_path_with_sep = g_strconcat(old_path,G_DIR_SEPARATOR_S,NULL); for (cur = global_processing; cur != NULL; cur = cur->next) { FilteringProp *filtering = (FilteringProp *)cur->data; @@ -656,6 +658,17 @@ void prefs_filtering_rename_path(const gchar *old_path, const gchar *new_path) g_free(prefix); g_free(action->destination); action->destination = dest_path; + } else { /* for non-leaf folders */ + /* compare with trailing slash */ + if(!strncmp(old_path_with_sep, action->destination, oldpathlen+1)) { + + suffix = action->destination + oldpathlen + 1; + dest_path = g_strconcat(new_path, + G_DIR_SEPARATOR_S, + suffix, NULL); + g_free(action->destination); + action->destination = dest_path; + } } } }