Browse Source

Merge pull request #2945 from fabpot/classmap-hotfix

fixed class map generator when using a heredoc with spaces
Jordi Boggiano 11 years ago
parent
commit
29c39cc266

+ 1 - 1
src/Composer/Autoload/ClassMapGenerator.php

@@ -119,7 +119,7 @@ class ClassMapGenerator
         }
 
         // strip heredocs/nowdocs
-        $contents = preg_replace('{<<<\'?(\w+)\'?(?:\r\n|\n|\r)(?:.*?)(?:\r\n|\n|\r)\\1(?=\r\n|\n|\r|;)}s', 'null', $contents);
+        $contents = preg_replace('{<<<\s*(\'?)(\w+)\\1(?:\r\n|\n|\r)(?:.*?)(?:\r\n|\n|\r)\\2(?=\r\n|\n|\r|;)}s', 'null', $contents);
         // strip strings
         $contents = preg_replace('{"[^"\\\\]*(\\\\.[^"\\\\]*)*"|\'[^\'\\\\]*(\\\\.[^\'\\\\]*)*\'}s', 'null', $contents);
         // strip leading non-php code if needed

+ 20 - 2
tests/Composer/Test/Autoload/Fixtures/classmap/StripNoise.php

@@ -15,12 +15,30 @@ class Fail2
 
 }
 A
-. <<<'TEST'
+. <<<  AB
 class Fail3
 {
 
 }
-TEST;
+AB
+. <<<'TEST'
+class Fail4
+{
+
+}
+TEST
+. <<< 'ANOTHER'
+class Fail5
+{
+
+}
+ANOTHER
+. <<<	'ONEMORE'
+class Fail6
+{
+
+}
+ONEMORE;
     }
 
     public function test2()