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)
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 */