X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?p=ypp-sc-tools.db-test.git;a=blobdiff_plain;f=yarrg%2FCommods.pm;h=48caf79e9ba3f5ca1f0d2f158c4d8f36d18f242d;hp=91781126d319a32c5f0a5d15f3ec499c82af1fbb;hb=6dd8d650dfc26d113119c3566747d35855834146;hpb=b14effcf3ea7900eb4198f6e50112da751f29add diff --git a/yarrg/Commods.pm b/yarrg/Commods.pm index 9178112..48caf79 100644 --- a/yarrg/Commods.pm +++ b/yarrg/Commods.pm @@ -207,6 +207,7 @@ sub parse_info1 ($$$) { $commods{$ucname}{Srcs} .= $ss; my $c= $commods{$ucname}; $c->{Volume}= 1000; + $c->{Flags}= ''; my ($ordval, $ordclassval); foreach my $prop (defined $props ? split /\s+/, $props : ()) { if ($prop =~ m/^([1-9]\d*)(k?)g$/) { @@ -220,6 +221,8 @@ sub parse_info1 ($$$) { } elsif ($prop =~ m/^\@(\d+\+?)$/) { $ordval= $1; $ordval =~ s/^(\d+)\+$/ $1 + $lnoix * 10 /e; + } elsif ($prop =~ m/^\!([a-z]+)$/) { + $c->{Flags} .= $1; } else { die "unknown property $prop for $ucname"; } @@ -419,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/\P{IsPrint}/ 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;