From 3508bebb8e5045a27f12c57d8d346d72b950a969 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Thu, 11 Oct 2012 02:50:17 -0400
Subject: [PATCH] Fix threaded list sorting on PHP < 5.2.9 (#1488748)

---
 CHANGELOG                               |    1 +
 program/include/rcube_result_thread.php |   10 ++++++----
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index ddee596..f37d5af 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,6 +2,7 @@
 ===========================
 
 - Fix Warning: htmlspecialchars(): charset `RCMAIL_CHARSET' not supported warning in Installer (#1488744)
+- Fix threaded list sorting on PHP < 5.2.9 (#1488748)
 
 RELEASE 0.8.2
 -------------
diff --git a/program/include/rcube_result_thread.php b/program/include/rcube_result_thread.php
index f8b0872..b939f67 100644
--- a/program/include/rcube_result_thread.php
+++ b/program/include/rcube_result_thread.php
@@ -478,16 +478,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);

--
Gitblit v1.9.1