Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2347)

Unified Diff: base/env_var.cc

Issue 3043018: base: Add UnSetEnv function to EnvVarGetter API. (Closed) Base URL: git://git.chromium.org/chromium.git
Patch Set: Created 10 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: base/env_var.cc
diff --git a/base/env_var.cc b/base/env_var.cc
index d0eaa0c6844268a0aa38cbdbca58399723200d26..71d9c53b1ca6ff1bf63bcad2f098feac3a10b551 100644
--- a/base/env_var.cc
+++ b/base/env_var.cc
@@ -44,6 +44,10 @@ class EnvVarGetterImpl : public base::EnvVarGetter {
return SetEnvImpl(variable_name, new_value);
}
+ virtual bool UnSetEnv(const char* variable_name) {
+ return UnSetEnvImpl(variable_name);
+ }
+
private:
bool GetEnvImpl(const char* variable_name, std::string* result) {
#if defined(OS_POSIX)
@@ -81,6 +85,17 @@ class EnvVarGetterImpl : public base::EnvVarGetter {
ASCIIToWide(new_value).c_str()) != 0;
#endif
}
+
+ bool UnSetEnvImpl(const char* variable_name) {
+#if defined(OS_POSIX)
+ // On success, zero is returned.
+ return unsetenv(variable_name) == 0;
+#elif defined(OS_WIN)
+ // On success, a nonzero is returned.
+ return ::SetEnvironmentVariable(ASCIIToWide(variable_name).c_str(),
+ NULL) != 0;
+#endif
+ }
};
} // namespace
@@ -99,13 +114,13 @@ const char kHome[] = "HOME";
EnvVarGetter::~EnvVarGetter() {}
-bool EnvVarGetter::HasEnv(const char* variable_name) {
- return GetEnv(variable_name, NULL);
-}
-
// static
EnvVarGetter* EnvVarGetter::Create() {
return new EnvVarGetterImpl();
}
+bool EnvVarGetter::HasEnv(const char* variable_name) {
+ return GetEnv(variable_name, NULL);
+}
+
} // namespace base

Powered by Google App Engine
This is Rietveld 408576698