C. Scott Ananian has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/327779 )
Change subject: Preserve null bytes in LanguageConverter conversions. ...................................................................... Preserve null bytes in LanguageConverter conversions. Use a replacement string to allow null bytes to be preserved. This is a follow-up to I9b099273203482ffb570a5654d8ba50c833e526d, and fixes a bug discovered while working on I7fa2d85d6364958c5138366e8b4504a2697a8731. Change-Id: I02d33ada52e3fb9ee037bc03b1a83e170bd330dd --- M languages/LanguageConverter.php M tests/parser/extraParserTests.txt 2 files changed, 7 insertions(+), 2 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core refs/changes/79/327779/1 diff --git a/languages/LanguageConverter.php b/languages/LanguageConverter.php index 06fec44..f0621aa 100644 --- a/languages/LanguageConverter.php +++ b/languages/LanguageConverter.php @@ -360,8 +360,12 @@ 1. HTML markups (anything between < and >) 2. HTML entities 3. placeholders created by the parser + 4. the replacement string we use ourselves for null bytes */ - $marker = '|' . Parser::MARKER_PREFIX . '[\-a-zA-Z0-9]+'; + $nullReplacement = + Parser::MARKER_PREFIX . '-lc-null-' . Parser::MARKER_SUFFIX; + $marker = '|' . Parser::MARKER_PREFIX . '[\-a-zA-Z0-9]+' + . '(' . Parser::MARKER_SUFFIX . ')?'; // this one is needed when the text is inside an HTML markup $htmlfix = '|<[^>]+$|^[^<>]*>'; @@ -380,7 +384,7 @@ $literalBlob = ''; // Guard against delimiter nulls in the input - $text = str_replace( "\000", '', $text ); + $text = str_replace( "\000", $nullReplacement, $text ); $markupMatches = null; $elementMatches = null; @@ -441,6 +445,7 @@ $translatedIter->next(); $literalIter->next(); } + $output = str_replace( $nullReplacement, "\000", $output ); return $output; } diff --git a/tests/parser/extraParserTests.txt b/tests/parser/extraParserTests.txt index a48087e..553d0e8 100644 --- a/tests/parser/extraParserTests.txt +++ b/tests/parser/extraParserTests.txt Binary files differ -- To view, visit https://gerrit.wikimedia.org/r/327779 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I02d33ada52e3fb9ee037bc03b1a83e170bd330dd Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/core Gerrit-Branch: master Gerrit-Owner: C. Scott Ananian <canan...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits