X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?p=ypp-sc-tools.web-live.git;a=blobdiff_plain;f=yarrg%2Fweb%2Fcheck_capacitystring;h=b958dff46745e2ee4c4b3b8efdbaffce92c07c8b;hp=a79b6f1ac06f1dffbed02820e33a819a1e31bb29;hb=ad29b01fe6470a4b3bb108a8f485657927175e24;hpb=3ce667a2d3fd7c36f60da86bb59071264790e375 diff --git a/yarrg/web/check_capacitystring b/yarrg/web/check_capacitystring index a79b6f1..b958dff 100644 --- a/yarrg/web/check_capacitystring +++ b/yarrg/web/check_capacitystring @@ -85,7 +85,7 @@ my $parse_values= sub { elsif (s/^( $fqtyrex ) \s* t \s+ //xo) { $def->(0, $1 * 1000.0 ); } elsif (s/^( $fqtyrex ) \s* l \s+ //xo) { $def->(1, $1 ); } elsif (s/^( $fqtyrex ) \s* kl \s+ //xo) { $def->(1, $1 * 1000.0 ); } - elsif (s/^( $iqtyrex ) \s* ([a-z ]+) \s+ //xo) { + elsif (s/^( $iqtyrex ) \s* ([a-z ]+) \s+ //ixo) { my ($qty,$spec) = ($1,$2); $debugf->("VALUE COMMOD $qty '$spec'"); expected_error("Capacity specification must start with". @@ -96,9 +96,9 @@ my $parse_values= sub { FROM commods WHERE commodname LIKE ?"); my ($emsg,$commod,@umv)= dbw_lookup_string($spec,$commodsth,1,0,0, - "No commodity or unit matches \`$spec'", - "Ambiguous commodity (or unit) \`$spec'", - undef); + "No commodity or unit matches ".escerrq($spec), + "Ambiguous commodity (or unit) ".escerrq($spec), + undef); expected_error($emsg) if defined $emsg; $debugf->("VALUE COMMOD FOUND '$commod' @umv"); foreach my $mvi (0,1) { @@ -109,7 +109,8 @@ my $parse_values= sub { push @canon, $commod; } else { s/\s+$//; - expected_error("Did not understand value \`$_'"); + expected_error("Did not understand value ". + escerrq($_)); } } }; @@ -129,18 +130,19 @@ my $parse_term= sub { $_ *= $pct / 100.0; } push @canon, sprintf "%g%%", $pct; - } elsif (!m/[^a-z]/) { + } elsif (!m/[^a-z]/i) { $debugf->("TERM NAME"); - expected_error("Name (should be unit or commodity) \`$_'". + expected_error("Name (should be unit or commodity)". + escerrq($_). " without preceding quantity") unless $first_term; my $sth= $dbh->prepare("SELECT name,mass,volume". " FROM vessels WHERE name LIKE ?"); my ($emsg,$ship,@smv)= dbw_lookup_string($_,$sth,1,1,2, - "Ship name `$_' not understood.", + "Ship name ".escerrq($_)." not understood.", "Too many matching ship types.", - sub { "Ambiguous - could be $_[0]" }); + sub { "Ambiguous - could be $_[1]" }); expected_error($emsg) if defined $emsg; $debugf->("TERM NAME SHIP '$ship' @smv"); $show_answer= 1; @@ -152,7 +154,7 @@ my $parse_term= sub { $first_term= 0; }; -while ($string =~ s/^(.*?)(\bminus\b|-|\bplus\b|\+)//) { +while ($string =~ s/^(.*?)(\bminus\b|-|\bplus\b|\+)//i) { my ($lhs)= ($1); my @nextsign= $2 =~ m/^p|^\+/ ? (+1,'+') : (-1,'-'); $show_answer= 1;