X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=parse_format.pm;h=3f4d50d3404642be2532f685fd7e5fe709377552;hb=6568d7a22301ba72ad6e1d86646424909fe8d6fb;hp=d12a94c76523cd5d96fc052efbbceaf3c0b58eca;hpb=973467479c966f535444ba2adc0ac2b948ca95c6;p=webpac diff --git a/parse_format.pm b/parse_format.pm index d12a94c..3f4d50d 100644 --- a/parse_format.pm +++ b/parse_format.pm @@ -163,15 +163,17 @@ sub parse_iso_format { sub fld2str { my ($func,$row,$f,$sf,$i) = @_; #print STDERR "## in fld2str\n"; - my $tmp = $codepage->convert(&$func($row,$f,$sf,$i)) || ''; + my $tmp = $codepage->convert(&$func($row,$f,$sf,$i)) || $codepage->convert(&$func($row,$f,$sf,0)) || ''; return "'$tmp'"; } $eval =~ s/v(\d+)\^(\w*)/fld2str($func,$row,$1,$2,$i)/eg; #print STDERR "## eval: $eval\n"; if (eval "$eval") { + die "eval error: eval{$eval}: $@" if ($@); return ($swish,$display); } else { + die "eval error: eval{$eval}: $@" if ($@); return (undef,undef); } } @@ -224,7 +226,7 @@ sub parse_excel_format { } elsif ($format =~ s/^([^A-Z\|]+)(\|[A-Z]{1,2}\|)/$2/) { $prefix .= $1 if ($display); } else { - print STDERR "unparsed format: $format\n"; + #print STDERR "unparsed format: $format\n"; $prefix .= $format; $format = ""; }