X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fprops%2Fprops_io.cxx;h=48244c7b11ee7cea442681e0944638cd6828cbd0;hb=4fffcf9975be6559d9ca5eba257c9ebbb6dd541f;hp=44380186cf891d061e34ebd40732cd4cffd7e711;hpb=fcf72a712384e27c1cc758e987f1fab9afcced4d;p=simgear.git diff --git a/simgear/props/props_io.cxx b/simgear/props/props_io.cxx index 44380186..48244c7b 100644 --- a/simgear/props/props_io.cxx +++ b/simgear/props/props_io.cxx @@ -187,16 +187,17 @@ PropsVisitor::startElement (const char * name, const XMLAttributes &atts) // Get the index. attval = atts.getValue("n"); int index = 0; + string strName(name); if (attval != 0) { index = atoi(attval); - st.counters[name] = SG_MAX2(st.counters[name], index+1); + st.counters[strName] = SG_MAX2(st.counters[strName], index+1); } else { - index = st.counters[name]; - st.counters[name]++; + index = st.counters[strName]; + st.counters[strName]++; } // Got the index, so grab the node. - SGPropertyNode * node = st.node->getChild(name, index, true); + SGPropertyNode * node = st.node->getChild(strName, index, true); if (!node->getAttribute(SGPropertyNode::WRITE)) { SG_LOG(SG_INPUT, SG_ALERT, "Not overwriting write-protected property " << node->getPath(true)); @@ -437,6 +438,8 @@ getTypeName (simgear::props::Type type) case props::ALIAS: case props::NONE: return "unspecified"; + default: // avoid compiler warning + break; } // keep the compiler from squawking @@ -599,6 +602,13 @@ writeProperties (const string &file, const SGPropertyNode * start_node, } } +// Another variation, useful when called from gdb +void +writeProperties (const char* file, const SGPropertyNode * start_node) +{ + writeProperties(string(file), start_node, true); +} + //////////////////////////////////////////////////////////////////////// @@ -676,7 +686,7 @@ copyProperties (const SGPropertyNode *in, SGPropertyNode *out) int nChildren = in->nChildren(); for (int i = 0; i < nChildren; i++) { const SGPropertyNode * in_child = in->getChild(i); - SGPropertyNode * out_child = out->getChild(in_child->getName(), + SGPropertyNode * out_child = out->getChild(in_child->getNameString(), in_child->getIndex(), true); if (!copyProperties(in_child, out_child))