Happy New Year
[squirrelmail.git] / functions / rfc822address.php
index f08ee1e84c27617a7debfbae50a77b0a8b37c1d9..0ebd8f6184a521f73a3694bf747183b5f03cad6e 100644 (file)
@@ -1,47 +1,28 @@
 <?php
+
 /**
  * rfc822address.php
  *
- * Copyright (c) 2004 The SquirrelMail Project Team
- * Licensed under the GNU GPL. For full terms see the file COPYING.
- *
  * Contains rfc822 email address function parsing functions.
  *
- *
+ * @copyright 2004-2020 The SquirrelMail Project Team
+ * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  * @version $Id$
  * @package squirrelmail
  */
 
-/**
- * Undocumented defines
- */
-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 = '';
@@ -64,8 +45,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);
@@ -95,6 +76,7 @@ function parseRFC822Address($sAddress,$aProps) {
     return $aAddress;
 }
 
+
 /**
  * Do the address array to string translation
  *
@@ -108,7 +90,7 @@ function parseRFC822Address($sAddress,$aProps) {
  **/
 function getAddressString($aAddressList,$aProps) {
     $aPropsDefault = array (
-                            'separator' => ',',     // address separator
+                            'separator' => ', ',     // address separator
                             'limit'  => 0,          // limits returned addresses
                             'personal' => true,     // show persnal part
                             'email'    => true,     // show email part
@@ -163,7 +145,7 @@ function getAddressString($aAddressList,$aProps) {
             $aNewAddressList[] = $s;
         }
     }
-    return explode($aProps['seperator'],$aNewAddressList);
+    return implode($aProps['separator'],$aNewAddressList);
 }
 
 
@@ -180,7 +162,7 @@ function getAddressString($aAddressList,$aProps) {
  * @return string
  * @public
  * @see parseRFC822Address
- * $see Rfc822Header
+ * @see Rfc822Header
  * @author Marc Groot Koerkamp
  *
  **/
@@ -302,7 +284,6 @@ function _createAddressElement(&$aStack,&$aComment,&$sEmail) {
 
 function _getAddressTokens($address) {
     $aTokens = array();
-    $aAddress = array();
     $aSpecials = array('(' ,'<' ,',' ,';' ,':');
     $aReplace =  array(' (',' <',' ,',' ;',' :');
     $address = str_replace($aSpecials,$aReplace,$address);
@@ -425,4 +406,3 @@ function _getAddressTokens($address) {
     }
     return $aTokens;
 }
-?>
\ No newline at end of file