alecpl
2010-11-05 cb105aa9f12396d1644e87d91c35e8f5c3eefbbd
program/include/rcube_imap_generic.php
@@ -455,7 +455,7 @@
                // send result
                $this->putLine($reply);
                $line = $this->readLine(1024);
                if ($line[0] == '+') {
                 $challenge = substr($line, 2);
                }
@@ -643,7 +643,7 @@
        if (array_key_exists('namespace', $this->prefs)) {
            return $this->prefs['namespace'];
        }
        if (!$this->getCapability('NAMESPACE')) {
           return self::ERROR_BAD;
       }
@@ -1274,7 +1274,7 @@
           return    null;
       }
       if (!$this->select($folder)) {
       if (!$this->select($mailbox)) {
            return null;
        }
@@ -1324,7 +1324,7 @@
          return false;
       }
       do {
          $line = $this->readLine(1024);
          $line = $this->readLine(4096);
          $line = $this->multLine($line);
            if (!$line)
@@ -1565,17 +1565,15 @@
       if ($field == 'date' || $field == 'internaldate') {
           $field = 'timestamp';
       }
       if (empty($flag)) {
           $flag = 'ASC';
       } else {
           $flag = strtoupper($flag);
        }
       $stripArr = ($field=='subject') ? array('Re: ','Fwd: ','Fw: ','"') : array('"');
       $c = count($a);
       if ($c > 0) {
         // Strategy:
         // First, we'll create an "index" array.
         // Then, we'll use sort() on that array,
@@ -1593,14 +1591,17 @@
             } else {
                $data = $val->$field;
                if (is_string($data)) {
                   $data = strtoupper(str_replace($stripArr, '', $data));
                    $data = str_replace('"', '', $data);
                       if ($field == 'subject') {
                        $data = preg_replace('/^(Re: \s*|Fwd:\s*|Fw:\s*)+/i', '', $data);
                        }
                   $data = strtoupper($data);
                  }
             }
             $index[$key]=$data;
             $index[$key] = $data;
          }
          // sort index
          $i = 0;
          if ($flag == 'ASC') {
             asort($index);
          } else {
@@ -1611,8 +1612,7 @@
          $result = array();
          reset($index);
          while (list($key, $val) = each($index)) {
             $result[$key]=$a[$key];
             $i++;
             $result[$key] = $a[$key];
          }
       }
