win32: wincrt1.c: include stdlib.h for exit()
[tinycc.git] / win32 / lib / wincrt1.c
blob77e74b8923e664da98a7c8a87df82ca184f412d4
1 //+---------------------------------------------------------------------------
3 #include <windows.h>
4 #include <stdlib.h>
6 #define __UNKNOWN_APP 0
7 #define __CONSOLE_APP 1
8 #define __GUI_APP 2
9 void __set_app_type(int);
10 void _controlfp(unsigned a, unsigned b);
12 int _winstart(void)
14 __TRY__
15 char *szCmd;
16 STARTUPINFO startinfo;
17 int fShow;
18 int ret;
20 __set_app_type(__GUI_APP);
21 _controlfp(0x10000, 0x30000);
23 szCmd = GetCommandLine();
24 if (szCmd) {
25 while (' ' == *szCmd)
26 szCmd++;
27 if ('\"' == *szCmd) {
28 while (*++szCmd)
29 if ('\"' == *szCmd) {
30 szCmd++;
31 break;
33 } else {
34 while (*szCmd && ' ' != *szCmd)
35 szCmd++;
37 while (' ' == *szCmd)
38 szCmd++;
41 GetStartupInfo(&startinfo);
42 fShow = startinfo.wShowWindow;
43 if (0 == (startinfo.dwFlags & STARTF_USESHOWWINDOW))
44 fShow = SW_SHOWDEFAULT;
46 ret = WinMain(GetModuleHandle(NULL), NULL, szCmd, fShow);
47 exit(ret);
50 int _runwinmain(int argc, char **argv)
52 char *szCmd, *p;
54 p = GetCommandLine();
55 szCmd = NULL;
56 if (argc > 1)
57 szCmd = strstr(p, argv[1]);
58 if (NULL == szCmd)
59 szCmd = "";
60 else if (szCmd > p && szCmd[-1] == '\"')
61 --szCmd;
62 return WinMain(GetModuleHandle(NULL), NULL, szCmd, SW_SHOWDEFAULT);