From d37471cb292394d39d169725ad07bfa13b8100b1 Mon Sep 17 00:00:00 2001 From: Michiel Rook Date: Fri, 1 Jan 2016 17:53:57 +0100 Subject: [PATCH] Fixes #1046 - change preg delimiter --- classes/phing/filters/ReplaceTokensWithFile.php | 2 +- .../phing/filters/ReplaceTokensWithFileTest.php | 12 ++++++++++++ test/etc/filters/ReplaceTokensWithFile/build.xml | 12 ++++++++++++ .../etc/filters/ReplaceTokensWithFile/properties.ini | 1 + 4 files changed, 26 insertions(+), 1 deletion(-) diff --git a/classes/phing/filters/ReplaceTokensWithFile.php b/classes/phing/filters/ReplaceTokensWithFile.php index e685181368..2ce2fe6389 100644 --- a/classes/phing/filters/ReplaceTokensWithFile.php +++ b/classes/phing/filters/ReplaceTokensWithFile.php @@ -312,7 +312,7 @@ public function read($len = null) // filter buffer $buffer = preg_replace_callback( - "/" . preg_quote($this->_beginToken) . "([\w\.\-:\/]+?)" . preg_quote($this->_endToken) . "/", + "$" . preg_quote($this->_beginToken) . "([\w\.\-:\/]+?)" . preg_quote($this->_endToken) . "$", array($this, 'replaceTokenCallback'), $buffer ); diff --git a/test/classes/phing/filters/ReplaceTokensWithFileTest.php b/test/classes/phing/filters/ReplaceTokensWithFileTest.php index cac4666c3b..105fee83b9 100644 --- a/test/classes/phing/filters/ReplaceTokensWithFileTest.php +++ b/test/classes/phing/filters/ReplaceTokensWithFileTest.php @@ -44,4 +44,16 @@ public function testPostfix() '[filter:ReplaceTokensWithFile] Replaced "#!testReplace##" with content from file "testReplace.tpl"' ); } + + /** + * Inspired by ticket #1046 - http://www.phing.info/trac/ticket/1046 + */ + public function testSlashInToken() + { + $this->executeTarget(__FUNCTION__); + + $this->assertInLogs( + '[filter:ReplaceTokensWithFile] Replaced "//#file:testReplace:endfile#" with content from file "testReplace.tpl"' + ); + } } diff --git a/test/etc/filters/ReplaceTokensWithFile/build.xml b/test/etc/filters/ReplaceTokensWithFile/build.xml index 75bff18c79..8bff707f7e 100644 --- a/test/etc/filters/ReplaceTokensWithFile/build.xml +++ b/test/etc/filters/ReplaceTokensWithFile/build.xml @@ -10,4 +10,16 @@ + + + + + + + + + + \ No newline at end of file diff --git a/test/etc/filters/ReplaceTokensWithFile/properties.ini b/test/etc/filters/ReplaceTokensWithFile/properties.ini index 6491dff0f5..35610f7757 100644 --- a/test/etc/filters/ReplaceTokensWithFile/properties.ini +++ b/test/etc/filters/ReplaceTokensWithFile/properties.ini @@ -1 +1,2 @@ #!testReplace## +//#file:testReplace:endfile# \ No newline at end of file