*src/prefs_filtering.c

fix renaming rules on folder rename
                when folder is not a leaf folder
This commit is contained in:
Colin Leroy 2002-08-21 10:19:26 +00:00
parent ce7adb4d91
commit fd7ed873cd
3 changed files with 20 additions and 1 deletions

View file

@ -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

View file

@ -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

View file

@ -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;
}
}
}
}