VLA code minor fix
[tinycc.git] / win32 / lib / wincrt1.c
blobcec75d777c20afc116d9b50fa4b23318b5e6a131
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 #ifndef __TRY__
13 #ifdef _WIN64
14 #define __TRY__
15 #else
16 #define __TRY__ void __try__(void**), *_sehrec[6]; __try__(_sehrec);
17 #endif
18 #endif
20 int _winstart(void)
22 __TRY__
23 char *szCmd;
24 STARTUPINFO startinfo;
25 int fShow;
26 int ret;
28 __set_app_type(__GUI_APP);
29 _controlfp(0x10000, 0x30000);
31 szCmd = GetCommandLine();
32 if (szCmd) {
33 while (' ' == *szCmd)
34 szCmd++;
35 if ('\"' == *szCmd) {
36 while (*++szCmd)
37 if ('\"' == *szCmd) {
38 szCmd++;
39 break;
41 } else {
42 while (*szCmd && ' ' != *szCmd)
43 szCmd++;
45 while (' ' == *szCmd)
46 szCmd++;
49 GetStartupInfo(&startinfo);
50 fShow = startinfo.wShowWindow;
51 if (0 == (startinfo.dwFlags & STARTF_USESHOWWINDOW))
52 fShow = SW_SHOWDEFAULT;
54 ret = WinMain(GetModuleHandle(NULL), NULL, szCmd, fShow);
55 exit(ret);
58 int _runwinmain(int argc, char **argv)
60 char *szCmd, *p;
62 p = GetCommandLine();
63 szCmd = NULL;
64 if (argc > 1)
65 szCmd = strstr(p, argv[1]);
66 if (NULL == szCmd)
67 szCmd = "";
68 else if (szCmd > p && szCmd[-1] == '\"')
69 --szCmd;
70 _controlfp(0x10000, 0x30000);
71 return WinMain(GetModuleHandle(NULL), NULL, szCmd, SW_SHOWDEFAULT);