1b9a9d97f6ed61a535c31d754db3d610ba22ff64
2 #include <crtdll/stdlib.h>
3 #include <crtdll/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]);