From 5c771cb25e62494cba263097175d9b718acb8aba Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Wed, 28 Jan 2009 05:52:02 -0500
Subject: [PATCH] - Fix MDNSent flag checking, use arbitrary keywords (asterisk) flag (#1485706)

---
 CHANGELOG                      |    4 ++++
 program/include/rcube_imap.php |    5 +++--
 program/steps/mail/func.inc    |    3 ++-
 program/steps/mail/show.inc    |    2 +-
 program/lib/imap.inc           |    5 ++++-
 5 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 5d5c532..e0e9473 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,10 @@
 CHANGELOG RoundCube Webmail
 ---------------------------
 
+2009/01/28 (alec)
+----------
+- Fix MDNSent flag checking, use arbitrary keywords (asterisk) flag (#1485706)
+
 2009/01/23 (alec)
 ----------
 - Fix creation of folders with '&' sign in name
diff --git a/program/include/rcube_imap.php b/program/include/rcube_imap.php
index 5b3267b..032489c 100644
--- a/program/include/rcube_imap.php
+++ b/program/include/rcube_imap.php
@@ -354,8 +354,9 @@
    */
   function check_permflag($flag)
     {
-    $flagsmap = $GLOBALS['IMAP_FLAGS'];
-    return (($imap_flag = $flagsmap[strtoupper($flag)]) && in_array_nocase($imap_flag, $this->conn->permanentflags));
+    $flag = strtoupper($flag);
+    $imap_flag = $GLOBALS['IMAP_FLAGS'][$flag];
+    return (in_array_nocase($imap_flag, $this->conn->permanentflags));
     }
 
 
diff --git a/program/lib/imap.inc b/program/lib/imap.inc
index cca499b..7fd4aee 100644
--- a/program/lib/imap.inc
+++ b/program/lib/imap.inc
@@ -78,6 +78,7 @@
 		- support multiquota result
 		- include BODYSTRUCTURE in iil_C_FetchHeaders()
 		- added iil_C_FetchMIMEHeaders() function
+		- added \* flag support 
 
 ********************************************************/
 
@@ -114,7 +115,9 @@
     'DRAFT'    => '\\Draft',
     'FLAGGED'  => '\\Flagged',
     'FORWARDED' => '$Forwarded',
-    'MDNSENT'  => '$MDNSent');
+    'MDNSENT'  => '$MDNSent',
+    '*'        => '\\*',
+);
 
 $iil_error;
 $iil_errornum;
diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc
index 06d9498..0ccc2cc 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -1296,7 +1296,8 @@
 
   $message = new rcube_message($uid);
   
-  if ($message->headers->mdn_to && !$message->headers->mdn_sent && $IMAP->check_permflag('MDNSENT'))
+  if ($message->headers->mdn_to && !$message->headers->mdn_sent &&
+    ($IMAP->check_permflag('MDNSENT') || $IMAP->check_permflag('*')))
   {
     $identity = $RCMAIL->user->get_identity();
     $sender = format_email_recipient($identity['email'], $identity['name']);
diff --git a/program/steps/mail/show.inc b/program/steps/mail/show.inc
index 091a7a1..7ae0ae0 100644
--- a/program/steps/mail/show.inc
+++ b/program/steps/mail/show.inc
@@ -91,7 +91,7 @@
   // check for unset disposition notification
   if ($MESSAGE->headers->mdn_to &&
       !$MESSAGE->headers->mdn_sent && !$MESSAGE->headers->seen &&
-      $IMAP->check_permflag('MDNSENT') &&
+      ($IMAP->check_permflag('MDNSENT') || $IMAP->check_permflag('*')) &&
       $mbox_name != $CONFIG['drafts_mbox'] &&
       $mbox_name != $CONFIG['sent_mbox'])
   {

--
Gitblit v1.9.1