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 #include "msvcrt/stdlib.h"
15 DEFAULT_DEBUG_CHANNEL(msvcrt);
17 /*********************************************************************
20 char *MSVCRT_getenv(const char *name)
22 char *environ = GetEnvironmentStringsA();
26 for (pp = environ; (*pp); pp = pp + strlen(pp) +1)
33 if (!strncmp(pp,name,length)) break;
40 FreeEnvironmentStringsA( environ );
44 /*********************************************************************
47 WCHAR *_wgetenv(const WCHAR *name)
49 WCHAR* environ = GetEnvironmentStringsW();
50 WCHAR* pp,*pos = NULL;
53 for (pp = environ; (*pp); pp = pp + strlenW(pp) + 1)
55 pos = strrchrW(pp,'=');
60 if (!strncmpW(pp,name,length)) break;
65 TRACE("got %s\n",debugstr_w(pp));
67 FreeEnvironmentStringsW( environ );
71 /*********************************************************************
74 int _putenv(const char *str)
76 char name[256], value[512];
83 while (*str && *str != '=')
93 return !SetEnvironmentVariableA(name, value[0] ? value : NULL);
96 /*********************************************************************
99 int _wputenv(const WCHAR *str)
101 WCHAR name[256], value[512];
104 TRACE("%s\n", debugstr_w(str));
108 while (*str && *str != (WCHAR)L'=')
118 return !SetEnvironmentVariableW(name, value[0] ? value : NULL);