| /** |
| * This file has no copyright assigned and is placed in the Public Domain. |
| * This file is part of the mingw-w64 runtime package. |
| * No warranty is given; refer to the file DISCLAIMER.PD within this package. |
| */ |
| #include <windows.h> |
| #include <tchar.h> |
| #include <corecrt_startup.h> |
| |
| #ifndef _UNICODE |
| #include <mbctype.h> |
| #endif |
| |
| #define SPACECHAR _T(' ') |
| #define DQUOTECHAR _T('\"') |
| |
| extern IMAGE_DOS_HEADER __ImageBase; |
| |
| int _tmain (int, _TCHAR **, _TCHAR **); |
| int _tmain (int __UNUSED_PARAM(argc), |
| _TCHAR ** __UNUSED_PARAM(argv), |
| _TCHAR ** __UNUSED_PARAM(envp)) |
| { |
| HINSTANCE hInstance; |
| _TCHAR *lpCmdLine; |
| DWORD nShowCmd; |
| |
| hInstance = (HINSTANCE) &__ImageBase; |
| |
| #ifdef _UNICODE |
| lpCmdLine = _wcmdln; |
| #else |
| lpCmdLine = _acmdln; |
| #endif |
| if (lpCmdLine) |
| { |
| BOOL inDoubleQuote = FALSE; |
| while (*lpCmdLine > SPACECHAR || (*lpCmdLine && inDoubleQuote)) |
| { |
| if (*lpCmdLine == DQUOTECHAR) |
| inDoubleQuote = !inDoubleQuote; |
| #ifndef _UNICODE |
| if (_ismbblead (*lpCmdLine)) |
| { |
| if (lpCmdLine[1]) |
| ++lpCmdLine; |
| } |
| #endif |
| ++lpCmdLine; |
| } |
| while (*lpCmdLine && (*lpCmdLine <= SPACECHAR)) |
| lpCmdLine++; |
| } |
| else |
| lpCmdLine = _TEXT(""); |
| |
| { |
| STARTUPINFO StartupInfo; |
| GetStartupInfo (&StartupInfo); |
| if (StartupInfo.dwFlags & STARTF_USESHOWWINDOW) |
| nShowCmd = StartupInfo.wShowWindow; |
| else |
| nShowCmd = SW_SHOWDEFAULT; |
| } |
| |
| return _tWinMain (hInstance, NULL, lpCmdLine, nShowCmd); |
| } |