X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FResourcesManager%2FResourcesManager.cxx;h=6ff79f3fdfc6c659e2debf41ad28b948aa42f733;hb=b3f6bd51caa213b97097ac31c6350c613403720d;hp=687911a5ddb70ccd22993cc30f73233993584b1f;hpb=17bf8eddc16939c593d7a02123c48130ea69cfb0;p=modules%2Fkernel.git diff --git a/src/ResourcesManager/ResourcesManager.cxx b/src/ResourcesManager/ResourcesManager.cxx index 687911a5d..6ff79f3fd 100644 --- a/src/ResourcesManager/ResourcesManager.cxx +++ b/src/ResourcesManager/ResourcesManager.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2019 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -148,17 +148,23 @@ ResourcesManager_cpp::ResourcesManager_cpp() throw(ResourcesException) default_file += "/"; default_file += getenv("APPLI"); default_file += "/CatalogResources.xml"; - _path_resources.push_back(default_file); - } - else - { - if(!getenv("KERNEL_ROOT_DIR")) - throw ResourcesException("you must define KERNEL_ROOT_DIR environment variable!! -> cannot load a CatalogResources.xml"); - default_file = getenv("KERNEL_ROOT_DIR"); - default_file += "/share/salome/resources/kernel/CatalogResources.xml"; - _path_resources.push_back(default_file); + std::ifstream ifile(default_file.c_str(), std::ifstream::in ); + if (ifile) { + // The file exists, and is open for input + _path_resources.push_back(default_file); + default_catalog_resource=false; + } } } + if (default_catalog_resource) + { + std::string default_file(""); + if(!getenv("KERNEL_ROOT_DIR")) + throw ResourcesException("you must define KERNEL_ROOT_DIR environment variable!! -> cannot load a CatalogResources.xml"); + default_file = getenv("KERNEL_ROOT_DIR"); + default_file += "/share/salome/resources/kernel/CatalogResources.xml"; + _path_resources.push_back(default_file); + } ParseXmlFiles(); RES_MESSAGE("ResourcesManager_cpp constructor end"); @@ -616,9 +622,18 @@ void ResourcesManager_cpp::AddDefaultResourceInCatalog() resource.Protocol = sh; resource.Batch = none; #ifndef WIN32 + struct stat statbuf; if (getenv("HOME") != NULL && getenv("APPLI") != NULL) { - resource.AppliPath = string(getenv("HOME")) + "/" + getenv("APPLI"); + if (stat(getenv("APPLI"), &statbuf) ==0 && S_ISREG(statbuf.st_mode)) + { + // if $APPLI is a regular file, we asume it's a salome Launcher file + resource.AppliPath = string(getenv("APPLI")); + } + else + { + resource.AppliPath = string(getenv("HOME")) + "/" + getenv("APPLI"); + } } string tmpdir = "/tmp"; if (getenv("TMPDIR") != NULL)