Fix Bug #1381287 (CvPCB ignores the footprint filter field on aliased components)
This commit is contained in:
parent
45fcc04dbf
commit
846b2ae24e
|
@ -36,3 +36,5 @@ tstamps
|
||||||
uri
|
uri
|
||||||
value
|
value
|
||||||
version
|
version
|
||||||
|
aliases
|
||||||
|
alias
|
||||||
|
|
|
@ -386,6 +386,9 @@ void KICAD_NETLIST_PARSER::parseLibPartList() throw( IO_ERROR, PARSE_ERROR )
|
||||||
{
|
{
|
||||||
/* Parses a section like
|
/* Parses a section like
|
||||||
* (libpart (lib device) (part C)
|
* (libpart (lib device) (part C)
|
||||||
|
* (aliases
|
||||||
|
* (alias Cxx)
|
||||||
|
* (alias Cyy))
|
||||||
* (description "Condensateur non polarise")
|
* (description "Condensateur non polarise")
|
||||||
* (footprints
|
* (footprints
|
||||||
* (fp SM*)
|
* (fp SM*)
|
||||||
|
@ -405,6 +408,7 @@ void KICAD_NETLIST_PARSER::parseLibPartList() throw( IO_ERROR, PARSE_ERROR )
|
||||||
wxString libName;
|
wxString libName;
|
||||||
wxString libPartName;
|
wxString libPartName;
|
||||||
wxArrayString footprintFilters;
|
wxArrayString footprintFilters;
|
||||||
|
wxArrayString aliases;
|
||||||
|
|
||||||
// The last token read was libpart, so read the next token
|
// The last token read was libpart, so read the next token
|
||||||
while( (token = NextTok()) != T_RIGHT )
|
while( (token = NextTok()) != T_RIGHT )
|
||||||
|
@ -443,6 +447,20 @@ void KICAD_NETLIST_PARSER::parseLibPartList() throw( IO_ERROR, PARSE_ERROR )
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case T_aliases:
|
||||||
|
while( (token = NextTok()) != T_RIGHT )
|
||||||
|
{
|
||||||
|
if( token == T_LEFT )
|
||||||
|
token = NextTok();
|
||||||
|
|
||||||
|
if( token != T_alias )
|
||||||
|
Expecting( T_alias );
|
||||||
|
|
||||||
|
NeedSYMBOLorNUMBER();
|
||||||
|
aliases.Add( FROM_UTF8( CurText() ) );
|
||||||
|
NeedRIGHT();
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
// Skip not used data (i.e all other tokens)
|
// Skip not used data (i.e all other tokens)
|
||||||
skipCurrent();
|
skipCurrent();
|
||||||
|
@ -457,5 +475,12 @@ void KICAD_NETLIST_PARSER::parseLibPartList() throw( IO_ERROR, PARSE_ERROR )
|
||||||
|
|
||||||
if( component->IsLibSource( libName, libPartName ) )
|
if( component->IsLibSource( libName, libPartName ) )
|
||||||
component->SetFootprintFilters( footprintFilters );
|
component->SetFootprintFilters( footprintFilters );
|
||||||
|
|
||||||
|
for( unsigned jj = 0; jj < aliases.GetCount(); jj++ )
|
||||||
|
{
|
||||||
|
if( component->IsLibSource( libName, aliases[jj] ) )
|
||||||
|
component->SetFootprintFilters( footprintFilters );
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue