diff options
author | 9 <NotZed@Ximian.com> | 2001-10-29 13:06:59 +0800 |
---|---|---|
committer | Michael Zucci <zucchi@src.gnome.org> | 2001-10-29 13:06:59 +0800 |
commit | 8e598e640e9cbc8fe42d5d017b4557d656f24c5b (patch) | |
tree | 38b33360f334a12623d049b5ce364731e7c12830 /camel/camel-store.c | |
parent | fedf164cb97afe53eab3e3e4fcfb1765e89a61b5 (diff) | |
download | gsoc2013-evolution-8e598e640e9cbc8fe42d5d017b4557d656f24c5b.tar.gz gsoc2013-evolution-8e598e640e9cbc8fe42d5d017b4557d656f24c5b.tar.zst gsoc2013-evolution-8e598e640e9cbc8fe42d5d017b4557d656f24c5b.zip |
Fix the 'is this a matching subfolder or subfolder'' logic to match
2001-10-29 <NotZed@Ximian.com>
* camel-vee-store.c (build_info): Fix the 'is this a matching
subfolder or subfolder'' logic to match camel-store
get_subfolders'.
* camel-store.c (get_subfolders): Fix the 'is this a matching
folder or subfolder' logic.
svn path=/trunk/; revision=14324
Diffstat (limited to 'camel/camel-store.c')
-rw-r--r-- | camel/camel-store.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/camel/camel-store.c b/camel/camel-store.c index a8c6b79bf0..d98df75d55 100644 --- a/camel/camel-store.c +++ b/camel/camel-store.c @@ -383,8 +383,17 @@ struct _get_info { static void get_subfolders(char *key, CamelFolder *folder, struct _get_info *info) { - /* If this is a subfolder of the one to be renamed, we need to get it, AND lock it */ - if (strncmp(folder->full_name, info->old, strlen(info->old)) == 0) { + int oldlen, namelen; + + namelen = strlen(folder->full_name); + oldlen = strlen(info->old); + + if ((namelen == oldlen && + strcmp(folder->full_name, info->old) == 0) + || ((namelen > oldlen) + && strncmp(folder->full_name, info->old, oldlen) == 0 + && folder->full_name[oldlen] == info->store->dir_sep)) { + d(printf("Found subfolder of '%s' == '%s'\n", info->old, folder->full_name)); camel_object_ref((CamelObject *)folder); g_ptr_array_add(info->folders, folder); |