9 * @author Greg Beaver <cellog@php.net>
10 * @copyright 1997-2009 The Authors
11 * @license http://opensource.org/licenses/bsd-license.php New BSD License
12 * @version CVS: $Id: Windowseol.php 313023 2011-07-06 19:17:11Z dufuz $
13 * @link http://pear.php.net/package/PEAR
14 * @since File available since Release 1.4.0a1
19 require_once 'PEAR/Task/Common.php';
21 * Implements the windows line endsings file task.
24 * @author Greg Beaver <cellog@php.net>
25 * @copyright 1997-2009 The Authors
26 * @license http://opensource.org/licenses/bsd-license.php New BSD License
27 * @version Release: 1.9.4
28 * @link http://pear.php.net/package/PEAR
29 * @since Class available since Release 1.4.0a1
31 class PEAR_Task_Windowseol extends PEAR_Task_Common
34 var $phase = PEAR_TASK_PACKAGE;
38 * Validate the raw xml at parsing-time.
39 * @param PEAR_PackageFile_v2
40 * @param array raw, parsed xml
44 function validateXml($pkg, $xml, $config, $fileXml)
47 return array(PEAR_TASK_ERROR_INVALID, 'no attributes allowed');
53 * Initialize a task instance with the parameters
54 * @param array raw, parsed xml
57 function init($xml, $attribs)
62 * Replace all line endings with windows line endings
64 * See validateXml() source for the complete list of allowed fields
65 * @param PEAR_PackageFile_v1|PEAR_PackageFile_v2
66 * @param string file contents
67 * @param string the eventual final file location (informational only)
68 * @return string|false|PEAR_Error false to skip this file, PEAR_Error to fail
69 * (use $this->throwError), otherwise return the new contents
71 function startSession($pkg, $contents, $dest)
73 $this->logger->log(3, "replacing all line endings with \\r\\n in $dest");
74 return preg_replace("/\r\n|\n\r|\r|\n/", "\r\n", $contents);