From 605c2377adb51f3fc7105ee92c4fb773b26d7f9b Mon Sep 17 00:00:00 2001 From: marha Date: Mon, 31 Jan 2011 13:18:42 +0000 Subject: main should also pass the penv variable --- libwinmain/winmain.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'libwinmain') diff --git a/libwinmain/winmain.c b/libwinmain/winmain.c index 6df140b10..126c19da4 100644 --- a/libwinmain/winmain.c +++ b/libwinmain/winmain.c @@ -6,7 +6,7 @@ #define MAX_CONSOLE_LINES 500 -int main(int argc, char *argv[]); +int main(int argc, char *argv[], char *penv[]); /* Ignore control c and control break signals */ static BOOL WINAPI IgnoreControlC(DWORD dwCtrlType) @@ -72,6 +72,8 @@ int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdL char *argv[MAXNRARGS]; char *pTmp; char *pProgramName; + char **penv; + int Ret; hInstance=hInstance; nCmdShow=nCmdShow; @@ -128,6 +130,22 @@ int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdL break; } } + + { + LPTCH pEnvStrings=GetEnvironmentStrings(); + int NrEnv=0; + penv=malloc(sizeof(*penv)); + while (*pEnvStrings) + { + penv=realloc(penv,(NrEnv+2)*sizeof(*penv)); + penv[NrEnv++]=pEnvStrings; + while (*pEnvStrings) pEnvStrings++; + pEnvStrings++; + } + penv[NrEnv]=NULL; + } - return main(argc,argv); + Ret = main(argc,argv,penv); + free(penv); + return Ret; } -- cgit v1.2.3