File: libcmain.c

package info (click to toggle)
libnewlib-nano 2.11.2-1
  • links: PTS
  • area: main
  • in suites: buster
  • size: 114,156 kB
  • sloc: ansic: 631,393; cpp: 129,053; makefile: 62,427; asm: 49,042; sh: 15,817; xml: 15,337; perl: 4,340; lisp: 720; python: 557; exp: 470; yacc: 315; awk: 25; tcl: 4
file content (41 lines) | stat: -rw-r--r-- 840 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/* libcmain.c

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>

#define SP " \t\n"

/* Allow apps which don't have a main to work, as long as they define WinMain */
int
main ()
{
  HMODULE x = GetModuleHandle (0);
  char *s = GetCommandLine ();
  STARTUPINFO si;
  char *nexts;

  s += strspn (s, SP);

  if (*s != '"')
    nexts = strpbrk (s, SP);
  else
    while ((nexts = strchr (s + 1, '"')) != NULL && nexts[-1] == '\\')
      s = nexts;

  if (!nexts)
    nexts = strchr (s, '\0');
  else if (*++nexts)
    nexts += strspn (nexts, SP);

  GetStartupInfo (&si);

  return WinMain (x, 0, nexts,
		  ((si.dwFlags & STARTF_USESHOWWINDOW) != 0
		   ? si.wShowWindow
		   : SW_SHOWNORMAL));
}