diff --git a/SensioLabs/AnsiConverter/AnsiToHtmlConverter.php b/SensioLabs/AnsiConverter/AnsiToHtmlConverter.php index fdaa5f6..73f8a69 100644 --- a/SensioLabs/AnsiConverter/AnsiToHtmlConverter.php +++ b/SensioLabs/AnsiConverter/AnsiToHtmlConverter.php @@ -47,6 +47,7 @@ public function convert($text) $text = htmlspecialchars($text, PHP_VERSION_ID >= 50400 ? ENT_QUOTES | ENT_SUBSTITUTE : ENT_QUOTES, $this->charset); // carriage return + $text = preg_replace('#\r+#m', "\r", $text); $text = preg_replace('#^.*\r(?!\n)#m', '', $text); $tokens = $this->tokenize($text); diff --git a/SensioLabs/AnsiConverter/Tests/AnsiToHtmlConverterTest.php b/SensioLabs/AnsiConverter/Tests/AnsiToHtmlConverterTest.php index 61a3313..074dbba 100644 --- a/SensioLabs/AnsiConverter/Tests/AnsiToHtmlConverterTest.php +++ b/SensioLabs/AnsiConverter/Tests/AnsiToHtmlConverterTest.php @@ -47,6 +47,7 @@ public function getConvertData() array('foo', "\e[31;41;1mfoo\e[0m"), // carriage returns + array('foobar\r\nbar', "foo\r\r\nbar"), array('foobar', "foo\rbar\rfoobar"), // underline