[dev] Renaming folders with sub-folders...

Gary Windham windhamg at email.arizona.edu
Wed Feb 25 13:56:50 PST 2004


Sorry...I was referencing the line number displayed by Chora.

--Gary

On Wed, 2004-02-25 at 14:10, Marc Jauvin wrote:
> The line number is now 509 with CVS HEAD...
> 
> --marc
> 
> Gary Windham <windhamg at email.arizona.edu> wrote:
> 
> > Quoting Michael M Slusarz <slusarz at bigworm.colorado.edu>:
> >
> >> Quoting Gary Windham <windhamg at email.arizona.edu>:
> >>
> >>> Quoting Michael M Slusarz <slusarz at bigworm.colorado.edu>:
> >>>
> >>>> Quoting Gary Windham <windhamg at email.arizona.edu>:
> >>>>
> >>>>> I confirmed this behavior, using Cyrus IMAP 2.1.14.  Reloading 
> >>>>> the folder list
> >>>>> resulted in the original "test" folder disappearing, so this 
> >>>>> appears to be a
> >>>>> cache issue.
> >>>>
> >>>> Try what I just committed.
> >>>
> >>> Works for me...except for a couple of weird edge conditions.  I almost
> >>> hesitate
> >>> to mention them, but they're just too weird.
> >>>
> >>> If I have a folder hierarchy a/<anything>, where the top-level folder is
> >>> *literally* called "a", then the folder rename operation fails.  If the
> >>> top-level folder is called "b", or "x", or "aa", "cucumber", or *anything*
> >>> else, then the rename succeeds.
> >>
> >> That is strange - can't replicate that here.  Chuck's post possibly explains
> >> this one though...
> >>
> >>> The second condition is if I have a folder hierarchy "test1/test1", then
> >>> renaming the top-level folder to "test2" results in the subfolder being
> >>> renamed
> >>> to "test2" as well.  That is, "test1/test1" becomes "test2/test2".
> >>
> >> Can't replicate this, using courier-imap 2.2.0 (i.e., test0/test0,
> >> selecting the
> >> base test0, changing the name test1, results in a tree of test1/test0).
> >
> > OK, I traced down the cause of both these problems, but I am puzzled 
> > as to why
> > you weren't able to replicate them.
> >
> > Line 519 in imp/lib/Folder.php (inside function rename()) reads:
> >
> >    $folder_new = str_replace($old, $new, $folder_old);
> >
> > Since $folder_old, is going to be a fully-qualified folder path (with
> > the server
> > prefix), it's easy to see how the above str_replace() will munge the
> > new folder
> > name for the following case:
> >
> > $old = 'a';
> > $new = 'x';
> > $folder_old = '{inbox.email.arizona.edu:143/imap/notls}a';
> >
> > After the above call to str_replace(), $folder_new becomes
> > 'inbox.emxil.xrizonx.edu:143/imxp/notls}x'.  imap_renamemailbox() 
> > subsequently
> > barfs. :)
> >
> > The other case (test1/test1 => test2/test2) also appears to be caused by this
> > same call to str_replace().  The variables in this case are:
> >
> > $old = 'test1';
> > $new = 'test2';
> > $folder_old = '{inbox.email.arizona.edu:143/imap/notls}test1/test1';
> >
> > $folder_new becomes '{inbox.email.arizona.edu:143/imap/notls}test2/test2';
> >
> > Thanks,
> > --Gary
> > --
> > Gary Windham
> > Systems Programmer, Principal
> > The University of Arizona, CCIT
> >
> > --
> > Horde developers mailing list - Join the hunt: http://horde.org/bounties/
> > Frequently Asked Questions: http://horde.org/faq/
> > To unsubscribe, mail: dev-unsubscribe at lists.horde.org
> 
> 
> 
> --
> Marc Jauvin
> http://register4less.com
> 450-441-5458
-- 
Gary Windham
Systems Programmer, Principal
The University of Arizona - CCIT



More information about the dev mailing list