From fea9d0978ec61d2bef4dfad0a69c9bcb8b09f2f8 Mon Sep 17 00:00:00 2001 From: jfsimon Date: Fri, 13 Jul 2012 11:05:48 +0200 Subject: [PATCH 1/2] [Console] Added LG char escaping test. --- .../Console/Tests/Formatter/OutputFormatterTest.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/Symfony/Component/Console/Tests/Formatter/OutputFormatterTest.php b/src/Symfony/Component/Console/Tests/Formatter/OutputFormatterTest.php index e53f5f5850..6a5ffdaabd 100644 --- a/src/Symfony/Component/Console/Tests/Formatter/OutputFormatterTest.php +++ b/src/Symfony/Component/Console/Tests/Formatter/OutputFormatterTest.php @@ -9,6 +9,7 @@ * file that was distributed with this source code. */ + namespace Symfony\Component\Console\Tests\Formatter; use Symfony\Component\Console\Formatter\OutputFormatter; @@ -25,9 +26,15 @@ class FormatterStyleTest extends \PHPUnit_Framework_TestCase public function testLGCharEscaping() { $formatter = new OutputFormatter(true); + $this->assertEquals("fooformat('foo\\assertEquals("some info", $formatter->format('\\some info\\')); $this->assertEquals("\\some info\\", OutputFormatter::escape('some info')); + + $this->assertEquals( + "\033[33mSymfony\\Component\\Console does work very well!\033[0m", + $formatter->format('Symfony\Component\Console does work very well!') + ); } public function testBundledStyles() From 3fef3c2c9dfe71b0c9362ce46a0c980457732dbf Mon Sep 17 00:00:00 2001 From: jfsimon Date: Fri, 13 Jul 2012 11:05:56 +0200 Subject: [PATCH 2/2] [Console] Fixed output formatter regex. --- src/Symfony/Component/Console/Formatter/OutputFormatter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Component/Console/Formatter/OutputFormatter.php b/src/Symfony/Component/Console/Formatter/OutputFormatter.php index 3bec5f557e..e509ade565 100644 --- a/src/Symfony/Component/Console/Formatter/OutputFormatter.php +++ b/src/Symfony/Component/Console/Formatter/OutputFormatter.php @@ -23,7 +23,7 @@ class OutputFormatter implements OutputFormatterInterface /** * The pattern to phrase the format. */ - const FORMAT_PATTERN = '#(\\\\?)<(/?)([a-z][a-z0-9_=;-]+)?>([^\\\\<]*)#is'; + const FORMAT_PATTERN = '#(\\\\?)<(/?)([a-z][a-z0-9_=;-]+)?>((?:(?!\\\\?<).)*)#is'; private $decorated; private $styles = array();