diff --git a/dtool/src/dtoolutil/executionEnvironment.I b/dtool/src/dtoolutil/executionEnvironment.I index d31122dd30..cf1ce5f493 100644 --- a/dtool/src/dtoolutil/executionEnvironment.I +++ b/dtool/src/dtoolutil/executionEnvironment.I @@ -40,6 +40,17 @@ get_environment_variable(const string &var) { return get_ptr()->ns_get_environment_variable(var); } +//////////////////////////////////////////////////////////////////// +// Function: ExecutionEnvironment::set_environment_variable +// Access: Public, Static +// Description: Changes the definition of the indicated environment +// variable. +//////////////////////////////////////////////////////////////////// +INLINE void ExecutionEnvironment:: +set_environment_variable(const string &var, const string &value) { + return get_ptr()->ns_set_environment_variable(var, value); +} + //////////////////////////////////////////////////////////////////// // Function: ExecutionEnvironment::get_num_args // Access: Public, Static diff --git a/dtool/src/dtoolutil/executionEnvironment.cxx b/dtool/src/dtoolutil/executionEnvironment.cxx index 6d6533f077..199ea1fb3a 100644 --- a/dtool/src/dtoolutil/executionEnvironment.cxx +++ b/dtool/src/dtoolutil/executionEnvironment.cxx @@ -195,6 +195,19 @@ ns_get_environment_variable(const string &var) const { #endif } +//////////////////////////////////////////////////////////////////// +// Function: ExecutionEnvironment::ns_set_environment_variable +// Access: Private +// Description: Changes the definition of the indicated environment +// variable. The nonstatic implementation. +//////////////////////////////////////////////////////////////////// +void ExecutionEnvironment:: +ns_set_environment_variable(const string &var, const string &value) { + _variables[var] = value; + string put = var + "=" + value; + putenv(put.c_str()); +} + //////////////////////////////////////////////////////////////////// // Function: ExecutionEnvironment::ns_get_num_args // Access: Private diff --git a/dtool/src/dtoolutil/executionEnvironment.h b/dtool/src/dtoolutil/executionEnvironment.h index ac40ef0ab8..d8a9f079ff 100644 --- a/dtool/src/dtoolutil/executionEnvironment.h +++ b/dtool/src/dtoolutil/executionEnvironment.h @@ -41,6 +41,7 @@ private: public: INLINE static bool has_environment_variable(const string &var); INLINE static string get_environment_variable(const string &var); + INLINE static void set_environment_variable(const string &var, const string &value); static string expand_string(const string &str); @@ -54,6 +55,7 @@ public: private: bool ns_has_environment_variable(const string &var) const; string ns_get_environment_variable(const string &var) const; + void ns_set_environment_variable(const string &var, const string &value); int ns_get_num_args() const; string ns_get_arg(int n) const;