From 4873a28e9721f637870f28b70e19d2c4b4647da3 Mon Sep 17 00:00:00 2001 From: James Turner Date: Wed, 2 Jan 2013 17:07:28 +0000 Subject: [PATCH] Allow ND rules to occur in the symbols file. --- src/Cockpit/NavDisplay.cxx | 37 ++++++++++++++++--------------------- 1 file changed, 16 insertions(+), 21 deletions(-) diff --git a/src/Cockpit/NavDisplay.cxx b/src/Cockpit/NavDisplay.cxx index efd2c30a3..9e9b0524a 100644 --- a/src/Cockpit/NavDisplay.cxx +++ b/src/Cockpit/NavDisplay.cxx @@ -476,28 +476,23 @@ NavDisplay::NavDisplay(SGPropertyNode *node) : _definitions.push_back(def); } // of symbol definition parsing - SGPropertyNode* rulesNode = node->getNode("rules"); - if (rulesNode) { - SGPropertyNode* rule; + BOOST_FOREACH(SGPropertyNode* rule, symbolsNode->getChildren("rule")) { + SymbolRule* r = new SymbolRule; + if (!r->initFromNode(rule, this)) { + delete r; + continue; + } - for (int i = 0; (rule = rulesNode->getChild("rule", i)) != NULL; ++i) { - SymbolRule* r = new SymbolRule; - if (!r->initFromNode(rule, this)) { - delete r; - continue; - } - - const char* id = symbol->getStringValue("symbol"); - if (id && strlen(id) && (definitionDict.find(id) != definitionDict.end())) { - r->setDefinition(definitionDict[id]); - } else { - SG_LOG(SG_INSTR, SG_WARN, "symbol rule has missing/unknown definition id:" << id); - delete r; - continue; - } - - addRule(r); - } // of symbol rule parsing + const char* id = rule->getStringValue("symbol"); + if (id && strlen(id) && (definitionDict.find(id) != definitionDict.end())) { + r->setDefinition(definitionDict[id]); + } else { + SG_LOG(SG_INSTR, SG_WARN, "symbol rule has missing/unknown definition id:" << id); + delete r; + continue; + } + + addRule(r); } } -- 2.39.5