@@ -1762,16 +1762,16 @@
       return $node;
    }
    function thread($folder, $algorithm='REFERENCES', $criteria='', $encoding='US-ASCII')
    function thread($mailbox, $algorithm='REFERENCES', $criteria='', $encoding='US-ASCII')
    {
        $old_sel = $this->selected;
       if (!$this->select($folder)) {
       if (!$this->select($mailbox)) {
          return false;
       }
        // return empty result when folder is empty and we're just after SELECT
        if ($old_sel != $folder && !$this->data['EXISTS']) {
        if ($old_sel != $mailbox && !$this->data['EXISTS']) {
            return array(array(), array(), array());
       }
@@ -1973,32 +1973,32 @@
                $cmd = strtoupper($this->tokenizeResponse($response, 1));
                // * LIST (<options>) <delimiter> <mailbox>
                if (!$lstatus || $cmd == 'LIST' || $cmd == 'LSUB') {
                    list($opts, $delim, $folder) = $this->tokenizeResponse($response, 3);
                    list($opts, $delim, $mailbox) = $this->tokenizeResponse($response, 3);
                    // Add to result array
                    if (!$lstatus) {
                        $folders[] = $folder;
                        $folders[] = $mailbox;
                    }
                    else {
                        $folders[$folder] = array();
                        $folders[$mailbox] = array();
                    }
                    // Add to options array
                    if (!empty($opts)) {
                        if (empty($this->data['LIST'][$folder]))
                            $this->data['LIST'][$folder] = $opts;
                        if (empty($this->data['LIST'][$mailbox]))
                            $this->data['LIST'][$mailbox] = $opts;
                        else
                            $this->data['LIST'][$folder] = array_unique(array_merge(
                                $this->data['LIST'][$folder], $opts));
                            $this->data['LIST'][$mailbox] = array_unique(array_merge(
                                $this->data['LIST'][$mailbox], $opts));
                    }
                }
                // * STATUS <mailbox> (<result>)
                else if ($cmd == 'STATUS') {
                    list($folder, $status) = $this->tokenizeResponse($response, 2);
                    list($mailbox, $status) = $this->tokenizeResponse($response, 2);
                    for ($i=0, $len=count($status); $i<$len; $i += 2) {
                        list($name, $value) = $this->tokenizeResponse($status, 2);
                        $folders[$folder][$name] = $value;
                        $folders[$mailbox][$name] = $value;
                    }
                }
          }
@@ -2210,9 +2210,9 @@
       return false;
    }
    function createFolder($folder)
    function createFolder($mailbox)
    {
        $result = $this->execute('CREATE', array($this->escape($folder)),
        $result = $this->execute('CREATE', array($this->escape($mailbox)),
           self::COMMAND_NORESPONSE);
       return ($result == self::ERROR_OK);
@@ -2226,42 +2226,42 @@
      return ($result == self::ERROR_OK);
    }
    function deleteFolder($folder)
    function deleteFolder($mailbox)
    {
        $result = $this->execute('DELETE', array($this->escape($folder)),
        $result = $this->execute('DELETE', array($this->escape($mailbox)),
           self::COMMAND_NORESPONSE);
       return ($result == self::ERROR_OK);
    }
    function clearFolder($folder)
    function clearFolder($mailbox)
    {
       $num_in_trash = $this->countMessages($folder);
       $num_in_trash = $this->countMessages($mailbox);
       if ($num_in_trash > 0) {
          $this->delete($folder, '1:*');
          $this->delete($mailbox, '1:*');
       }
       return ($this->expunge($folder) >= 0);
       return ($this->expunge($mailbox) >= 0);
    }
    function subscribe($folder)
    function subscribe($mailbox)
    {
       $result = $this->execute('SUBSCRIBE', array($this->escape($folder)),
       $result = $this->execute('SUBSCRIBE', array($this->escape($mailbox)),
           self::COMMAND_NORESPONSE);
       return ($result == self::ERROR_OK);
    }
    function unsubscribe($folder)
    function unsubscribe($mailbox)
    {
       $result = $this->execute('UNSUBSCRIBE', array($this->escape($folder)),
       $result = $this->execute('UNSUBSCRIBE', array($this->escape($mailbox)),
           self::COMMAND_NORESPONSE);
       return ($result == self::ERROR_OK);
    }
    function append($folder, &$message)
    function append($mailbox, &$message)
    {
       if (!$folder) {
       if (!$mailbox) {
          return false;
       }
@@ -2274,7 +2274,7 @@
       }
        $key = $this->next_tag();
       $request = sprintf("$key APPEND %s (\\Seen) {%d%s}", $this->escape($folder),
       $request = sprintf("$key APPEND %s (\\Seen) {%d%s}", $this->escape($mailbox),
            $len, ($this->prefs['literal+'] ? '+' : ''));
       if ($this->putLine($request)) {
@@ -2297,7 +2297,7 @@
          } while (!$this->startsWith($line, $key, true, true));
            // Clear internal status cache
            unset($this->data['STATUS:'.$folder]);
            unset($this->data['STATUS:'.$mailbox]);
          return ($this->parseResult($line, 'APPEND: ') == self::ERROR_OK);
       }
@@ -2308,9 +2308,9 @@
       return false;
    }
    function appendFromFile($folder, $path, $headers=null)
    function appendFromFile($mailbox, $path, $headers=null)
    {
       if (!$folder) {
       if (!$mailbox) {
           return false;
       }
@@ -2338,7 +2338,7 @@
       // send APPEND command
       $key = $this->next_tag();
       $request = sprintf("$key APPEND %s (\\Seen) {%d%s}", $this->escape($folder),
       $request = sprintf("$key APPEND %s (\\Seen) {%d%s}", $this->escape($mailbox),
            $len, ($this->prefs['literal+'] ? '+' : ''));
       if ($this->putLine($request)) {
@@ -2374,7 +2374,7 @@
          } while (!$this->startsWith($line, $key, true, true));
            // Clear internal status cache
            unset($this->data['STATUS:'.$folder]);
            unset($this->data['STATUS:'.$mailbox]);
          return ($this->parseResult($line, 'APPEND: ') == self::ERROR_OK);
       }
@@ -2385,9 +2385,9 @@
       return false;
    }
    function fetchStructureString($folder, $id, $is_uid=false)
    function fetchStructureString($mailbox, $id, $is_uid=false)
    {
       if (!$this->select($folder)) {
       if (!$this->select($mailbox)) {
            return false;
        }