From: Timo Sirainen Date: Fri, 18 Feb 2022 10:11:53 +0000 (+0200) Subject: lib-storage: Split off path_get_parent_dir() X-Git-Tag: 2.4.0~4333 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a78b40ca6a408befc0f7d2ed0bd99036b42a91c9;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: Split off path_get_parent_dir() --- diff --git a/src/lib-storage/list/mailbox-list-fs.c b/src/lib-storage/list/mailbox-list-fs.c index c1aabb9ce1..be8277b8a1 100644 --- a/src/lib-storage/list/mailbox-list-fs.c +++ b/src/lib-storage/list/mailbox-list-fs.c @@ -353,6 +353,12 @@ static int fs_list_delete_dir(struct mailbox_list *list, const char *name) return -1; } +static const char *path_get_parent_dir(const char *path) +{ + const char *p = strrchr(path, '/'); + return p == NULL ? "/" : t_strdup_until(path, p); +} + static int rename_dir(struct mailbox_list *oldlist, const char *oldname, struct mailbox_list *newlist, const char *newname, enum mailbox_list_path_type type, bool rmdir_parent) @@ -367,10 +373,8 @@ static int rename_dir(struct mailbox_list *oldlist, const char *oldname, if (strcmp(oldpath, newpath) == 0) return 0; - p = strrchr(oldpath, '/'); - oldparent = p == NULL ? "/" : t_strdup_until(oldpath, p); - p = strrchr(newpath, '/'); - newparent = p == NULL ? "/" : t_strdup_until(newpath, p); + oldparent = path_get_parent_dir(oldpath); + newparent = path_get_parent_dir(newpath); if (strcmp(oldparent, newparent) != 0 && stat(oldpath, &st) == 0) { /* make sure the newparent exists */