X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=languages%2Fclasses%2FLanguageSr.php;h=0ad7860fc0f1198db1babcee00ed8c003d248c6c;hb=ee90bd4c5c4fc2100386fa31ae9324cc13eaf919;hp=886ee94a35d591ddd09d78b50457dd592c302a8e;hpb=7874fc4bec845ad92960b07e969c65f3c3fe74f2;p=lhc%2Fweb%2Fwiklou.git diff --git a/languages/classes/LanguageSr.php b/languages/classes/LanguageSr.php index 886ee94a35..0ad7860fc0 100644 --- a/languages/classes/LanguageSr.php +++ b/languages/classes/LanguageSr.php @@ -75,31 +75,6 @@ class SrConverter extends LanguageConverter { ]; } - /** - * rules should be defined as -{ekavian | iyekavian-} -or- - * -{code:text | code:text | ...}- - * - * update: delete all rule parsing because it's not used - * currently, and just produces a couple of bugs - * - * @param string $rule - * @param array $flags - * @return array - */ - function parseManualRule( $rule, $flags = [] ) { - if ( in_array( 'T', $flags ) ) { - return parent::parseManualRule( $rule, $flags ); - } - - $carray = []; - // otherwise ignore all formatting - foreach ( $this->mVariants as $v ) { - $carray[$v] = $rule; - } - - return $carray; - } - /** * A function wrapper: * - if there is no selected variant, leave the link @@ -140,7 +115,8 @@ class SrConverter extends LanguageConverter { $breaks = '[^\w\x80-\xff]'; // regexp for roman numbers - $roman = 'M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})'; + // Lookahead assertion ensures $roman doesn't match the empty string + $roman = '(?=[MDCLXVI])M{0,4}(C[DM]|D?C{0,3})(X[LC]|L?X{0,3})(I[VX]|V?I{0,3})'; $reg = '/^' . $roman . '$|^' . $roman . $breaks . '|' . $breaks . $roman . '$|' . $breaks . $roman . $breaks . '/'; @@ -156,7 +132,7 @@ class SrConverter extends LanguageConverter { $ret = $this->mTables[$toVariant]->replace( $m[0] ); $mstart = $m[1] + strlen( $m[0] ); foreach ( $matches as $m ) { - $ret .= substr( $text, $mstart, $m[1] -$mstart ); + $ret .= substr( $text, $mstart, $m[1] - $mstart ); $ret .= parent::translate( $m[0], $toVariant ); $mstart = $m[1] + strlen( $m[0] ); }