From f1ce5163e5b91ab2efc0eb28eec7091be0144483 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Thu, 04 Mar 2010 10:34:32 -0500
Subject: [PATCH] - Fix inconsistent behaviour of 'delete_always' option (#1486299)

---
 CHANGELOG                      |    1 +
 program/include/rcube_imap.php |    6 +++---
 config/main.inc.php.dist       |   10 +++-------
 3 files changed, 7 insertions(+), 10 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index f67ca34..b7c2981 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
 CHANGELOG RoundCube Webmail
 ===========================
 
+- Fix inconsistent behaviour of 'delete_always' option (#1486299)
 - Fix deleting all messages from last list page (#1486293)
 - Flag original messages when sending a draft (#1486203)
 - Changed signature separator when top-posting (#1486330)
diff --git a/config/main.inc.php.dist b/config/main.inc.php.dist
index 819153f..6ab8b52 100644
--- a/config/main.inc.php.dist
+++ b/config/main.inc.php.dist
@@ -361,13 +361,9 @@
 
 /**
  * 'Delete always'
- * This setting reflects if mail should be always marked as deleted,
- * even if moving to "Trash" fails. This is necessary in some setups
- * because a) people may not have a Trash folder or b) they are over
- * quota (and Trash is included in the quota).
- *
- * This is a failover setting for iil_C_Move when a message is moved
- * to the Trash.
+ * This setting reflects if mail should be always deleted
+ * when moving to Trash fails. This is necessary in some setups
+ * when user is over quota and Trash is included in the quota.
  */
 $rcmail_config['delete_always'] = false;
 
diff --git a/program/include/rcube_imap.php b/program/include/rcube_imap.php
index 307914e..4c3c647 100644
--- a/program/include/rcube_imap.php
+++ b/program/include/rcube_imap.php
@@ -1793,7 +1793,7 @@
     // move messages
     $iil_move = iil_C_Move($this->conn, join(',', $a_uids), $from_mbox, $to_mbox);
     $moved = !($iil_move === false || $iil_move < 0);
-    
+
     // send expunge command in order to have the moved message
     // really deleted from the source mailbox
     if ($moved) {
@@ -1802,8 +1802,8 @@
       $this->_clear_messagecount($to_mbox);
     }
     // moving failed
-    else if (rcmail::get_instance()->config->get('delete_always', false)) {
-      return iil_C_Delete($this->conn, $from_mbox, join(',', $a_uids));
+    else if ($config->get('delete_always', false) && $tbox == $config->get('trash_mbox')) {
+      return $this->delete_message($a_uids, $fbox);
     }
 
     // remove message ids from search set

--
Gitblit v1.9.1