Improvements in creating flag form IDs.
authorMichael M Slusarz <slusarz@curecanti.org>
Tue, 25 Aug 2009 17:00:34 +0000 (11:00 -0600)
committerMichael M Slusarz <slusarz@curecanti.org>
Tue, 25 Aug 2009 17:08:25 +0000 (11:08 -0600)
When dealing with negative set flags, add a slash to distinguish
from user-defined flags that begin with 0.

imp/lib/Imap/Flags.php
imp/mailbox.php
imp/message.php

index 0e5f1dc..4add4d6 100644 (file)
@@ -368,7 +368,7 @@ class IMP_Imap_Flags
             $act2 = ($act1 == 'set') ? 'unset' : 'set';
 
             $ret[$act1][] = $tmp;
-            $tmp['f'] = '0' . $val['flag'];
+            $tmp['f'] = '0\\' . $val['flag'];
             $ret[$act2][] = $tmp;
         }
 
index feca691..9dfbeee 100644 (file)
@@ -168,8 +168,8 @@ case 'flag_messages':
     $flag = Horde_Util::getPost('flag');
     if ($flag && !empty($indices)) {
         $set = true;
-        if ($flag[0] == '0') {
-            $flag = substr($flag, 1);
+        if (strpos($flag, '0\\') === 0) {
+            $flag = substr($flag, 2);
             $set = false;
         }
         $imp_message = IMP_Message::singleton();
index c7750bb..a998e27 100644 (file)
@@ -144,8 +144,8 @@ case 'flag_message':
     $flag = Horde_Util::getFormData('flag');
     if ($flag && !empty($indices_array)) {
         $peek = $set = true;
-        if ($flag[0] == '0') {
-            $flag = substr($flag, 1);
+        if (strpos($flag, '0\\') === 0) {
+            $flag = substr($flag, 2);
             $set = false;
         }
         $imp_message->flag(array($flag), $indices_array, $set);