From: José Fonseca Date: Fri, 24 Feb 2012 20:33:18 +0000 (+0000) Subject: Add abstractions for (un)setting OS environ variables. X-Git-Url: https://git.cworth.org/git?a=commitdiff_plain;h=22bcfce98768700048c57f72d6396306ca3b99dd;p=apitrace Add abstractions for (un)setting OS environ variables. --- diff --git a/common/os_process.hpp b/common/os_process.hpp index f1dd517..ba53408 100644 --- a/common/os_process.hpp +++ b/common/os_process.hpp @@ -31,12 +31,36 @@ #define _OS_PROCESS_HPP_ +#ifdef _WIN32 +#include +#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); diff --git a/common/trace_tools_trace.cpp b/common/trace_tools_trace.cpp index 768fd10..dc40896 100644 --- a/common/trace_tools_trace.cpp +++ b/common/trace_tools_trace.cpp @@ -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;