Use case insensitive comparison in symbol footprint filter match DRC.
This keeps the DRC test in line with the ERC test which is also case
insensitive.
(cherry picked from commit a1b78d170d)
This commit is contained in:
@@ -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 );
|
||||
|
||||
Reference in New Issue
Block a user