chiark / gitweb /
Commods (upload): Tolerate tabs (which are nowadays not printing it seems?!)
[ypp-sc-tools.db-test.git] / yarrg / Commods.pm
index af03a6497b9a7760be5b55cbee867680ffd2d25a..5d0ffe29fd46b8dd7b06802655b84d132ec9f100 100644 (file)
@@ -222,7 +222,7 @@ sub parse_info1 ($$$) {
                    $ordval= $1;
                    $ordval =~ s/^(\d+)\+$/ $1 + $lnoix * 10 /e;
                } elsif ($prop =~ m/^\!([a-z]+)$/) {
-                   $c->{Flags} .= $prop;
+                   $c->{Flags} .= $1;
                } else {
                    die "unknown property $prop for $ucname";
                }
@@ -422,17 +422,18 @@ sub check_tsv_line ($$) {
     
     chomp($l) or &$bad_data('missing end-of-line');
 
-    $l !~ m/\P{IsPrint}/ or &$bad_data('nonprinting char(s)');
+    $l =~ m/[\t [:graph:]]/ or &$bad_data('nonprinting char(s) '.sprintf "%#x", ord $&);
     my @v= split /\t/, $l, -1;
     @v==6 or &$bad_data('wrong number of fields');
+    $v[1] =~ s/^\s+//; $v[1] =~ s/\s+$//; # ooo don't check :-(
     my ($commod,$stall) = @v;
 
     !keys %commods or
        defined $commods{$commod} or
        &$bad_data("unknown commodity ".errsan($commod));
     
-    $stall =~ m/^\p{IsUpper}|^[0-9]/ or
-       &$bad_data("stall not capitalised ".errsan($stall));
+    $stall =~ m/^\p{IsAlnum}/ or
+       &$bad_data("stall does not start with alphanumeric ".errsan($stall));
     !exists $check_tsv_done{$commod,$stall} or
        &$bad_data("repeated data ".errsan($commod).",".errsan($stall));
     $check_tsv_done{$commod,$stall}= 1;