- Returned sqimap_get_delimiter() to the old code, but left the new code
[squirrelmail.git] / functions / strings.php
index 3b1ea5a805d9ce8f5310a7335cb827da26e4c125..06057912cb8bb5fbdd2628dedc98c1bb00f7bed7 100644 (file)
@@ -6,29 +6,18 @@
    // Count the number of occurances of $needle are in $haystack.
    //*************************************************************************
    function countCharInString($haystack, $needle) {
-      $len = strlen($haystack);
-      for ($i = 0; $i < $len; $i++) {
-         if ($haystack[$i] == $needle)
-            $count++;
-      }
-      return $count;
+      $haystack = ereg_replace("[^$needle]","",$haystack);
+      return strlen($haystack);
    }
 
    //*************************************************************************
    // Read from the back of $haystack until $needle is found, or the begining
-   //    of the $haystack is reached.
+   //    of the $haystack is reached.  $needle is a single character
    //*************************************************************************
    function readShortMailboxName($haystack, $needle) {
-      if (substr($haystack, -1) == $needle)
-         $haystack = substr($haystack, 0, strlen($haystack) - 1);
-
-      if (strrpos($haystack, $needle)) {
-         $pos = strrpos($haystack, $needle) + 1;
-         $data = substr($haystack, $pos, strlen($haystack));
-      } else {
-         $data = $haystack;
-      }
-      return $data;
+      if ($needle == ".") $needle = "\.";
+      ereg("([^$needle]+)$needle?$", $haystack, $regs);
+      return $regs[1];
    }
 
    // Searches for the next position in a string minus white space
 
    /** Returns an array of email addresses **/
    function parseAddrs($text) {
-      if (trim($text) == "") {
+      if (trim($text) == "")
          return;
-      }
       $text = str_replace(" ", "", $text);
-      $text = ereg_replace( '"[^"]*"', "", $text);
+      $text = ereg_replace('"[^"]*"', "", $text);
+      $text = ereg_replace("\([^\)]*\)", "", $text);
       $text = str_replace(",", ";", $text);
       $array = explode(";", $text);
       for ($i = 0; $i < count ($array); $i++) {
          $line = charset_decode($charset, $line);
          $line = str_replace("\t", '        ', $line);
          
-         $line = str_replace(' ', '&nbsp;', $line);
+         // We need to do it twice to catch times where there
+         // are an odd number of spaces
+         $line = ereg_replace("^ ", "&nbsp;", $line);
+         $line = str_replace('  ', '&nbsp; ', $line);
+         $line = str_replace('  ', '&nbsp; ', $line);
          $line = nl2br($line);
 
          parseUrl ($line);
 
 
    function find_mailbox_name ($mailbox) {
+/*
       $mailbox = trim($mailbox);
       if (substr($mailbox, strlen($mailbox)-1, strlen($mailbox)) == "\"") {
          $mailbox = substr($mailbox, 0, strlen($mailbox) - 1);
          $box = substr($mailbox, strrpos($mailbox, " ")+1, strlen($mailbox));
       }
       return $box;
+*/      
+
+      if (ereg(" *\"([^\r\n\"]*)\"[ \r\n]*$", $mailbox, $regs))
+          return $regs[1];
+      ereg(" *([^ \r\n\"]*)[ \r\n]*$",$mailbox,$regs);
+      return $regs[1];
+
    }
 
    function replace_spaces ($string) {
           $host = $SERVER_NAME;
       }
       
-      // Workaround to possibly get rid of extra port definitions.
       $port = '';
       if (! strstr($host, ':'))
       {