From d8ca1839bed0517c80b4781e92580bfcdf5006c8 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Wed, 1 Dec 2010 22:44:03 +0000 Subject: [PATCH] layout/data2safety: cope properly with segposcombs which do not appear in ours.redacted.forsafety because they are useless --- layout/data2safety | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/layout/data2safety b/layout/data2safety index c126713..ff77f2b 100755 --- a/layout/data2safety +++ b/layout/data2safety @@ -625,27 +625,32 @@ sub writeout () { ($comb / $featv->{Weight}) % $featv->{Posns}); } o("$delim\n"); + my $dist= $segr->{Dist}[$comb]; o(sprintf " { %-7s%4d, { ", '"'.$pi.'",', - $segr->{Dist}[$comb]); + defined($dist) ? $dist : 1); for ($end=0; $end<2; $end++) { o(", ") if $end; o("{"); $otherend= $segr->{Ends}[$comb][!$end]; - defined $otherend or - die "segment $seg combination $comb end $end undefined\n"; - ($node,$side) = @$otherend; - $nodeotherside= $nodes{$node}[1-$side]; - if (defined $nodeotherside) { - $otherseg= $nodeotherside->{Seg}; - $otherbackrelus= $nodeotherside->{End} ^ $end; - o(sprintf "/*%4s.%d*/ %d,%4s", - $node,$side, - $otherbackrelus, - so_segnum($otherseg)); + if (!defined $otherend) { + die "segment $seg combination $comb end $end undefined\n" + if defined $dist; + o(" 0,NOTA(Segment)"); } else { - o(sprintf "/*%5s.%d*/ 0,NOTA(Segment)", - $node,$side); + ($node,$side) = @$otherend; + $nodeotherside= $nodes{$node}[1-$side]; + if (defined $nodeotherside) { + $otherseg= $nodeotherside->{Seg}; + $otherbackrelus= $nodeotherside->{End} ^ $end; + o(sprintf "/*%4s.%d*/ %d,%4s", + $node,$side, + $otherbackrelus, + so_segnum($otherseg)); + } else { + o(sprintf "/*%5s.%d*/ 0,NOTA(Segment)", + $node,$side); + } } o(" }"); } -- 2.30.2