Rewrote next_pos_minus_white() to fix correctness and efficiency
authorantipode <antipode@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Sun, 30 Dec 2001 15:35:23 +0000 (15:35 +0000)
committerantipode <antipode@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Sun, 30 Dec 2001 15:35:23 +0000 (15:35 +0000)
problems.  Rewrote comment for the function.

git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@2006 7612ce4b-ef26-0410-bec9-ea0150e637f0

functions/strings.php

index 00557ae498fbf1b8c789be19076fd725ef8054fe..a5c0abcc349c23d209a2bd68eef493cd7a2ff2ce 100644 (file)
@@ -66,18 +66,19 @@ function readMailboxParent($haystack, $needle) {
 }
 
 /**
- * Searches for the next position in a string minus white space.
+ * Returns the index of the first chunk of string $haystack that
+ * starts with non-white-space character, starting at position $pos.
+ * If there is no such chunk, returns -1.
  */
 function next_pos_minus_white ($haystack, $pos) {
-    while (substr($haystack, $pos, 1) == ' ' ||
-           substr($haystack, $pos, 1) == "\t" ||
-           substr($haystack, $pos, 1) == "\n" ||
-           substr($haystack, $pos, 1) == "\r") {
-        if ($pos >= strlen($haystack))
-            return -1;
-        $pos++;
-    }
-    return $pos;
+    $len = strlen($haystack);
+    for ( ; $pos < $len; $pos++ ) {
+        $char = substr($haystack, $pos, 1);
+        if ( $char != ' ' && $char != "\t" && $char != "\n" && $char != "\r" ) {
+            return $pos;
+        }
+    }
+    return -1;
 }
 
 /**