svn: /pear/packages/Mail_Mime/trunk/ mime.php package.xml tests/test_Bug_13962.phpt

From: Date: Wed, 30 Dec 2009 12:22:31 +0000
Subject: svn: /pear/packages/Mail_Mime/trunk/ mime.php package.xml tests/test_Bug_13962.phpt
Groups: php.pear.cvs 
Request: Send a blank email to pear-cvs+get-58414@lists.php.net to get a copy of this message
alec Wed, 30 Dec 2009 12:22:31 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=292799 Log: - Implemented Feature #13962: Multiple header support - Code cleanup Bug: http://pear.php.net/bugs/13962 (unknown) Changed paths: U pear/packages/Mail_Mime/trunk/mime.php U pear/packages/Mail_Mime/trunk/package.xml A pear/packages/Mail_Mime/trunk/tests/test_Bug_13962.phpt Modified: pear/packages/Mail_Mime/trunk/mime.php =================================================================== --- pear/packages/Mail_Mime/trunk/mime.php 2009-12-30 12:21:18 UTC (rev 292798) +++ pear/packages/Mail_Mime/trunk/mime.php 2009-12-30 12:22:31 UTC (rev 292799) @@ -205,8 +205,9 @@ ); // Backward-compat. - if (is_string($params)) + if (is_string($params)) { $params = array('eof' => $params); + } if (!empty($params) && is_array($params)) { while (list($key, $value) = each($params)) { @@ -237,7 +238,8 @@ * @return void * @access public */ - function setHeadEncoding($head_encoding) { + function setHeadEncoding($head_encoding) + { $this->_build_params['head_encoding'] = $head_encoding; } @@ -250,7 +252,8 @@ * @return void * @access public */ - function setTextEncoding($text_encoding) { + function setTextEncoding($text_encoding) + { $this->_build_params['text_encoding'] = $text_encoding; } @@ -263,7 +266,8 @@ * @return void * @access public */ - function setHtmlEncoding($html_encoding) { + function setHtmlEncoding($html_encoding) + { $this->_build_params['html_encoding'] = $html_encoding; } @@ -275,7 +279,8 @@ * @return void * @access public */ - function setHtmlCharset($html_charset) { + function setHtmlCharset($html_charset) + { $this->_build_params['html_charset'] = $html_charset; } @@ -287,7 +292,8 @@ * @return void * @access public */ - function setTextCharset($text_charset) { + function setTextCharset($text_charset) + { $this->_build_params['text_charset'] = $text_charset; } @@ -299,7 +305,8 @@ * @return void * @access public */ - function setHeadCharset($head_charset) { + function setHeadCharset($head_charset) + { $this->_build_params['head_charset'] = $head_charset; } @@ -826,7 +833,7 @@ // * Content-Type: multipart/related; // * html // * image... - if (isset($this->_txtbody)) { + if (isset($this->_txtbody)) { $message =& $this->_addAlternativePart($null); $this->_addTextPart($message, $this->_txtbody); @@ -835,17 +842,17 @@ for ($i = 0; $i < count($this->_html_images); $i++) { $this->_addHtmlImagePart($ht, $this->_html_images[$i]); } - // * Content-Type: multipart/related; - // * html - // * image... } else { + // * Content-Type: multipart/related; + // * html + // * image... $message =& $this->_addRelatedPart($null); $this->_addHtmlPart($message); for ($i = 0; $i < count($this->_html_images); $i++) { $this->_addHtmlImagePart($message, $this->_html_images[$i]); } } -/* + /* // #13444, #9725: the code below was a non-RFC compliant hack // * Content-Type: multipart/related; // * Content-Type: multipart/alternative; @@ -863,7 +870,7 @@ for ($i = 0; $i < count($this->_html_images); $i++) { $this->_addHtmlImagePart($message, $this->_html_images[$i]); } -*/ + */ break; case $html AND $attachments AND !$html_images: @@ -959,7 +966,13 @@ $ret = ''; foreach ($headers as $key => $val) { - $ret .= "$key: $val" . MAIL_MIME_CRLF; + if (is_array($val)) { + foreach ($val as $value) { + $ret .= "$key: $value" . MAIL_MIME_CRLF; + } + } else { + $ret .= "$key: $val" . MAIL_MIME_CRLF; + } } return $ret; } @@ -1063,10 +1076,19 @@ } foreach ($input as $hdr_name => $hdr_value) { - $input[$hdr_name] = $this->encodeHeader( - $hdr_name, $hdr_value, - $build_params['head_charset'], $build_params['head_encoding'] - ); + if (is_array($hdr_value)) { + foreach ($hdr_value as $idx => $value) { + $input[$hdr_name][$idx] = $this->encodeHeader( + $hdr_name, $value, + $build_params['head_charset'], $build_params['head_encoding'] + ); + } + } else { + $input[$hdr_name] = $this->encodeHeader( + $hdr_name, $hdr_value, + $build_params['head_charset'], $build_params['head_encoding'] + ); + } } return $input; Modified: pear/packages/Mail_Mime/trunk/package.xml =================================================================== --- pear/packages/Mail_Mime/trunk/package.xml 2009-12-30 12:21:18 UTC (rev 292798) +++ pear/packages/Mail_Mime/trunk/package.xml 2009-12-30 12:22:31 UTC (rev 292799) @@ -44,6 +44,7 @@ Implemented Features: * Feature #10884: Provide easy way to set build params [alec] + * Feature #13962: Multiple header support [alec] </notes> <contents> <dir name="/"> @@ -73,6 +74,7 @@ <file baseinstalldir="Mail" name="test_Bug_10816_1.phpt" role="test" /> <file baseinstalldir="Mail" name="test_Bug_11731.phpt" role="test" /> <file baseinstalldir="Mail" name="test_Bug_13444.phpt" role="test" /> + <file baseinstalldir="Mail" name="test_Bug_13962.phpt" role="test" /> <file baseinstalldir="Mail" name="test_Bug_14779.phpt" role="test" /> <file baseinstalldir="Mail" name="test_Bug_15320.phpt" role="test" /> <file baseinstalldir="Mail" name="test_Bug_14529.phpt" role="test" /> Added: pear/packages/Mail_Mime/trunk/tests/test_Bug_13962.phpt =================================================================== --- pear/packages/Mail_Mime/trunk/tests/test_Bug_13962.phpt (rev 0) +++ pear/packages/Mail_Mime/trunk/tests/test_Bug_13962.phpt 2009-12-30 12:22:31 UTC (rev 292799) @@ -0,0 +1,21 @@ +--TEST-- +Bug #13962 Multiple header support +--SKIPIF-- +--FILE-- +<?php +error_reporting(E_ALL); // ignore E_STRICT +require_once('Mail.php'); +require_once('Mail/mime.php'); + +$mime = new Mail_mime(); + +$mime->setFrom('user@from.example.com'); +$r = $mime->txtHeaders(array('Received' => array('Received 1', 'Received 2'))); + +print_r($r); +?> +--EXPECT-- +MIME-Version: 1.0 +Received: Received 1 +Received: Received 2 +From: user@from.example.com

« previous php.pear.cvs (#58414) next »