Substring Fehler in locale/de/locales.pl
authorSven Schöling <s.schoeling@linet-services.de>
Thu, 22 Apr 2010 09:03:30 +0000 (11:03 +0200)
committerSven Schöling <s.schoeling@linet-services.de>
Thu, 22 Apr 2010 09:03:30 +0000 (11:03 +0200)
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.

locale/de/locales.pl

index 57bf8c1..701cace 100755 (executable)
@@ -570,11 +570,11 @@ sub scanhtmlfile {
                         [\-~#]*         # 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) {