1
0
Fork 0

#348 related: More places where missing files were not reported properly

Whenever resolving a (relative) path to an absolute path with
'resolve_maybe_aircraft_path', check if the result is empty and report original
(relative) path as missing. Otherwise no or a meaningless message is
issued ("File '' not found.").
This commit is contained in:
ThorstenB 2011-07-03 13:06:41 +02:00
parent 979ad55c61
commit 4fd1e219a4
5 changed files with 55 additions and 22 deletions

View file

@ -119,7 +119,12 @@ void FGXMLAutopilotGroupImplementation::initFrom( SGPropertyNode_ptr rootNode, c
}
SGPath config = globals->resolve_maybe_aircraft_path(pathNode->getStringValue());
if (config.isNull())
{
SG_LOG( SG_ALL, SG_ALERT, "Cannot find property-rule configuration file '" << pathNode->getStringValue() << "'." );
}
else
{
SG_LOG( SG_ALL, SG_INFO, "Reading property-rule configuration from " << config.str() );
try {
@ -139,6 +144,7 @@ void FGXMLAutopilotGroupImplementation::initFrom( SGPropertyNode_ptr rootNode, c
}
}
}
}
FGXMLAutopilotGroup * FGXMLAutopilotGroup::createInstance()
{

View file

@ -346,6 +346,11 @@ int HUD::load(const char *file, float x, float y, int level, const string& inden
const int MAXNEST = 10;
SGPath path(globals->resolve_maybe_aircraft_path(file));
if (path.isNull())
{
SG_LOG(SG_INPUT, SG_ALERT, "HUD: Cannot find configuration file '" << file << "'.");
return 0x2;
}
if (!level) {
SG_LOG(SG_INPUT, TREE, endl << "load " << file);
@ -362,7 +367,7 @@ int HUD::load(const char *file, float x, float y, int level, const string& inden
int ret = 0;
ifstream input(path.c_str());
if (!input.good()) {
SG_LOG(SG_INPUT, SG_ALERT, "HUD: Cannot read configuration from " << path.str());
SG_LOG(SG_INPUT, SG_ALERT, "HUD: Cannot read configuration from '" << path.c_str() << "'");
return 0x4;
}

View file

@ -1229,7 +1229,15 @@ do_load_xml_to_proptree(const SGPropertyNode * arg)
std::string icao = arg->getStringValue("icao");
if (icao.empty()) {
if (file.isRelative()) {
file = globals->resolve_maybe_aircraft_path(file.str());
SGPath absPath = globals->resolve_maybe_aircraft_path(file.str());
if (!absPath.isNull())
file = absPath;
else
{
SG_LOG(SG_IO, SG_ALERT, "loadxml: Cannot find XML property file '"
<< file.str() << "'.");
return false;
}
}
} else {
if (!XMLLoader::findAirportData(icao, file.str(), file)) {

View file

@ -187,8 +187,19 @@ static osg::Node* fgCreateSplashCamera()
fgSetString("/sim/startup/program-name", namestring);
delete[] namestring;
SGPath tpath( globals->get_fg_root() );
if (splash_texture == NULL || !strcmp(splash_texture, "")) {
SGPath tpath;
if (splash_texture && strcmp(splash_texture, "")) {
tpath = globals->resolve_maybe_aircraft_path(splash_texture);
if (tpath.isNull())
{
SG_LOG( SG_GENERAL, SG_ALERT, "Cannot find splash screen file '" << splash_texture
<< "'. Using default." );
}
}
if (tpath.isNull()) {
// no splash screen specified - select random image
tpath = globals->get_fg_root();
// load in the texture data
int num = (int)(sg_random() * 5.0 + 1.0);
char num_str[5];
@ -197,8 +208,6 @@ static osg::Node* fgCreateSplashCamera()
tpath.append( "Textures/Splash" );
tpath.concat( num_str );
tpath.concat( ".png" );
} else {
tpath = globals->resolve_maybe_aircraft_path(splash_texture);
}
osg::Texture2D* splashTexture = new osg::Texture2D;

View file

@ -880,8 +880,13 @@ void FGNasalSys::loadPropertyScripts(SGPropertyNode* n)
if (!p.isAbsolute() || !p.exists())
{
p = globals->resolve_maybe_aircraft_path(file);
if (p.isNull())
{
SG_LOG(SG_NASAL, SG_ALERT, "Cannot find Nasal script '" <<
file << "' for module '" << module << "'.");
}
ok &= loadModule(p, module);
}
ok &= p.isNull() ? false : loadModule(p, module);
j++;
}