foreach als eindeutiges Wort für Schleifen innerhalb Latex-Druckvorlagen benutzen...
authorJan Büren <jan@lx-office-hosting.de>
Thu, 18 Nov 2010 09:32:52 +0000 (10:32 +0100)
committerJan Büren <jan@lx-office-hosting.de>
Thu, 18 Nov 2010 09:32:52 +0000 (10:32 +0100)
    if ((substr($text, $keyword_pos, 2) eq 'if') || (substr($text,
$keyword_pos, 3) eq 'for')) {

mach daraus mal

    if ((substr($text, $keyword_pos, 2) eq 'if') || (substr($text,
$keyword_pos, 3) eq 'foreach')) {

Die ganze Funktion ist leicht Mist und reagiert allergisch darauf, wenn
Variablennamen mit einem der Stichwörter "if", "foreach" oder "end"
anfangen. Leider enthält sie anscheinend weiterhin den Bug, dass nicht
auf "foreach" sondern auf "for" getestet wird, und das ist nun mal bei
"FORmat_info" am Anfang enthalten.

SL/Template/LaTeX.pm

index 8aac39d..eb99b1b 100644 (file)
@@ -132,7 +132,7 @@ sub find_end {
 
     my $keyword_pos = $pos - 1 + $tag_start_len;
 
-    if ((substr($text, $keyword_pos, 2) eq 'if') || (substr($text, $keyword_pos, 3) eq 'for')) {
+    if ((substr($text, $keyword_pos, 2) eq 'if') || (substr($text, $keyword_pos, 3) eq 'foreach')) {
       $depth++;
 
     } elsif ((substr($text, $keyword_pos, 4) eq 'else') && (1 == $depth)) {