We are not using objects here.
[squirrelmail.git] / functions / rfc822address.php
index 86b141ff8056b4aee0c788b295dc8c618dcc5d20..2a3e81657c84f354890443ed88136b87c2963553 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * rfc822address.php
  *
- * Copyright (c) 2004 The SquirrelMail Project Team
+ * Copyright (c) 2004-2005 The SquirrelMail Project Team
  * Licensed under the GNU GPL. For full terms see the file COPYING.
  *
  * Contains rfc822 email address function parsing functions.
  * @package squirrelmail
  */
 
-if (!defined('SQM_ADDR_PERSONAL')) define('SQM_ADDR_PERSONAL', 0);
-if (!defined('SQM_ADDR_ADLL'))     define('SQM_ADDR_ADL',      1);
-if (!defined('SQM_ADDR_MAILBOX'))  define('SQM_ADDR_MAILBOX',  2);
-if (!defined('SQM_ADDR_HOST'))     define('SQM_ADDR_HOST',     3);
 
 /**
  * parseRFC822Address: function for parsing RFC822 email address strings and store
  *               them in an address array
  *
- * @param string $address The email address string to parse
- * @param array  $aProps  associative array with properties
+ * @param string  $address The email address string to parse
+ * @param integer $iLimit stop on $iLimit parsed addresses
  * @public
  * @author Marc Groot Koerkamp
  *
  **/
-
-function parseRFC822Address($sAddress,$aProps) {
-//    $aPropsDefault = array (
-//                            'domain' => '',         //
-//                            'limit'  => 0,          // limits returned addresses
-//                            'abooklookup' => false); // callback function for addressbook lookup
-//
-//    $aProps = is_array($aProps) ? array_merge($aPropsDefault,$aProps) : $aPropsDefault;
-
-//    $cbLookup = $aProps['abooklookup'];
-//    $sDomain  = $aProps['domain'];
-    $iLimit   = $aProps['limit'];
+function parseRFC822Address($sAddress,$iLimit = 0) {
 
     $aTokens = _getAddressTokens($sAddress);
     $sPersonal = $sEmail = $sComment = $sGroup = '';
@@ -61,8 +46,8 @@ function parseRFC822Address($sAddress,$aProps) {
         case ';':
             if ($sGroup) {
                 $aAddress[] = _createAddressElement($aStack,$aComment,$sEmail);
-                $oAddr = end($aAddress);
-                if(!$oAddr || ((isset($oAddr)) && !$oAddr->mailbox && !$oAddr->personal)) {
+                $aAddr = end($aAddress);
+                if(!$aAddr || ((isset($aAddr)) && !$aAddr[SQM_ADDR_MAILBOX] && !$aAddr[SQM_ADDR_PERSONAL])) {
                     $sEmail = $sGroup . ':;';
                 }
                 $aAddress[] = _createAddressElement($aStack,$aComment,$sEmail);
@@ -92,6 +77,7 @@ function parseRFC822Address($sAddress,$aProps) {
     return $aAddress;
 }
 
+
 /**
  * Do the address array to string translation
  *
@@ -160,7 +146,7 @@ function getAddressString($aAddressList,$aProps) {
             $aNewAddressList[] = $s;
         }
     }
-    return explode($aProps['seperator'],$aNewAddressList);
+    return implode($aProps['separator'],$aNewAddressList);
 }
 
 
@@ -177,7 +163,7 @@ function getAddressString($aAddressList,$aProps) {
  * @return string
  * @public
  * @see parseRFC822Address
- * $see Rfc822Header
+ * @see Rfc822Header
  * @author Marc Groot Koerkamp
  *
  **/
@@ -299,7 +285,6 @@ function _createAddressElement(&$aStack,&$aComment,&$sEmail) {
 
 function _getAddressTokens($address) {
     $aTokens = array();
-    $aAddress = array();
     $aSpecials = array('(' ,'<' ,',' ,';' ,':');
     $aReplace =  array(' (',' <',' ,',' ;',' :');
     $address = str_replace($aSpecials,$aReplace,$address);