update for HEAD-2003091401
[reactos.git] / lib / msvcrt / stdlib / getenv.c
1 #include <windows.h>
2 #include <msvcrt/stdlib.h>
3
4 #define NDEBUG
5 #include <msvcrt/msvcrtdbg.h>
6
7
8 /*
9  * @implemented
10  */
11 char *getenv(const char *name)
12 {
13         char *buffer = (char*)0xffffffff;
14         int len = GetEnvironmentVariableA(name,buffer,0) + 1;
15         DPRINT("getenv(%s)\n", name);
16         buffer = (char *)malloc(len);
17         DPRINT("getenv('%s') %d %x\n", name, len, buffer);
18         if (buffer == NULL || GetEnvironmentVariableA(name,buffer,len) == 0 )
19         {
20                 free(buffer);
21                 return NULL;
22         }
23         return buffer;
24 }
25
26 /*
27  * @implemented
28  */
29 wchar_t *_wgetenv(const wchar_t *name)
30 {
31         wchar_t *buffer = (wchar_t*)0xffffffff;
32         int len = GetEnvironmentVariableW(name, buffer,0) + 1;
33         DPRINT("_wgetenv(%S)\n", name);
34         buffer = (wchar_t *)malloc(len * sizeof(wchar_t));
35         if (buffer == NULL || GetEnvironmentVariableW(name,buffer,len) == 0)
36         {
37                 free(buffer);
38                 return NULL;
39         }
40         return buffer;
41 }