From: Ian Jackson Date: Fri, 24 Dec 2010 00:36:28 +0000 (+0000) Subject: layout/data2safety: ditch rather than mistake on movfeatposmap of an unwired segment X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ijackson/git?a=commitdiff_plain;h=04286975c6c50c7ca161118856b5390f4feee396;p=trains.git layout/data2safety: ditch rather than mistake on movfeatposmap of an unwired segment --- diff --git a/layout/data2safety b/layout/data2safety index 2af6690..d32e749 100755 --- a/layout/data2safety +++ b/layout/data2safety @@ -259,15 +259,20 @@ sub line_movfeatposmap () { m,^\s+(\w+)\s+([A-Za-z]+)(\d+)(?:\-(\d+))?((?:\s+(?:[A-Za-z]+\d+)*)+)$,; defined $segr or return syntaxerror(); - my $seg= $segs{$segr}; - return mistake("unknown segment $segr in movfeatposmap") unless $seg; - $abstr_lastpos= $abstr_firstpos unless defined $abstr_lastpos; my $nabstr_posns= $abstr_lastpos - $abstr_firstpos + 1; $conc_posns =~ s/^\s+//; my (@conc_posns) = split /\s+/, $conc_posns; + my $seg= $segs{$segr}; + if (!$seg) { + ditch("movfeatposmap for unwired segment". + " $segr/$abstr_namebase$abstr_firstpos". + ($nabstr_posns>1 ? "-$abstr_lastpos" : "")); + return; + } + @conc_posns == $nabstr_posns or return mistake("number of concrete poscombs ".@conc_posns. " differs from number of abstract poscombs".