Here's an update to what I've discovered - hopefully someone can give me a hint on some questions I have.
First, I've added some output statements in easyxml.cxx, in this version of the readXML() function: ------------------- ------ start ------ ------------------- void readXML (istream &input, XMLVisitor &visitor, const string &path) { XML_Parser parser = XML_ParserCreate(0); XML_SetUserData(parser, &visitor); XML_SetElementHandler(parser, start_element, end_element); XML_SetCharacterDataHandler(parser, character_data); XML_SetProcessingInstructionHandler(parser, processing_instruction); visitor.startXML(); char buf[16384]; while (!input.eof()) { cout << "A-1" << endl; if (!input.good()) { cout << "A-2" << endl; XML_ParserFree(parser); cout << "A-3" << endl; throw sg_io_exception("Problem reading file", sg_location(path, XML_GetCurrentLineNumber(parser), XML_GetCurrentColumnNumber(parser)), "SimGear XML Parser"); cout << "A-4" << endl; } ------------------- ------ end ------ ------------------- The above code fails when called from the JSBSim Load() function on FGPropulsion (simplified): ------------------- ------ start ------ ------------------- Element* engine_element = el->FindElement("engine"); while (engine_element) { engine_filename = engine_element->GetAttributeValue("file"); ... engine_file_parser = new FGXMLParse(); engine_filename = FindEngineFullPathname(engine_filename); readXML(engine_filename, *engine_file_parser); ... Element* engine_element = el->FindNextElement("engine"); } ------------------- ------ end ------ ------------------- When I run FlightGear I get this: A-1 A-2 A-3 FlightGear aborting And that's all I get. I'm wondering why I don't get a message from the thrown simgear exception? Why would input.good() return false? Let me restate that this all works fine in JSBSim standalone. Jon _______________________________________________ Flightgear-devel mailing list Flightgear-devel@flightgear.org http://mail.flightgear.org/mailman/listinfo/flightgear-devel 2f585eeea02e2c79d7b1d8c4963bae2d