Line data Source code
1 : //========= Copyright Valve Corporation ============//
2 : #include "envvartools_public.h"
3 : #include <stdlib.h>
4 :
5 : #if defined(_WIN32)
6 : #include <windows.h>
7 :
8 : #undef GetEnvironmentVariable
9 : #undef SetEnvironmentVariable
10 : #endif
11 :
12 :
13 0 : std::string GetEnvironmentVariable( const char *pchVarName )
14 : {
15 : #if defined(_WIN32)
16 : char rchValue[32767]; // max size for an env var on Windows
17 : DWORD cChars = GetEnvironmentVariableA( pchVarName, rchValue, sizeof( rchValue ) );
18 : if( cChars == 0 )
19 : return "";
20 : else
21 : return rchValue;
22 : #elif defined(POSIX)
23 0 : char *pchValue = getenv( pchVarName );
24 0 : if( pchValue )
25 0 : return pchValue;
26 : else
27 0 : return "";
28 : #else
29 : #error "Unsupported Platform"
30 : #endif
31 : }
32 :
33 :
34 0 : bool SetEnvironmentVariable( const char *pchVarName, const char *pchVarValue )
35 : {
36 : #if defined(_WIN32)
37 : return 0 != SetEnvironmentVariableA( pchVarName, pchVarValue );
38 : #elif defined(POSIX)
39 0 : if( pchVarValue == NULL )
40 0 : return 0 == unsetenv( pchVarName );
41 : else
42 0 : return 0 == setenv( pchVarName, pchVarValue, 1 );
43 : #else
44 : #error "Unsupported Platform"
45 : #endif
46 : }
|