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);