>>>>> "pod" == pod  <[EMAIL PROTECTED]> writes:

    pod> I'd like to flag a problem we are observing that looks like it is
    pod> caused by the listescape-plugin.c.  I realize that this plugin is
    pod> not part of the standard Dovecot 1.0 distribution but I would
    pod> appreciate any insights or suggestions for fixes that anyone is
    pod> kind enough to offer.
    [...]

Update: my original analysis of this was incorrect.  The 'internal'
functions are correctly using 'internal' names, however
maildir_mailbox_list_next() references storage->hierarchy_sep to obtain a
char with which to join together path elements.  Under listescape however
storage->hierarchy_sep == '/' so non-existent pathnames are generated.

I've come up with the following workaround but I can't help feeling it is
maybe a little fragile.

Timo: please consider applying this to

<http://dovecot.org/patches/1.0/listescape-plugin.c>
diff -r 70cc4b8884ef src/plugins/listescape/listescape-plugin.c
--- a/src/plugins/listescape/listescape-plugin.c        Tue Jul 31 19:42:03 
2007 +0100
+++ b/src/plugins/listescape/listescape-plugin.c        Fri Aug 31 19:21:05 
2007 +0100
@@ -160,10 +160,16 @@ listescape_mailbox_rename(struct mail_st
 {
        struct listescape_mail_storage *mstorage =
                LIST_ESCAPE_CONTEXT(storage);
+       char saved_hierarchy_sep;
+       int ret;
 
        oldname = list_escape(oldname);
        newname = list_escape(newname);
-       return mstorage->super.mailbox_rename(storage, oldname, newname);
+       saved_hierarchy_sep = storage->hierarchy_sep;
+       storage->hierarchy_sep = REAL_SEP;
+       ret = mstorage->super.mailbox_rename(storage, oldname, newname);
+       storage->hierarchy_sep = saved_hierarchy_sep;
+       return ret;
 }
 
 static int listescape_set_subscribed(struct mail_storage *storage,

Reply via email to