--- program/steps/settings/manage_folders.inc 2008-07-16 14:32:10.000000000 +0800 +++ program/steps/settings/manage_folders.inc 2008-07-16 14:37:23.000000000 +0800 @@ -49,7 +49,12 @@ else if ($_action=='create-folder') { if (!empty($_POST['_name'])) - $create = $IMAP->create_mailbox(trim(get_input_value('_name', RCUBE_INPUT_POST, FALSE, 'UTF-7')), TRUE); + { + $name = trim(get_input_value('_name', RCUBE_INPUT_POST, FALSE, 'UTF-7')); + // #1485036 (RFC3501, 5.1.3) TODO: it should be done on read not on write + $name = str_replace('&-', '&', $name); + $create = $IMAP->create_mailbox($name, TRUE); + } if ($create && $OUTPUT->ajax_call) { @@ -75,8 +80,13 @@ $delimiter = $IMAP->get_hierarchy_delimiter(); if (!empty($_POST['_folder_oldname']) && !empty($_POST['_folder_newname'])) - $rename = $IMAP->rename_mailbox(($oldname = get_input_value('_folder_oldname', RCUBE_INPUT_POST)), trim(get_input_value('_folder_newname', RCUBE_INPUT_POST, FALSE, 'UTF-7'))); - + { + $name = trim(get_input_value('_folder_newname', RCUBE_INPUT_POST, FALSE, 'UTF-7')); + // #1485036 (RFC3501, 5.1.3) TODO: it should be done on read not on write + $name = str_replace('&-', '&', $name); + $rename = $IMAP->rename_mailbox(($oldname = get_input_value('_folder_oldname', RCUBE_INPUT_POST)), $name); + } + if ($rename && $OUTPUT->ajax_call) { $delimiter = $IMAP->get_hierarchy_delimiter();