diff options
author | tfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-16 03:34:25 +0000 |
---|---|---|
committer | tfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-16 03:34:25 +0000 |
commit | e9032c6a2ea03e4a5081e0234eff857cf190e3e4 (patch) | |
tree | a9e6ec385829730bc9442579c2fef525d1caf71e /base/env_var.cc | |
parent | 3e108342206210d64d81368044d9503445a1a1f3 (diff) | |
download | chromium_src-e9032c6a2ea03e4a5081e0234eff857cf190e3e4.zip chromium_src-e9032c6a2ea03e4a5081e0234eff857cf190e3e4.tar.gz chromium_src-e9032c6a2ea03e4a5081e0234eff857cf190e3e4.tar.bz2 |
base: Return bool instead of void in EnvVarGetter::SetEnv.
Returning bool instead of void in this function is better, because with that
we can know if we had succeeded when tried to set an environment variable or not.
Also it makes this function more testable.
BUG=None
TEST=out/Debug/base_unittests --gtest_filter=EnvVarTest.*
Signed-off-by: Thiago Farina <tfarina@chromium.org>
Review URL: http://codereview.chromium.org/2891024
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52602 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/env_var.cc')
-rw-r--r-- | base/env_var.cc | 14 |
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 } }; |