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:
Wayne Stambaugh
2025-03-06 15:42:03 -05:00
parent 1414e90ce9
commit 04733511fc
@@ -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 );