Gerbview: Gerber attributes display: fix incorrect attributes deletion.

The Gerber attribute deletion command (%TD,xxx) always cleared all attributes,
instead of clearing xxx attribute.
Therefore some attributes were not always displayed.

From master branch, commit 7206b567
This commit is contained in:
jean-pierre charras 2020-02-23 09:41:37 +01:00
parent 5c7ac1bb7e
commit 693aec949c
2 changed files with 7 additions and 4 deletions

View File

@ -385,9 +385,10 @@ void GERBER_FILE_IMAGE::RemoveAttribute( X2_ATTRIBUTE& aAttribute )
* if a attribute name is specified (for instance %TD.CN*%) is specified,
* only this attribute is cleared
*/
m_NetAttributeDict.ClearAttribute( &aAttribute.GetPrm( 1 ) );
wxString cmd = aAttribute.GetPrm( 0 );
m_NetAttributeDict.ClearAttribute( &cmd );
if( aAttribute.GetPrm( 1 ).IsEmpty() || aAttribute.GetPrm( 1 ) == ".AperFunction" )
if( cmd.IsEmpty() || cmd == ".AperFunction" )
m_AperFunction.Clear();
}

View File

@ -171,8 +171,10 @@ bool GERBER_FILE_IMAGE::ReadRS274XCommand( char *aBuff, unsigned int aBuffSize,
default:
code_command = ReadXCommandID( aText );
ok = ExecuteRS274XCommand( code_command, aBuff, aBuffSize, aText );
if( !ok )
goto exit;
break;
}
}
@ -363,7 +365,7 @@ bool GERBER_FILE_IMAGE::ExecuteRS274XCommand( int aCommand, char* aBuff,
case FILE_ATTRIBUTE: // Command %TF ...
m_IsX2_file = true;
{
{
X2_ATTRIBUTE dummy;
dummy.ParseAttribCmd( m_Current_File, aBuff, aBuffSize, aText, m_LineNum );
@ -380,7 +382,7 @@ bool GERBER_FILE_IMAGE::ExecuteRS274XCommand( int aCommand, char* aBuff,
{
m_PartString = dummy.GetPrm( 1 );
}
}
}
break;
case APERTURE_ATTRIBUTE: // Command %TA