Changeset - r25807:f7b79aca19d1
[Not reviewed]
master
0 2 0
Rubidium - 3 years ago 2021-07-10 20:32:35
rubidium@openttd.org
Codechange: use the C++ std::getenv over the POSIX/C getenv

The C++ std::getenv is guaranteed thread-safe by the C++11 specification,
whereas the POSIX/C getenv might not be thread-safe by the C11 specification.
2 files changed with 7 insertions and 7 deletions:
0 comments (0 inline, 0 general)
src/fileio.cpp
Show inline comments
 
@@ -819,13 +819,13 @@ static std::string GetHomeDir()
 
{
 
#ifdef __HAIKU__
 
	BPath path;
 
	find_directory(B_USER_SETTINGS_DIRECTORY, &path);
 
	return std::string(path.Path());
 
#else
 
	const char *home_env = getenv("HOME"); // Stack var, shouldn't be freed
 
	const char *home_env = std::getenv("HOME"); // Stack var, shouldn't be freed
 
	if (home_env != nullptr) return std::string(home_env);
 

	
 
	const struct passwd *pw = getpwuid(getuid());
 
	if (pw != nullptr) return std::string(pw->pw_dir);
 
#endif
 
	return {};
 
@@ -837,13 +837,13 @@ static std::string GetHomeDir()
 
 */
 
void DetermineBasePaths(const char *exe)
 
{
 
	std::string tmp;
 
	const std::string homedir = GetHomeDir();
 
#ifdef USE_XDG
 
	const char *xdg_data_home = getenv("XDG_DATA_HOME");
 
	const char *xdg_data_home = std::getenv("XDG_DATA_HOME");
 
	if (xdg_data_home != nullptr) {
 
		tmp = xdg_data_home;
 
		tmp += PATHSEP;
 
		tmp += PERSONAL_DIR[0] == '.' ? &PERSONAL_DIR[1] : PERSONAL_DIR;
 
		AppendPathSeparator(tmp);
 
		_searchpaths[SP_PERSONAL_DIR_XDG] = tmp;
 
@@ -968,13 +968,13 @@ void DeterminePaths(const char *exe, boo
 
	DetermineBasePaths(exe);
 
	FillValidSearchPaths(only_local_path);
 

	
 
#ifdef USE_XDG
 
	std::string config_home;
 
	const std::string homedir = GetHomeDir();
 
	const char *xdg_config_home = getenv("XDG_CONFIG_HOME");
 
	const char *xdg_config_home = std::getenv("XDG_CONFIG_HOME");
 
	if (xdg_config_home != nullptr) {
 
		config_home = xdg_config_home;
 
		config_home += PATHSEP;
 
		config_home += PERSONAL_DIR[0] == '.' ? &PERSONAL_DIR[1] : PERSONAL_DIR;
 
	} else if (!homedir.empty()) {
 
		/* Defaults to ~/.config */
src/strings.cpp
Show inline comments
 
@@ -1847,24 +1847,24 @@ bool ReadLanguagePack(const LanguageMeta
 
 * @return return string containing current charset, or nullptr if not-determinable
 
 */
 
const char *GetCurrentLocale(const char *param)
 
{
 
	const char *env;
 

	
 
	env = getenv("LANGUAGE");
 
	env = std::getenv("LANGUAGE");
 
	if (env != nullptr) return env;
 

	
 
	env = getenv("LC_ALL");
 
	env = std::getenv("LC_ALL");
 
	if (env != nullptr) return env;
 

	
 
	if (param != nullptr) {
 
		env = getenv(param);
 
		env = std::getenv(param);
 
		if (env != nullptr) return env;
 
	}
 

	
 
	return getenv("LANG");
 
	return std::getenv("LANG");
 
}
 
#else
 
const char *GetCurrentLocale(const char *param);
 
#endif /* !(defined(_WIN32) || defined(__APPLE__)) */
 

	
 
bool StringIDSorter(const StringID &a, const StringID &b)
0 comments (0 inline, 0 general)