CADSTAR Sch: TERMATTR may have more than one attribute subnode
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13526
(cherry picked from commit fc04f5135f
)
This commit is contained in:
parent
8b1ce36402
commit
97c018118d
|
@ -551,14 +551,14 @@ void CADSTAR_SCH_ARCHIVE_PARSER::TERMATTR::Parse( XNODE* aNode, PARSER_CONTEXT*
|
||||||
TerminalID = GetXmlAttributeIDLong( aNode, 0 );
|
TerminalID = GetXmlAttributeIDLong( aNode, 0 );
|
||||||
|
|
||||||
XNODE* cNode = aNode->GetChildren();
|
XNODE* cNode = aNode->GetChildren();
|
||||||
bool attrParsed = false;
|
|
||||||
|
|
||||||
for( ; cNode; cNode = cNode->GetNext() )
|
for( ; cNode; cNode = cNode->GetNext() )
|
||||||
{
|
{
|
||||||
if( !attrParsed && cNode->GetName() == wxT( "ATTR" ) )
|
if( cNode->GetName() == wxT( "ATTR" ) )
|
||||||
{
|
{
|
||||||
Value.Parse( cNode, aContext );
|
ATTRIBUTE_VALUE val;
|
||||||
attrParsed = true;
|
val.Parse( cNode, aContext );
|
||||||
|
Attributes.push_back( val );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -206,8 +206,8 @@ public:
|
||||||
|
|
||||||
struct TERMATTR : PARSER
|
struct TERMATTR : PARSER
|
||||||
{
|
{
|
||||||
TERMINAL_ID TerminalID;
|
TERMINAL_ID TerminalID;
|
||||||
ATTRIBUTE_VALUE Value;
|
std::vector<ATTRIBUTE_VALUE> Attributes;
|
||||||
|
|
||||||
void Parse( XNODE* aNode, PARSER_CONTEXT* aContext ) override;
|
void Parse( XNODE* aNode, PARSER_CONTEXT* aContext ) override;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue