summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/lib/libcmain.c
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/lib/libcmain.c')
-rw-r--r--winsup/cygwin/lib/libcmain.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/winsup/cygwin/lib/libcmain.c b/winsup/cygwin/lib/libcmain.c
new file mode 100644
index 000000000..c2b3ef0d3
--- /dev/null
+++ b/winsup/cygwin/lib/libcmain.c
@@ -0,0 +1,35 @@
+/* libcmain.c
+
+ Copyright 1996, 1997, 1998, 2000 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 */
+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);
+
+ return WinMain (x, 0, s,
+ ((si.dwFlags & STARTF_USESHOWWINDOW) != 0
+ ? si.wShowWindow
+ : SW_SHOWNORMAL));
+}