chiark / gitweb /
layout/data2safety: improve some error reports
authorIan Jackson <ian@liberator.relativity.greenend.org.uk>
Sun, 12 Dec 2010 01:17:55 +0000 (01:17 +0000)
committerIan Jackson <ian@liberator.relativity.greenend.org.uk>
Sun, 12 Dec 2010 01:17:55 +0000 (01:17 +0000)
layout/data2safety

index ff77f2b84265a704f08579a7b7729a34ac3d2bc3..433540784ec5c8bc65d2ebb7fe34197b32c0620a 100755 (executable)
@@ -106,7 +106,7 @@ sub ditch ($) {
 
 sub seg_wiring ($$$) {
     my ($seg,$feat,$hash) = @_;
-    mistake("unknown wiring for $seg in $seg/$feat")
+    return mistake("unknown wiring for $seg in $seg/$feat")
        unless exists $segs{$seg};
     mistake("duplicate wiring for $seg/$feat")
        if exists $segs{$seg}{Feats}{$feat};
@@ -163,7 +163,7 @@ sub line_segment () {
     my ($seg,$boobstr,$boob);
     m/^\s+(\w+)\s+(\d+\.\d+)$/ or return syntaxerror();
     ($seg,$boobstr)=($1,$2);
-    mistake("duplicate topology for $seg") if exists $segs{$seg};
+    mistake("duplicate topology for segment $seg") if exists $segs{$seg};
     $boob= pa_boob('sense', $boobstr);
     $segs{$seg}= {
        BoOb => $boob,
@@ -286,11 +286,12 @@ sub line_endwiring () {
            if !exists $featposwant{$feat};
        $combpos += $featposwant{$feat} * $featr->{Weight};
     }
-    mistake("duplicate topology for $seg/$subspec")
+    mistake("duplicate topology subseg for $seg/$subspec")
        if defined $segs{$seg}{Dist}[$combpos];
     $segs{$seg}{Dist}[$combpos]= $dist;
     $endposr= $segr->{Ends}[$combpos];
-    die "$seg $combpos @$endposr ?" if defined $endposr && @$endposr;
+    die "$seg $combpos ".(map { "@$_" } @$endposr)." ?"
+       if defined $endposr && @$endposr;
     for ($end=0; $end<2; $end++) {
        $ns[$end] =~ m/^([a-z]\w+)\.([01])$/;
        ($node,$side)=($1,$2);