|
|
|
@ -156,24 +156,26 @@ 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(); |
|
|
|
wxString libIdLower = footprint->GetFPID().GetUniStringLibId().Lower(); |
|
|
|
wxString fpNameLower = footprint->GetFPID().GetUniStringLibItemName().Lower(); |
|
|
|
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++ ) |
|
|
|
{ |
|
|
|
if( component->GetFootprintFilters()[jj].Find( ':' ) == wxNOT_FOUND ) |
|
|
|
found = fpName.Matches( component->GetFootprintFilters()[jj] ); |
|
|
|
wxString filterLower = component->GetFootprintFilters()[jj].Lower(); |
|
|
|
|
|
|
|
if( filterLower.Find( ':' ) == wxNOT_FOUND ) |
|
|
|
found = fpNameLower.Matches( filterLower ); |
|
|
|
else |
|
|
|
found = libId.Matches( component->GetFootprintFilters()[jj] ); |
|
|
|
found = libIdLower.Matches( filterLower ); |
|
|
|
} |
|
|
|
|
|
|
|
if( !found ) |
|
|
|
{ |
|
|
|
wxString msg; |
|
|
|
msg.Printf( _( "%s doesn't match symbol's footprint filters (%s)." ), |
|
|
|
fpName, |
|
|
|
footprint->GetFPID().GetUniStringLibId(), |
|
|
|
wxJoin( component->GetFootprintFilters(), ' ' ) ); |
|
|
|
|
|
|
|
std::shared_ptr<DRC_ITEM> drcItem = DRC_ITEM::Create( DRCE_FOOTPRINT_FILTERS ); |
|
|
|
|