2 #include <msvcrt/stdlib.h>
3 #include <msvcrt/string.h>
8 unsigned int _commode_dll;
9 unsigned int _winmajor_dll;
10 unsigned int _winminor_dll;
11 unsigned int _winver_dll;
14 unsigned int _osmajor_dll;
15 unsigned int _osminor_dll;
16 unsigned int _osmode_dll;
17 unsigned int _osver_dll;
18 unsigned int _osversion_dll;
20 unsigned int _basemajor_dll;
21 unsigned int _baseminor_dll;
22 unsigned int _baseversion_dll;
29 char **__argv = xargv;
31 int *__argc_dll = &__argc;
32 char ***__argv_dll = &__argv;
38 char *** _environ_dll = &_environ;
39 static int envAlloced = 0;
42 int BlockEnvToEnviron()
49 _environ = malloc (envAlloced * sizeof (char **));
50 if (!_environ) return -1;
53 ptr = (char *)GetEnvironmentStringsA();
55 for (i = 0 ; *ptr ; i++)
60 _environ = realloc (_environ,envAlloced * sizeof (char **));
70 int __GetMainArgs(int *argc,char ***argv,char ***env,int flag)
75 _acmdln_dll = GetCommandLineA();
77 version = GetVersion();
78 _osver_dll = version >> 16;
79 _winminor_dll = version & 0xFF;
80 _winmajor_dll = (version>>8) & 0xFF;
81 _winver_dll = ((version >> 8) & 0xFF) + ((version & 0xFF) << 8);
84 /* missing threading init */
90 while (_acmdln_dll[i])
92 if (_acmdln_dll[i]==' ')
96 __argv[__argc-1] = strdup(_acmdln_dll + afterlastspace);
99 while (_acmdln_dll[i]==' ')
109 if (_acmdln_dll[afterlastspace] != 0)
113 __argv[__argc-1] = strdup(_acmdln_dll+afterlastspace);
115 HeapValidate(GetProcessHeap(),0,NULL);
117 if( BlockEnvToEnviron() )
119 _environ_dll = &_environ;
125 _pgmptr_dll = strdup((char *)argv[0]);