mirror of
https://github.com/RetroDECK/ES-DE.git
synced 2024-11-22 14:15:38 +00:00
Fix getHomePath crash when the environment variable isn't set
This commit is contained in:
parent
6f44ef9011
commit
33086042f9
|
@ -143,21 +143,24 @@ namespace Utils
|
|||
if(!path.length())
|
||||
{
|
||||
// this should give us something like "/home/YOUR_USERNAME" on Linux and "C:/Users/YOUR_USERNAME/" on Windows
|
||||
std::string envHome(getenv("HOME"));
|
||||
if(envHome.length())
|
||||
char* envHome = getenv("HOME");
|
||||
if(envHome)
|
||||
path = getGenericPath(envHome);
|
||||
|
||||
#if defined(_WIN32)
|
||||
// but does not seem to work for Windows XP or Vista, so try something else
|
||||
if(!path.length())
|
||||
{
|
||||
std::string envDir(getenv("HOMEDRIVE"));
|
||||
std::string envPath(getenv("HOMEPATH"));
|
||||
if(envDir.length() && envPath.length())
|
||||
path = getGenericPath(envDir + "/" + envPath);
|
||||
char* envHomeDrive = getenv("HOMEDRIVE");
|
||||
char* envHomePath = getenv("HOMEPATH");
|
||||
if(envHomeDrive && envHomePath)
|
||||
path = getGenericPath(std::string(envHomeDrive) + "/" + envHomePath);
|
||||
}
|
||||
#endif // _WIN32
|
||||
|
||||
// no homepath found, fall back to current working directory
|
||||
if(!path.length())
|
||||
path = getCWDPath();
|
||||
}
|
||||
|
||||
// return constructed homepath
|
||||
|
|
Loading…
Reference in a new issue