diff options
Diffstat (limited to 'maintenance/parserTestsStaticParserHook.php')
-rw-r--r-- | maintenance/parserTestsStaticParserHook.php | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/maintenance/parserTestsStaticParserHook.php b/maintenance/parserTestsStaticParserHook.php index 5a98a89d..98c4bba1 100644 --- a/maintenance/parserTestsStaticParserHook.php +++ b/maintenance/parserTestsStaticParserHook.php @@ -21,24 +21,27 @@ function wfParserTestStaticParserHookSetup( &$parser ) { return true; } -function wfParserTestStaticParserHookHook( $in, $argv ) { - static $buf = null; - +function wfParserTestStaticParserHookHook( $in, $argv, $parser ) { if ( ! count( $argv ) ) { - $buf = $in; + $parser->static_tag_buf = $in; return ''; - } else if ( count( $argv ) === 1 && $argv['action'] === 'flush' && $in === null ) { + } else if ( count( $argv ) === 1 && isset( $argv['action'] ) + && $argv['action'] === 'flush' && $in === null ) + { // Clear the buffer, we probably don't need to - $tmp = $buf; - $buf = null; + if ( isset( $parser->static_tag_buf ) ) { + $tmp = $parser->static_tag_buf; + } else { + $tmp = ''; + } + $parser->static_tag_buf = null; return $tmp; } else // wtf? - die( + return "\nCall this extension as <statictag>string</statictag> or as" . " <statictag action=flush/>, not in any other way.\n" . "text: " . var_export( $in, true ) . "\n" . - "argv: " . var_export( $argv, true ) . "\n" - ); + "argv: " . var_export( $argv, true ) . "\n"; } |