X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=src%2Ffolders_rename_do.php;h=4edacc2d79217102f9f3e5a7a7ecb167ca22cbdd;hb=525b7ae6ddd3cb500999021bb216d010fade1857;hp=cd6e399a17bdbbc47c996b90f2e995d6c0955b92;hpb=d3cdb279bd61b172926b51d41d09c8a691d6c347;p=squirrelmail.git diff --git a/src/folders_rename_do.php b/src/folders_rename_do.php index cd6e399a..4edacc2d 100644 --- a/src/folders_rename_do.php +++ b/src/folders_rename_do.php @@ -1,70 +1,70 @@ - 0) { - createFolder($imapConnection, "$mailbox.$after"); - if ($numMessages > 0) - $success = copyMessages($imapConnection, 1, $numMessages, "$mailbox.$after"); - else - $success = true; + // Renaming a folder doesn't renames the folder but leaves you unsubscribed + // at least on Cyrus IMAP servers. + if (isset($isfolder)) { + $newone = $newone.$delimiter; + $orig = $orig.$delimiter; + } + sqimap_unsubscribe($imapConnection, $orig); + sqimap_subscribe($imapConnection, $newone); - if ($success == true) - removeFolder($imapConnection, "$boxesUnformatted[$i]"); - } - else { - createFolder($imapConnection, "$mailbox"); - if ($numMessages > 0) - $success = copyMessages($imapConnection, 1, $numMessages, "$mailbox"); - else - $success = true; + fputs ($imapConnection, sqimap_session_id() . " LIST \"\" \"" . quoteIMAP($newone) . + "*\"\r\n"); + $data = sqimap_read_data($imapConnection, sqimap_session_id(), true, $a, $b); + for ($i=0; $i < count($data); $i++) + { + $name = find_mailbox_name($data[$i]); - if ($success == true) - removeFolder($imapConnection, "$boxesUnformatted[$i]"); - } + if ($name != $newone) // don't try to resubscribe when renaming ab to abc + { + sqimap_unsubscribe($imapConnection, $name); + $name = substr($name, strlen($orig)); + $name = $newone . $name; + sqimap_subscribe($imapConnection, $name); } } -*/ - /** Log out this session **/ - fputs($imapConnection, "1 logout"); - echo "\n"; - echo "

Return"; - echo ""; + /** Log out this session **/ + sqimap_logout($imapConnection); + $location = get_location(); + header ("Location: $location/folders.php?success=rename"); ?> - -