From eb25ca0200e8ace5d1bf76636bfcd64b4447d31d Mon Sep 17 00:00:00 2001 From: zimoch Date: Thu, 16 Jul 2009 10:11:23 +0000 Subject: [PATCH] Bugfix: In old style subst, undefed macros were taken from previous line. Feature: Errors show both locations, in template and in subst file --- dbLoadTemplate | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/dbLoadTemplate b/dbLoadTemplate index 5d6d005..defeb43 100755 --- a/dbLoadTemplate +++ b/dbLoadTemplate @@ -97,6 +97,7 @@ sub parseTemplate { } else { while (parseRecord) {}; } + return 1; } sub parseSubst { @@ -113,6 +114,7 @@ sub parseSubst { if ($_ eq "{") { # old style substitution do { + local %subst; while (1) { my $macro; do { @@ -122,7 +124,7 @@ sub parseSubst { expect "=", "$STRING|$SUBST value for $macro"; $subst{$macro} = $_; } - parseTemplate $filename; + eval {parseTemplate $filename} or die "$@called from $ARGV line $.\n"; expect "{|} '{' or '}'"; } while $_ eq "{"; } else { @@ -147,7 +149,7 @@ sub parseSubst { $subst{$macro} = $_; } expect "}"; - parseTemplate $filename; + eval {parseTemplate $filename} or die "$@called from $ARGV line $.\n"; }; } return 1;