if field in eval isn't repeatable use first value,
[webpac] / parse_format.pm
index d12a94c..3f4d50d 100644 (file)
@@ -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 = "";
                }