From 3dd136f26e36d0f453649e77300b408cfa8491e4 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Fri, 01 Feb 2013 14:04:33 -0500
Subject: [PATCH] Merge branch 'master' of github.com:roundcube/roundcubemail

---
 program/lib/Roundcube/rcube.php            |    7 ++-
 bin/jsshrink.sh                            |    2 
 bin/jsunshrink.sh                          |    2 
 skins/classic/common.css                   |    5 ++
 skins/larry/styles.css                     |    4 ++
 program/lib/Roundcube/rcube_result_set.php |   53 +++++++++++++++++++-------
 6 files changed, 54 insertions(+), 19 deletions(-)

diff --git a/bin/jsshrink.sh b/bin/jsshrink.sh
index 1d77ff3..c79f904 100755
--- a/bin/jsshrink.sh
+++ b/bin/jsshrink.sh
@@ -56,7 +56,7 @@
 fi
 
 # default: compress application scripts
-for fn in app common googiespell list; do
+for fn in app common googiespell list treelist; do
 	if [ -r "$JS_DIR/${fn}.js.src" ]; then
 		echo "$JS_DIR/${fn}.js.src already exists, not overwriting"
 	else
diff --git a/bin/jsunshrink.sh b/bin/jsunshrink.sh
index 9d77550..ef1bb47 100755
--- a/bin/jsunshrink.sh
+++ b/bin/jsunshrink.sh
@@ -6,7 +6,7 @@
 	exit 1
 fi
 
-for fn in app common googiespell list; do
+for fn in app common googiespell list treelist; do
 	if [ -r "$JS_DIR/${fn}.js.src" ]; then
 		mv "$JS_DIR/${fn}.js.src" "$JS_DIR/${fn}.js"
 		echo "Reverted $JS_DIR/${fn}.js"
diff --git a/program/lib/Roundcube/rcube.php b/program/lib/Roundcube/rcube.php
index a914ae6..3ae511e 100644
--- a/program/lib/Roundcube/rcube.php
+++ b/program/lib/Roundcube/rcube.php
@@ -1073,14 +1073,17 @@
     {
         // handle PHP exceptions
         if (is_object($arg) && is_a($arg, 'Exception')) {
-            $err = array(
+            $arg = array(
                 'type' => 'php',
                 'code' => $arg->getCode(),
                 'line' => $arg->getLine(),
                 'file' => $arg->getFile(),
                 'message' => $arg->getMessage(),
             );
-            $arg = $err;
+        }
+
+        if (empty($arg['code'])) {
+            $arg['code'] = 500;
         }
 
         // installer
diff --git a/program/lib/Roundcube/rcube_result_set.php b/program/lib/Roundcube/rcube_result_set.php
index 1391e5e..a4b070e 100644
--- a/program/lib/Roundcube/rcube_result_set.php
+++ b/program/lib/Roundcube/rcube_result_set.php
@@ -3,7 +3,7 @@
 /*
  +-----------------------------------------------------------------------+
  | This file is part of the Roundcube Webmail client                     |
- | Copyright (C) 2006-2011, The Roundcube Dev Team                       |
+ | Copyright (C) 2006-2013, The Roundcube Dev Team                       |
  |                                                                       |
  | Licensed under the GNU General Public License version 3 or            |
  | any later version with exceptions for skins & plugins.                |
@@ -17,20 +17,22 @@
 */
 
 /**
- * Roundcube result set class.
+ * Roundcube result set class
+ *
  * Representing an address directory result set.
+ * Implenets Iterator and thus be used in foreach() loops.
  *
  * @package    Framework
  * @subpackage Addressbook
  */
-class rcube_result_set
+class rcube_result_set implements Iterator
 {
-    var $count = 0;
-    var $first = 0;
-    var $current = 0;
-    var $searchonly = false;
-    var $records = array();
+    public $count = 0;
+    public $first = 0;
+    public $searchonly = false;
+    public $records = array();
 
+    private $current = 0;
 
     function __construct($c=0, $f=0)
     {
@@ -51,13 +53,7 @@
     function first()
     {
         $this->current = 0;
-        return $this->records[$this->current++];
-    }
-
-    // alias for iterate()
-    function next()
-    {
-        return $this->iterate();
+        return $this->records[$this->current];
     }
 
     function seek($i)
@@ -65,4 +61,31 @@
         $this->current = $i;
     }
 
+    /***  PHP 5 Iterator interface  ***/
+
+    function rewind()
+    {
+        $this->current = 0;
+    }
+
+    function current()
+    {
+        return $this->records[$this->current];
+    }
+
+    function key()
+    {
+        return $this->current;
+    }
+
+    function next()
+    {
+        return $this->iterate();
+    }
+
+    function valid()
+    {
+        return isset($this->records[$this->current]);
+    }
+
 }
diff --git a/skins/classic/common.css b/skins/classic/common.css
index 16edeed..1216167 100644
--- a/skins/classic/common.css
+++ b/skins/classic/common.css
@@ -622,6 +622,11 @@
   background-color: #929292;
 }
 
+ul.treelist li
+{
+  position: relative;
+}
+
 ul.treelist li div.treetoggle
 {
   position: absolute;
diff --git a/skins/larry/styles.css b/skins/larry/styles.css
index 7458ebb..613a08a 100644
--- a/skins/larry/styles.css
+++ b/skins/larry/styles.css
@@ -1006,6 +1006,10 @@
 	vertical-align: top;
 }
 
+ul.treelist li {
+	position: relative;
+}
+
 ul.treelist li div.treetoggle {
 	position: absolute;
 	top: 13px;

--
Gitblit v1.9.1