Browse Source

Fix html output formatter to work with latest symfony console

Jordi Boggiano 9 years ago
parent
commit
29dbc3835f

+ 1 - 1
src/Composer/Console/HtmlOutputFormatter.php

@@ -59,7 +59,7 @@ class HtmlOutputFormatter extends OutputFormatter
     {
         $formatted = parent::format($message);
 
-        return preg_replace_callback("{\033\[([0-9;]+)m(.*?)\033\[0m}s", array($this, 'formatHtml'), $formatted);
+        return preg_replace_callback("{\033\[([0-9;]+)m(.*?)\033\[(?:39|49|0|22|24|25|27|28)m}s", array($this, 'formatHtml'), $formatted);
     }
 
     private function formatHtml($matches)

+ 28 - 0
tests/Composer/Test/Console/HtmlOutputFormatterTest.php

@@ -0,0 +1,28 @@
+<?php
+
+/*
+ * This file is part of Composer.
+ *
+ * (c) Nils Adermann <naderman@naderman.de>
+ *     Jordi Boggiano <j.boggiano@seld.be>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Composer;
+
+use Composer\Console\HtmlOutputFormatter;
+
+class HtmlOutputFormatterTest extends \PHPUnit_Framework_TestCase
+{
+    public function testFormatting()
+    {
+        $formatter = new HtmlOutputFormatter;
+
+        return $this->assertEquals(
+            'Reading composer.json of <span style="color:green;">https://github.com/ccqgithub/sherry-php</span> (<span style="color:yellow;">master</span>)',
+            $formatter->format('Reading composer.json of <info>https://github.com/ccqgithub/sherry-php</info> (<comment>master</comment>)')
+        );
+    }
+}