diff --git a/Common/GmshMessage.cpp b/Common/GmshMessage.cpp index 82ff04fbaf0b834e844e08cc56c6f88c09b45af3..fdaceec11d956e98dd063feabe3b9b2d028538d9 100644 --- a/Common/GmshMessage.cpp +++ b/Common/GmshMessage.cpp @@ -78,6 +78,24 @@ static int vsnprintf(char *str, size_t size, const char *fmt, va_list ap) #define vsnprintf _vsnprintf #endif +static void addGmshPathToEnvironmentVar(const std::string &name) +{ + std::vector<std::string> split = SplitFileName(CTX::instance()->argv0); + std::string path; + char *tmp = getenv(name.c_str()); + if(tmp){ + path = tmp; +#if defined(WIN32) + path += ";" + split[0]; +#else + path += ":" + split[0]; +#endif + } + else + path = split[0]; + SetEnvironmentVar(name.c_str(), path.c_str()); +} + void Msg::Init(int argc, char **argv) { #if defined(HAVE_MPI) @@ -116,23 +134,10 @@ void Msg::Init(int argc, char **argv) if(argc && argv){ CTX::instance()->argv0 = std::string(argv[0]); - std::vector<std::string> split = SplitFileName(CTX::instance()->argv0); - // add the directory where the binary is installed to the path where Python // looks for modules - std::string path; - char *tmp = getenv("PYTHONPATH"); - if(tmp){ - path = tmp; -#if defined(WIN32) - path += ";" + split[0]; -#else - path += ":" + split[0]; -#endif - } - else - path = split[0]; - SetEnvironmentVar("PYTHONPATH", path.c_str()); + addGmshPathToEnvironmentVar("PYTHONPATH"); + addGmshPathToEnvironmentVar("PATH"); } InitializeOnelab("Gmsh");