aboutsummaryrefslogtreecommitdiff
path: root/winsup/cygwin/libcmain.cc
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/libcmain.cc')
-rw-r--r--winsup/cygwin/libcmain.cc34
1 files changed, 34 insertions, 0 deletions
diff --git a/winsup/cygwin/libcmain.cc b/winsup/cygwin/libcmain.cc
new file mode 100644
index 0000000..a8ae341
--- /dev/null
+++ b/winsup/cygwin/libcmain.cc
@@ -0,0 +1,34 @@
+/* libcmain.cc
+
+ Copyright 1996, 1997, 1998 Cygnus Solutions.
+
+This file is part of Cygwin.
+
+This software is a copyrighted work licensed under the terms of the
+Cygwin license. Please consult the file "CYGWIN_LICENSE" for
+details. */
+
+#include <windows.h>
+
+/* Allow apps which don't have a main work, as long as they define WinMain */
+extern "C" int main ()
+{
+ HMODULE x = GetModuleHandleA(0);
+ char *s = GetCommandLineA ();
+ STARTUPINFO si;
+
+ /* GetCommandLineA returns the entire command line including the
+ program name, but WinMain is defined to accept the command
+ line without the program name. */
+ while (*s != ' ' && *s != '\0')
+ ++s;
+ while (*s == ' ')
+ ++s;
+
+ GetStartupInfo (&si);
+
+ WinMain (x, 0, s,
+ ((si.dwFlags & STARTF_USESHOWWINDOW) != 0
+ ? si.wShowWindow
+ : SW_SHOWNORMAL));
+}