From ff454131d5c16195fab4a1f9d148f674424b14a3 Mon Sep 17 00:00:00 2001 From: mfranz Date: Mon, 4 Jun 2007 10:07:31 +0000 Subject: [PATCH] loadxml: if argument "targetnode" isn't defined, return the file data in the argument tree under "data". This is useful in cases where the file data are only needed temporarily and shouldn't remain in the main tree. --- src/Main/fg_commands.cxx | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/Main/fg_commands.cxx b/src/Main/fg_commands.cxx index 2c0f7c23d..3ecb7591c 100644 --- a/src/Main/fg_commands.cxx +++ b/src/Main/fg_commands.cxx @@ -1312,22 +1312,25 @@ do_hud_init2(const SGPropertyNode *) /** * An fgcommand to allow loading of xml files via nasal, * the xml file's structure will be made available within - * a (definable) property tree node + * a property tree node defined under argument "targetnode", + * or in the given argument tree under "data" otherwise. * * @param filename a string to hold the complete path & filename of a XML file * @param targetnode a string pointing to a location within the property tree * where to store the parsed XML file */ -static bool -do_load_xml_to_proptree(const SGPropertyNode * node) +static bool +do_load_xml_to_proptree(const SGPropertyNode * arg) { - // SG_LOG(SG_GENERAL, SG_ALERT, "fgcommand loadxml executed"); + SGPropertyNode *a = const_cast(arg); + SGPropertyNode *targetnode; + if (a->hasValue("targetnode")) + targetnode = fgGetNode(a->getStringValue("targetnode"), true); + else + targetnode = a->getNode("data", true); - SGPropertyNode * targetnode; - targetnode = fgGetNode(node->getNode("targetnode")->getStringValue(),true); - - const char *filename = node->getNode("filename")->getStringValue(); + const char *filename = a->getNode("filename")->getStringValue(); try { fgLoadProps(filename, targetnode); } catch (const sg_exception &e) { @@ -1484,7 +1487,7 @@ static struct { { "hud-init", do_hud_init }, { "hud-init2", do_hud_init2 }, { "loadxml", do_load_xml_to_proptree}, - { "savexml", do_save_xml_from_proptree }, + { "savexml", do_save_xml_from_proptree }, { "press-cockpit-button", do_press_cockpit_button }, { "release-cockpit-button", do_release_cockpit_button }, { "dump-scenegraph", do_dump_scene_graph }, -- 2.39.5