summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoralecpl <alec@alec.pl>2008-10-29 12:39:12 +0000
committeralecpl <alec@alec.pl>2008-10-29 12:39:12 +0000
commit8498dce502f9265278f7eb2b01ae4e65187a1a84 (patch)
treedc96a6e2aefe106fe105f1d1d19994f74f1ad1e0
parentfee8c6ceab0f66d83e5c62eae44ee7c624847972 (diff)
- Fix problem with numeric folder names (#1485527)
-rw-r--r--CHANGELOG4
-rw-r--r--program/include/rcube_imap.php8
-rw-r--r--program/include/rcube_shared.inc2
3 files changed, 10 insertions, 4 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 6c1d90e9c..cbf94dbf3 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 e18c14c2e..7a8b00c1c 100644
--- a/program/include/rcube_imap.php
+++ b/program/include/rcube_imap.php
@@ -2669,13 +2669,15 @@ class rcube_imap
// 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 26de5b45c..9f8bc4f04 100644
--- a/program/include/rcube_shared.inc
+++ b/program/include/rcube_shared.inc
@@ -179,7 +179,7 @@ function json_serialize($var)
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';