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