]> git.cworth.org Git - apitrace/commitdiff
Add abstractions for (un)setting OS environ variables.
authorJosé Fonseca <jose.r.fonseca@gmail.com>
Fri, 24 Feb 2012 20:33:18 +0000 (20:33 +0000)
committerJosé Fonseca <jose.r.fonseca@gmail.com>
Fri, 24 Feb 2012 20:33:18 +0000 (20:33 +0000)
common/os_process.hpp
common/trace_tools_trace.cpp

index f1dd5172b6cf777b40c5363c4270f71ae11fddd5..ba53408ccb8faa662df5d6f3ed021ce5e7d890f9 100644 (file)
 #define _OS_PROCESS_HPP_
 
 
+#ifdef _WIN32
+#include <windows.h>
+#endif
+
 #include "os.hpp"
 
 
 namespace os {
 
 
+inline void
+setEnvironment(const char *name, const char *value) {
+#ifdef _WIN32
+    SetEnvironmentVariableA(name, value);
+#else
+    setenv(name, value, 1);
+#endif
+}
+
+
+inline void
+unsetEnvironment(const char *name) {
+#ifdef _WIN32
+    SetEnvironmentVariableA(name, NULL);
+#else
+    unsetenv(name);
+#endif
+}
+
+
 int execute(char * const * args);
 
 
index 768fd108d3541eaf1352b09c910b2c4c335bd1ea..dc40896a222fee0968d8bdf4f883b863b9e1c8ed 100644 (file)
@@ -111,10 +111,10 @@ traceProgram(API api,
     }
 
     /* FIXME: Don't modify the current environment */
-    setenv(TRACE_VARIABLE, wrapper.str(), 1);
+    os::setEnvironment(TRACE_VARIABLE, wrapper.str());
 
     if (output) {
-        setenv("TRACE_FILE", output, 1);
+        os::setEnvironment("TRACE_FILE", output);
     }
 
     if (verbose) {
@@ -128,9 +128,9 @@ traceProgram(API api,
 
     int status = os::execute(argv);
 
-    unsetenv(TRACE_VARIABLE);
+    os::unsetEnvironment(TRACE_VARIABLE);
     if (output) {
-        unsetenv("TRACE_FILE");
+        os::unsetEnvironment("TRACE_FILE");
     }
     
     return status;