From 8498dce502f9265278f7eb2b01ae4e65187a1a84 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Wed, 29 Oct 2008 08:39:12 -0400
Subject: [PATCH] - Fix problem with numeric folder names (#1485527)

---
 CHANGELOG                        |    4 ++++
 program/include/rcube_shared.inc |    2 +-
 program/include/rcube_imap.php   |    8 +++++---
 3 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 6c1d90e..cbf94db 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,10 @@
 CHANGELOG RoundCube Webmail
 ---------------------------
 
+2008/10/29 (alec)
+----------
+- Fix problem with numeric folder names (#1485527)
+
 2008/10/27 (alec)
 ----------
 - Fix unread message unintentionally marked as read if read_when_deleted=true (#1485409)
diff --git a/program/include/rcube_imap.php b/program/include/rcube_imap.php
index e18c14c..7a8b00c 100644
--- a/program/include/rcube_imap.php
+++ b/program/include/rcube_imap.php
@@ -2669,13 +2669,15 @@
     // finally we must rebuild the list to move 
     // subfolders of default folders to their place...
     // ...also do this for the rest of folders because
-    // asort() is not properly sorting case sensitive names	
+    // asort() is not properly sorting case sensitive names
+
+    // set the type of folder name variable (#1485527) 
     while (list($key, $folder) = each($folders)) {
-      $a_out[] = $folder;
+      $a_out[] = (string) $folder;
       unset($folders[$key]);
       foreach ($folders as $idx => $f) {
 	if (strpos($f, $folder.$delimiter) === 0) {
-    	  $a_out[] = $f;
+    	  $a_out[] = (string) $f;
 	  unset($folders[$idx]);
 	  }
         }
diff --git a/program/include/rcube_shared.inc b/program/include/rcube_shared.inc
index 26de5b4..9f8bc4f 100644
--- a/program/include/rcube_shared.inc
+++ b/program/include/rcube_shared.inc
@@ -179,7 +179,7 @@
       return $brackets{0} . implode(',', $pairs) . $brackets{1};
     }
   }
-  else if (is_numeric($var) && strval(intval($var)) === strval($var))
+  else if (!is_string($var) && strval(intval($var)) === strval($var))
     return $var;
   else if (is_bool($var))
     return $var ? '1' : '0';

--
Gitblit v1.9.1