diff --git a/SystemTools.cxx b/SystemTools.cxx index 0afa7a540a75541934cde31437dc01f872c27b79..30290fa55321440460cd9499cb53279422f96b33 100644 --- a/SystemTools.cxx +++ b/SystemTools.cxx @@ -1918,7 +1918,7 @@ kwsys_stl::string SystemTools::FindProgram( const kwsys_stl::vector<kwsys_stl::string>& userPaths, bool no_system_path) { - if(!nameIn) + if(!nameIn || !*nameIn) { return ""; } @@ -2245,9 +2245,9 @@ bool SystemTools::FindProgramPath(const char* argv0, const char* installPrefix ) { kwsys_stl::vector<kwsys_stl::string> failures; - kwsys_stl::string self = argv0; + kwsys_stl::string self = argv0 ? argv0 : ""; + failures.push_back(self); SystemTools::ConvertToUnixSlashes(self); - failures.push_back(argv0); self = SystemTools::FindProgram(self.c_str()); if(!SystemTools::FileExists(self.c_str())) { @@ -2279,8 +2279,16 @@ bool SystemTools::FindProgramPath(const char* argv0, { failures.push_back(self); kwsys_ios::ostringstream msg; - msg << "Can not find the command line program " << exeName << "\n"; - msg << " argv[0] = \"" << argv0 << "\"\n"; + msg << "Can not find the command line program "; + if (exeName) + { + msg << exeName; + } + msg << "\n"; + if (argv0) + { + msg << " argv[0] = \"" << argv0 << "\"\n"; + } msg << " Attempted paths:\n"; kwsys_stl::vector<kwsys_stl::string>::iterator i; for(i=failures.begin(); i != failures.end(); ++i)