X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=src%2Ffolders_rename_do.php;h=8807f6456c2bd9a72a3937e7c142942e143dfabb;hp=cd6e399a17bdbbc47c996b90f2e995d6c0955b92;hb=e0dcff78e5469c8dc71cc603dff6326fc4f7b3c2;hpb=d3cdb279bd61b172926b51d41d09c8a691d6c347 diff --git a/src/folders_rename_do.php b/src/folders_rename_do.php index cd6e399a..8807f645 100644 --- a/src/folders_rename_do.php +++ b/src/folders_rename_do.php @@ -1,14 +1,27 @@ - 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.$dm; + $orig = $orig.$dm; + } + 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"); +?> \ No newline at end of file