From 743eb4dd810fa2cf215fd9b8a1ebe62318580c26 Mon Sep 17 00:00:00 2001 From: Bill Hoffman <bill.hoffman@kitware.com> Date: Fri, 5 Jun 2009 12:01:30 -0400 Subject: [PATCH] ENH: move PutEnv to SystemTools --- SystemTools.cxx | 27 +++++++++++++++++++++++++++ SystemTools.hxx.in | 4 ++++ kwsysDateStamp.cmake | 4 ++-- 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/SystemTools.cxx b/SystemTools.cxx index 2fddfb8..0113ded 100644 --- a/SystemTools.cxx +++ b/SystemTools.cxx @@ -402,6 +402,33 @@ bool SystemTools::GetEnv(const char* key, kwsys_stl::string& result) } } +class kwsysDeletingCharVector : public kwsys_stl::vector<char*> +{ +public: + ~kwsysDeletingCharVector() + { + for(kwsys_stl::vector<char*>::iterator i = this->begin(); + i != this->end(); ++i) + { + delete []*i; + } + } +}; + + +bool SystemTools::PutEnv(const char* value) +{ + static kwsysDeletingCharVector localEnvironment; + char* envVar = new char[strlen(value)+1]; + strcpy(envVar, value); + int ret = putenv(envVar); + // save the pointer in the static vector so that it can + // be deleted on exit + localEnvironment.push_back(envVar); + return ret == 0; +} + + const char* SystemTools::GetExecutableExtension() { #if defined(_WIN32) || defined(__CYGWIN__) diff --git a/SystemTools.hxx.in b/SystemTools.hxx.in index 94586b0..6fad217 100644 --- a/SystemTools.hxx.in +++ b/SystemTools.hxx.in @@ -754,6 +754,10 @@ public: static const char* GetEnv(const char* key); static bool GetEnv(const char* key, kwsys_stl::string& result); + /** Put a string into the environment + of the form var=value */ + static bool PutEnv(const char* value); + /** * Get current working directory CWD */ diff --git a/kwsysDateStamp.cmake b/kwsysDateStamp.cmake index 6e4b57b..f2ee12d 100644 --- a/kwsysDateStamp.cmake +++ b/kwsysDateStamp.cmake @@ -4,7 +4,7 @@ SET(KWSYS_DATE_STAMP_YEAR 2009) # KWSys version date month component. Format is MM. -SET(KWSYS_DATE_STAMP_MONTH 05) +SET(KWSYS_DATE_STAMP_MONTH 06) # KWSys version date day component. Format is DD. -SET(KWSYS_DATE_STAMP_DAY 20) +SET(KWSYS_DATE_STAMP_DAY 05) -- GitLab