From 4821702fb49c72216c307341dc3dfd5a3984cf83 Mon Sep 17 00:00:00 2001 From: bellard Date: Thu, 14 Apr 2005 23:49:21 +0000 Subject: win32 merge --- win32/lib/wincrt1.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 win32/lib/wincrt1.c (limited to 'win32/lib/wincrt1.c') 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 + +#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); +} + -- cgit v1.3.1