From 8533154739967d8a22b897d1507616a6c5a4e666 Mon Sep 17 00:00:00 2001 From: Mischa POSLAWSKY Date: Sun, 20 Nov 2022 23:49:16 +0100 Subject: [PATCH] catch errors in report templates --- barcat | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/barcat b/barcat index 189c8ff..6dbddd9 100755 --- a/barcat +++ b/barcat @@ -384,10 +384,19 @@ sub show_stat { sub varfmt { my ($fmt, $vars) = @_; $fmt =~ s[\$\{ (\w+) (?; (?: [^{}]+ | \{.*?\} )*)? \}]{ - local $_ = $vars->{$1}; #TODO // - $_ = $opt{'value-format'}->($_) if $opt{reformat}; - eval $+{cmd} if $+{cmd}; #TODO $@ - $_; + local $_ = $vars->{$1}; + if (defined) { + $_ = $opt{'value-format'}->($_) if $opt{reformat}; + if ($+{cmd}) { + eval $+{cmd}; + warn "Error in \$$1 report: $@" if $@; + } + $_; + } + else { + warn "Unknown variable \$$1 in report\n"; + "\$$1"; + } }eg; return $fmt; } -- 2.30.0