summaryrefslogtreecommitdiffstats
path: root/base/env_var.cc
diff options
context:
space:
mode:
Diffstat (limited to 'base/env_var.cc')
-rw-r--r--base/env_var.cc14
1 files changed, 8 insertions, 6 deletions
diff --git a/base/env_var.cc b/base/env_var.cc
index bcdadb9..086191e 100644
--- a/base/env_var.cc
+++ b/base/env_var.cc
@@ -40,8 +40,8 @@ class EnvVarGetterImpl : public base::EnvVarGetter {
return GetEnvImpl(alternate_case_var.c_str(), result);
}
- virtual void SetEnv(const char* variable_name, const std::string& new_value) {
- SetEnvImpl(variable_name, new_value);
+ virtual bool SetEnv(const char* variable_name, const std::string& new_value) {
+ return SetEnvImpl(variable_name, new_value);
}
private:
@@ -71,12 +71,14 @@ class EnvVarGetterImpl : public base::EnvVarGetter {
#endif
}
- void SetEnvImpl(const char* variable_name, const std::string& new_value) {
+ bool SetEnvImpl(const char* variable_name, const std::string& new_value) {
#if defined(OS_POSIX)
- setenv(variable_name, new_value.c_str(), 1);
+ // On success, zero is returned.
+ return setenv(variable_name, new_value.c_str(), 1) == 0;
#elif defined(OS_WIN)
- ::SetEnvironmentVariable(ASCIIToWide(variable_name).c_str(),
- ASCIIToWide(new_value).c_str());
+ // On success, a nonzero is returned.
+ return ::SetEnvironmentVariable(ASCIIToWide(variable_name).c_str(),
+ ASCIIToWide(new_value).c_str()) != 0;
#endif
}
};