Aleksander Machniak
2012-10-24 1e7aa75d18e34b0733d49a3af689be0f3d73b83c
program/include/rcube_result_thread.php
@@ -19,9 +19,6 @@
 | Author: Thomas Bruederli <roundcube@gmail.com>                        |
 | Author: Aleksander Machniak <alec@alec.pl>                            |
 +-----------------------------------------------------------------------+
 $Id$
*/
@@ -64,6 +61,8 @@
        // ...skip unilateral untagged server responses
        for ($i=0, $len=count($data); $i<$len; $i++) {
            if (preg_match('/^ THREAD/i', $data[$i])) {
                // valid response, initialize raw_data for is_error()
                $this->raw_data = '';
                $data[$i] = substr($data[$i], 7);
                break;
            }
@@ -476,16 +475,18 @@
            $items = explode(self::SEPARATOR_ITEM, $elem);
            $root  = (int) array_shift($items);
            $result[$elem] = $elem;
            foreach ($items as $item) {
                list($lv, $id) = explode(self::SEPARATOR_LEVEL, $item);
            if ($root) {
                $result[$root] = $root;
                foreach ($items as $item) {
                    list($lv, $id) = explode(self::SEPARATOR_LEVEL, $item);
                    $result[$id] = $root;
                }
            }
        }
        // get only unique roots
        $result = array_filter($result); // make sure there are no nulls
        $result = array_unique($result, SORT_NUMERIC);
        $result = array_unique($result);
        // Re-sort raw data
        $result = array_fill_keys($result, null);