Don't match HTML entities in language conversion syntax
authorLiangent <liangent@gmail.com>
Sun, 15 Sep 2013 18:11:44 +0000 (14:11 -0400)
committerBartosz Dziewoński <matma.rex@gmail.com>
Sun, 15 Sep 2013 18:16:54 +0000 (18:16 +0000)
RegEx provided by Gabriel Wicke.

Change-Id: Idca127acc6f4cdc159ee85d5f816a5d120cbe44e

languages/LanguageConverter.php

index 79ddb6a..ccf9b1e 100644 (file)
@@ -1263,7 +1263,10 @@ class ConverterRule {
                $variants = $this->mConverter->mVariants;
                $varsep_pattern = $this->mConverter->getVarSeparatorPattern();
 
+               // Split according to $varsep_pattern, but ignore semicolons from HTML entities
+               $rules = preg_replace( '/(&[#a-zA-Z0-9]+);/', "$1\x01", $rules );
                $choice = preg_split( $varsep_pattern, $rules );
+               $choice = str_replace( "\x01", ';', $choice );
 
                foreach ( $choice as $c ) {
                        $v = explode( ':', $c, 2 );