diff --git a/gerbview/gerber_file_image.cpp b/gerbview/gerber_file_image.cpp index 464ccca011..1c6a7d271e 100644 --- a/gerbview/gerber_file_image.cpp +++ b/gerbview/gerber_file_image.cpp @@ -379,9 +379,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(); } diff --git a/gerbview/rs274x.cpp b/gerbview/rs274x.cpp index 11c9d99680..2fc0464831 100644 --- a/gerbview/rs274x.cpp +++ b/gerbview/rs274x.cpp @@ -172,8 +172,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; } } @@ -364,7 +366,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 ); @@ -381,7 +383,7 @@ bool GERBER_FILE_IMAGE::ExecuteRS274XCommand( int aCommand, char* aBuff, { m_PartString = dummy.GetPrm( 1 ); } - } + } break; case APERTURE_ATTRIBUTE: // Command %TA