From 34a1fa98eceef091224af3ab5d105791dd17ff24 Mon Sep 17 00:00:00 2001 From: Michael M Slusarz Date: Wed, 11 Aug 2010 00:58:56 -0600 Subject: [PATCH] Bug #9138: Fix sentmail selection --- imp/lib/Prefs/Ui.php | 23 +++++++++++++---------- imp/templates/prefs/sentmail.html | 2 +- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/imp/lib/Prefs/Ui.php b/imp/lib/Prefs/Ui.php index 55c6d4558..377d23cc9 100644 --- a/imp/lib/Prefs/Ui.php +++ b/imp/lib/Prefs/Ui.php @@ -1268,20 +1268,23 @@ class IMP_Prefs_Ui } $sent_mail_folder = $ui->vars->sent_mail_folder; - if (empty($sent_mail_folder)) { - $sent_mail_new = $GLOBALS['injector']->getInstance('IMP_Imap')->getOb()->appendNamespace(Horde_String::convertCharset($ui->vars->sent_mail_folder_new, $GLOBALS['registry']->getCharset(), 'UTF7-IMAP')); - } elseif (($sent_mail_folder == '-1') && + if (empty($sent_mail_folder) && $ui->vars->sent_mail_folder_new) { + $sent_mail_folder = $GLOBALS['injector']->getInstance('IMP_Imap')->getOb()->appendNamespace(Horde_String::convertCharset($ui->vars->sent_mail_folder_new, $GLOBALS['registry']->getCharset(), 'UTF7-IMAP')); + } elseif (($sent_mail_folder == "\1default") && ($sm_default = $prefs->getDefault('sent_mail_folder'))) { + /* Use \1 as the prefix to differentiate from a IMAP mailbox + * potentially named 'default'. \1 is theoretically a valid + * IMAP mailbox character, but it is highly unlikely it exists + * anywhere (and we can't use \0 in form data). */ $sent_mail_folder = $GLOBALS['injector']->getInstance('IMP_Imap')->getOb()->appendNamespace($sm_default); } - if (empty($sent_mail_folder)) { - return false; - } - - $imp_folder = $GLOBALS['injector']->getInstance('IMP_Folder'); - if (!$imp_folder->exists($sent_mail_folder)) { - $imp_folder->create($sent_mail_folder, $prefs->getValue('subscribe')); + if ($sent_mail_folder) { + $imp_folder = $GLOBALS['injector']->getInstance('IMP_Folder'); + if (!$imp_folder->exists($sent_mail_folder) && + !$imp_folder->create($sent_mail_folder, $prefs->getValue('subscribe'))) { + return false; + } } return $GLOBALS['injector']->getInstance('IMP_Identity')->setValue('sent_mail_folder', $sent_mail_folder); diff --git a/imp/templates/prefs/sentmail.html b/imp/templates/prefs/sentmail.html index 9fcd88f5d..54ce6c06a 100644 --- a/imp/templates/prefs/sentmail.html +++ b/imp/templates/prefs/sentmail.html @@ -5,7 +5,7 @@
-- 2.11.0