X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7d33179be4d36ceb6cccb3fe3718e7d2cddcc200..bdce924e121ae7340a0106682dc5bc672d56f59e:/src/msw/utils.cpp?ds=inline diff --git a/src/msw/utils.cpp b/src/msw/utils.cpp index 634668dd77..3d64ac1705 100644 --- a/src/msw/utils.cpp +++ b/src/msw/utils.cpp @@ -457,6 +457,47 @@ bool wxDirExists(const wxString& dir) #endif // Win32/16 } +// ---------------------------------------------------------------------------- +// env vars +// ---------------------------------------------------------------------------- + +bool wxGetEnv(const wxString& var, wxString *value) +{ + // first get the size of the buffer + DWORD dwRet = ::GetEnvironmentVariable(var, NULL, 0); + if ( !dwRet ) + { + // this means that there is no such variable + return FALSE; + } + + if ( value ) + { + (void)::GetEnvironmentVariable(var, value->GetWriteBuf(dwRet), dwRet); + value->UngetWriteBuf(); + } + + return TRUE; +} + +bool wxSetEnv(const wxString& var, const wxChar *value) +{ + // some compilers have putenv() or _putenv() or _wputenv() but it's better + // to always use Win32 function directly instead of dealing with them +#if defined(__WIN32__) + if ( !::SetEnvironmentVariable(var, value) ) + { + wxLogLastError(_T("SetEnvironmentVariable")); + + return FALSE; + } + + return TRUE; +#else // no way to set env vars + return FALSE; +#endif +} + // ---------------------------------------------------------------------------- // process management // ----------------------------------------------------------------------------