Procházet zdrojové kódy

Allow whitespace in pragma tags.

Justin Hileman před 15 roky
rodič
revize
37cf2706a9
2 změnil soubory, kde provedl 3 přidání a 1 odebrání
  1. 1 1
      Mustache.php
  2. 2 0
      test/MustachePragmaTest.php

+ 1 - 1
Mustache.php

@@ -199,7 +199,7 @@ class Mustache {
 
 		$otag = $this->prepareRegEx($this->otag);
 		$ctag = $this->prepareRegEx($this->ctag);
-		$regex = '/' . $otag . '%([\\w_-]+)((?: [\\w]+=[\\w]+)*)' . $ctag . '\\n?/';
+		$regex = '/' . $otag . '%\\s*([\\w_-]+)((?: [\\w]+=[\\w]+)*)\\s*' . $ctag . '\\n?/';
 		return preg_replace_callback($regex, array($this, 'renderPragma'), $template);
 	}
 

+ 2 - 0
test/MustachePragmaTest.php

@@ -25,6 +25,8 @@ class MustachePragmaTest extends PHPUnit_Framework_TestCase {
 
 	public function testPragmaReplaceMultiple() {
 		$m = new Mustache();
+		$this->assertEquals('', $m->render('{{%  DOT-NOTATION  }}'), 'Pragmas should allow whitespace');
+		$this->assertEquals('', $m->render('{{% 	DOT-NOTATION 	foo=bar  }}'), 'Pragmas should allow whitespace');
 		$this->assertEquals($m->render("{{%DOT-NOTATION}}\n{{%DOT-NOTATION}}"), '', 'Multiple pragma tags not removed');
 		$this->assertEquals($m->render('{{%DOT-NOTATION}} {{%DOT-NOTATION}}'), ' ', 'Multiple pragma tags not removed');
 	}