From 92cd7f34b07e86062f2c024039e3309768b48ce6 Mon Sep 17 00:00:00 2001
From: Andy Wermke <andy@dev.next-step-software.com>
Date: Thu, 04 Apr 2013 10:10:23 -0400
Subject: [PATCH] Merge branch 'master' of https://github.com/roundcube/roundcubemail

---
 program/lib/Roundcube/rcube_result_set.php |   57 ++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 38 insertions(+), 19 deletions(-)

diff --git a/program/lib/Roundcube/rcube_result_set.php b/program/lib/Roundcube/rcube_result_set.php
index 456d1c9..a4b070e 100644
--- a/program/lib/Roundcube/rcube_result_set.php
+++ b/program/lib/Roundcube/rcube_result_set.php
@@ -2,10 +2,8 @@
 
 /*
  +-----------------------------------------------------------------------+
- | program/include/rcube_result_set.php                                  |
- |                                                                       |
  | 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.                |
@@ -13,28 +11,28 @@
  |                                                                       |
  | PURPOSE:                                                              |
  |   Class representing an address directory result set                  |
- |                                                                       |
  +-----------------------------------------------------------------------+
  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
  +-----------------------------------------------------------------------+
 */
 
-
 /**
- * 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)
     {
@@ -55,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)
@@ -69,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]);
+    }
+
 }

--
Gitblit v1.9.1