Das substr dass erkannte Locales entfernen sollte hat als Startposition fälschlicherweise den ersten Submatch genommen. Dadurch wurden die ersten 3 Byte des nächsten Strings gegrillt was in seltenen Fällen zu Folgefehlern beim Matchen führen konnte.
Wurde maskiert dadurch, dass es vor der[\-~#]* Änderung nicht möglich war mehrere Locales in einer Zeile zu erkennen.
[\-~#]* # Whitespace-Unterdrückung
\%\] # Template-Ende-Tag
/ix) {
-# print "Found filter >>>$1<<<\n";
+# print "Found filter '$1' in string '$line'\n";
$cached{$_[0]}{all}{$1} = 1;
$cached{$_[0]}{html}{$1} = 1;
$plugins{needed}->{T8} = 1;
- substr $line, $-[1], $+[0] - $-[0], '';
+ substr $line, $-[0], $+[0] - $-[0], '';
}
while ("" ne $line) {