7
mirror of https://gitlab.com/kicad/code/kicad.git synced 2025-04-20 00:21:31 +00:00

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.
This commit is contained in:
Wayne Stambaugh 2025-03-04 07:59:45 -05:00
parent b419058df3
commit 001d3dfd88

View File

@ -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 )
{