Test full LIB_ID in symbol footprint filter match DRC.
Apparently newer symbol libraries are using the library nickname in the
footprint filter string. The symbol footprint filter match DRC was only
checking the footprint name against the new filter which would always
fail. A test against the full LIB_ID string is now performed when the
filter string contains the library separator character ':'. The ERC test
already performed this check.
(cherry picked from commit 001d3dfd88)
This commit is contained in:
@@ -156,12 +156,18 @@ void DRC_TEST_PROVIDER_SCHEMATIC_PARITY::testNetlist( NETLIST& aNetlist )
|
||||
|
||||
if( !m_drcEngine->IsErrorLimitExceeded( DRCE_FOOTPRINT_FILTERS ) )
|
||||
{
|
||||
wxString libId = footprint->GetFPID().GetUniStringLibId();
|
||||
wxString fpName = footprint->GetFPID().GetUniStringLibItemName();
|
||||
size_t filtercount = component->GetFootprintFilters().GetCount();
|
||||
bool found = ( 0 == filtercount ); // if no entries, do not filter
|
||||
|
||||
for( size_t jj = 0; jj < filtercount && !found; jj++ )
|
||||
found = fpName.Matches( component->GetFootprintFilters()[jj] );
|
||||
{
|
||||
if( component->GetFootprintFilters()[jj].Find( ':' ) == wxNOT_FOUND )
|
||||
found = fpName.Matches( component->GetFootprintFilters()[jj] );
|
||||
else
|
||||
found = libId.Matches( component->GetFootprintFilters()[jj] );
|
||||
}
|
||||
|
||||
if( !found )
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user