Index: third_party/openvr/src/src/vrcommon/envvartools_public.cpp |
diff --git a/third_party/openvr/src/src/vrcommon/envvartools_public.cpp b/third_party/openvr/src/src/vrcommon/envvartools_public.cpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..987bceb0257e41501f86b607cf792199fbe9081a |
--- /dev/null |
+++ b/third_party/openvr/src/src/vrcommon/envvartools_public.cpp |
@@ -0,0 +1,46 @@ |
+//========= Copyright Valve Corporation ============// |
+#include "envvartools_public.h" |
+#include <stdlib.h> |
+ |
+#if defined(_WIN32) |
+#include <Windows.h> |
+ |
+#undef GetEnvironmentVariable |
+#undef SetEnvironmentVariable |
+#endif |
+ |
+ |
+std::string GetEnvironmentVariable( const char *pchVarName ) |
+{ |
+#if defined(_WIN32) |
+ char rchValue[32767]; // max size for an env var on Windows |
+ DWORD cChars = GetEnvironmentVariableA( pchVarName, rchValue, sizeof( rchValue ) ); |
+ if( cChars == 0 ) |
+ return ""; |
+ else |
+ return rchValue; |
+#elif defined(POSIX) |
+ char *pchValue = getenv( pchVarName ); |
+ if( pchValue ) |
+ return pchValue; |
+ else |
+ return ""; |
+#else |
+#error "Unsupported Platform" |
+#endif |
+} |
+ |
+ |
+bool SetEnvironmentVariable( const char *pchVarName, const char *pchVarValue ) |
+{ |
+#if defined(_WIN32) |
+ return 0 != SetEnvironmentVariableA( pchVarName, pchVarValue ); |
+#elif defined(POSIX) |
+ if( pchVarValue == NULL ) |
+ return 0 == unsetenv( pchVarName ); |
+ else |
+ return 0 == setenv( pchVarName, pchVarValue, 1 ); |
+#else |
+#error "Unsupported Platform" |
+#endif |
+} |