diff options
| author | bellard <bellard> | 2005-04-14 23:49:21 +0000 |
|---|---|---|
| committer | bellard <bellard> | 2005-04-14 23:49:21 +0000 |
| commit | 4821702fb49c72216c307341dc3dfd5a3984cf83 (patch) | |
| tree | a26b97b558b47f741a1aebdc8a9962dd86b7436b /win32/lib/wincrt1.c | |
| parent | d733dc752e8d19bdebca46678c70d04d4d1f6f76 (diff) | |
| download | tinycc-4821702fb49c72216c307341dc3dfd5a3984cf83.tar.gz tinycc-4821702fb49c72216c307341dc3dfd5a3984cf83.tar.bz2 | |
win32 merge
Diffstat (limited to 'win32/lib/wincrt1.c')
| -rw-r--r-- | win32/lib/wincrt1.c | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/win32/lib/wincrt1.c b/win32/lib/wincrt1.c new file mode 100644 index 0000000..36a313e --- /dev/null +++ b/win32/lib/wincrt1.c @@ -0,0 +1,49 @@ +//+---------------------------------------------------------------------------
+
+#include <windows.h>
+
+#define __UNKNOWN_APP 0
+#define __CONSOLE_APP 1
+#define __GUI_APP 2
+void __set_app_type(int);
+void _controlfp(unsigned a, unsigned b);
+
+int _winstart(void)
+{
+ char *szCmd; STARTUPINFO startinfo;
+
+ __set_app_type(__GUI_APP);
+ _controlfp(0x30000, 0x10000);
+
+ szCmd = GetCommandLine();
+ if (szCmd)
+ {
+ while (' ' == *szCmd) szCmd++;
+ if ('\"' == *szCmd)
+ {
+ while (*++szCmd)
+ if ('\"' == *szCmd) { szCmd++; break; }
+ }
+ else
+ {
+ while (*szCmd && ' ' != *szCmd) szCmd++;
+ }
+ while (' ' == *szCmd) szCmd++;
+ }
+
+ GetStartupInfo(&startinfo);
+ exit(WinMain(GetModuleHandle(NULL), NULL, szCmd,
+ (startinfo.dwFlags & STARTF_USESHOWWINDOW) ?
+ startinfo.wShowWindow : SW_SHOWDEFAULT));
+}
+
+int _runwinmain(int argc, char **argv)
+{
+ char *szCmd = NULL;
+ char *p = GetCommandLine();
+ if (argc > 1) szCmd = strstr(p, argv[1]);
+ if (NULL == szCmd) szCmd = "";
+ else if (szCmd > p && szCmd[-1] == '\"') --szCmd;
+ return WinMain(GetModuleHandle(NULL), NULL, szCmd, SW_SHOWDEFAULT);
+}
+
|
