2 * msvcrt.dll environment functions
4 * Copyright 1996,1998 Marcus Meissner
5 * Copyright 1996 Jukka Iivonen
6 * Copyright 1997,2000 Uwe Bonnes
7 * Copyright 2000 Jon Griffiths
9 #include "wine/unicode.h"
12 DEFAULT_DEBUG_CHANNEL(msvcrt
);
14 LPWSTR __cdecl
wcsrchr( LPWSTR str
, WCHAR ch
);
16 /*********************************************************************
19 char *__cdecl
MSVCRT_getenv(const char *name
)
21 char *environ
= GetEnvironmentStringsA();
25 for (pp
= environ
; (*pp
); pp
= pp
+ strlen(pp
) +1)
32 if (!strncmp(pp
,name
,length
)) break;
39 FreeEnvironmentStringsA( environ
);
43 /*********************************************************************
46 WCHAR
*__cdecl
MSVCRT__wgetenv(const WCHAR
*name
)
48 WCHAR
* environ
= GetEnvironmentStringsW();
49 WCHAR
* pp
,*pos
= NULL
;
52 for (pp
= environ
; (*pp
); pp
= pp
+ strlenW(pp
) + 1)
59 if (!strncmpW(pp
,name
,length
)) break;
64 TRACE("got %s\n",debugstr_w(pp
));
66 FreeEnvironmentStringsW( environ
);
70 /*********************************************************************
73 int __cdecl
MSVCRT__putenv(const char *str
)
75 char name
[256], value
[512];
82 while (*str
&& *str
!= '=')
92 return !SetEnvironmentVariableA(name
, value
[0] ? value
: NULL
);
95 /*********************************************************************
98 int __cdecl
MSVCRT__wputenv(const WCHAR
*str
)
100 WCHAR name
[256], value
[512];
103 TRACE("%s\n", debugstr_w(str
));
107 while (*str
&& *str
!= (WCHAR
)L
'=')
117 return !SetEnvironmentVariableW(name
, value
[0] ? value
: NULL
);