Page MenuHomePhabricator

nested-templates.patch

Authored By
bzimport
Nov 21 2014, 8:51 PM
Size
1 KB
Referenced Files
None
Subscribers
None

nested-templates.patch

--- Parser.php 2005-10-17 18:02:09.000000000 +0200
+++ Parser.php 2005-10-18 05:42:53.000000000 +0200
@@ -1984,7 +1984,7 @@
$text = preg_replace_callback( "/{{{([$titleChars]*?)}}}/", array( &$this, 'argSubstitution' ), $text );
}
# Template substitution
- $regex = '/(\\n|{)?{{(['.$titleChars.']*)(\\|.*?|)}}/s';
+ $regex = '/(\\n|{)?{{(['.$titleChars.']*)(\\|({?[^{])*({{(?4)*(?5)*}}(?4)*)*|)}}/s';
$text = preg_replace_callback( $regex, array( &$this, 'braceSubstitution' ), $text );
array_pop( $this->mArgStack );
@@ -2036,10 +2036,12 @@
# If any of the arguments contains a '[[' but no ']]', it needs to be
# merged with the next arg because the '|' character between belongs
# to the link syntax and not the template parameter syntax.
+ # The same goes for '{{' and '}}' for nested templates.
$argc = count($args);
for ( $i = 0; $i < $argc-1; $i++ ) {
- if ( substr_count ( $args[$i], '[[' ) != substr_count ( $args[$i], ']]' ) ) {
+ if ( substr_count ( $args[$i], '[[' ) != substr_count ( $args[$i], ']]' )
+ || substr_count ( $args[$i], '{{' ) != substr_count ( $args[$i], '}}' ) ) {
$args[$i] .= '|'.$args[$i+1];
array_splice($args, $i+1, 1);
$i--;

File Metadata

Mime Type
text/x-diff
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1932
Default Alt Text
nested-templates.patch (1 KB)

Event Timeline