Added a workaround the tech layer bug in magic
diff --git a/scripts/drcexpander.pl b/scripts/drcexpander.pl index 51f0bb1..ab14bd8 100644 --- a/scripts/drcexpander.pl +++ b/scripts/drcexpander.pl
@@ -131,15 +131,19 @@ s/\\//g; if(m/^\s*(spacing|surround)\s+(\S+)\s+(\S+)\s+/) { - $alias{$2}=1; - $alias{$3}=1; - foreach(split(",",$2)) + my $a2=$2; + my $a3=$3; + $alias{$a2}=1; + $alias{$a3}=1; + foreach(split(",",$a2)) { $alias{$_}=1; + $alias{$1}=1 if(m/^([^\/]+)/); } - foreach(split(",",$3)) + foreach(split(",",$a3)) { $alias{$_}=1; + $alias{$1}=1 if(m/^([^\/]+)/); } } # Rule: width type-list width error @@ -226,17 +230,31 @@ my %b=(); foreach(@a) { - #print STDERR "piece: $_\n"; - if(m/(\/\S+)/ && defined($alias{$_})) + print STDERR "piece: $_\n" if($debug); + if(m/(\/\S+)/ && defined($alias{$_}) && $alias{$_}) { + print STDERR "WE FOUND A SLASH AND AN ALIAS\n" if($debug); my $image=$1; foreach my $part(split " ",$alias{$_}) { + print STDERR "PART: $part\n" if($debug); $b{$part.(($part =~ m/\//)?"":$image)}=1; } } + elsif(m/^([^\/]+)(\/\S+)/) # This is a workaround for bugs in magic that hopefully get fixed + { + print STDERR "WE FOUND A SLASH BUT NO ALIAS\n" if($debug); + my $image=$2; + my $short=$1; + foreach my $part(split " ",$alias{$short}) + { + print STDERR "PART: $part\n" if($debug); + $b{$part.$image}=1; + } + } else { + print STDERR "NO SLASH OR ALIAS\n" if($debug); foreach my $part(split " ",$alias{$_}) { $b{$part}=1; @@ -328,7 +346,9 @@ { print " # ORIGINAL RULE:$oneline\n"; my $vl2=$2; + print STDERR "ALLLAYERS $vl2\n" if($debug); my $l2=join " ",allLayers($vl2); + print STDERR "INFO: vl2=$vl2 l2=$l2\n" if($debug); my $text=$4; print " $1 $vl2 $3 \"$4 [paint $l2]\"\n"; }