diff --git a/SystemTools.cxx b/SystemTools.cxx index 2fddfb822c6f38bab17ae67e442e0460677ed880..0113dedba756fd797301e85acc0e6219bbeefd6e 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 94586b0fe41f6a3af7bda7d408051a0e609cd1fd..6fad21721b55672c0f93c81324f860c88ea48d5c 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 6e4b57b86a2cc60e8d7018118f77421cb48e6f05..f2ee12d80c31c50380fb4c3429d7758900a59a12 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)