1 // winmain.cpp : Defines the entry point for the application.
3 // $ANH-Date: 1432512799 2015/05/25 00:13:19 $ $ANH-Branch: master $:$ANH-Revision: 1.5 $
8 #define MAX_CMDLINE_PARAM 255
10 extern int FDECL(main
, (int, char **));
11 static TCHAR
*_get_cmd_arg(TCHAR
*pCmdLine
);
14 WinMain(HINSTANCE hInstance
, HINSTANCE hPrevInstance
, LPWSTR lpCmdLine
,
18 char *argv
[MAX_CMDLINE_PARAM
];
21 TCHAR wbuf
[NHSTR_BUFSIZE
];
22 char buf
[NHSTR_BUFSIZE
];
24 /* get command line parameters */
26 #if defined(WIN_CE_PS2xx) || defined(WIN32_PLATFORM_HPCPRO)
32 for (argc
= 1; p
&& argc
< MAX_CMDLINE_PARAM
; argc
++) {
35 argv
[argc
] = _strdup(NH_W2A(p
, buf
, BUFSZ
));
39 p
= _get_cmd_arg(NULL
);
41 GetModuleFileName(NULL
, wbuf
, BUFSZ
);
42 argv
[0] = _strdup(NH_W2A(wbuf
, buf
, BUFSZ
));
50 _get_cmd_arg(TCHAR
*pCmdLine
)
52 static TCHAR
*pArgs
= NULL
;
56 if (!pCmdLine
&& !pArgs
)
62 for (pRetArg
= pArgs
; *pRetArg
&& _istspace(*pRetArg
);
63 pRetArg
= CharNext(pRetArg
))
71 if (*pRetArg
== TEXT('"')) {
73 pRetArg
= CharNext(pRetArg
);
74 pArgs
= _tcschr(pRetArg
, TEXT('"'));
76 /* skip to whitespace */
77 for (pArgs
= pRetArg
; *pArgs
&& !_istspace(*pArgs
);
78 pArgs
= CharNext(pArgs
))
82 if (pArgs
&& *pArgs
) {
85 pArgs
= CharNext(pArgs
);
95 char lowc(c
) /* force 'c' into lowercase */
98 return ((char) (('A' <= c
&& c
<= 'Z') ? (c
| 040) : c
));
101 int strncmpi(s1
, s2
, n
) /* case insensitive counted string comparison */
102 register const char *s1
, *s2
;
103 register int n
; /*(should probably be size_t, which is usually unsigned)*/
104 { /*{ aka strncasecmp }*/
105 register char t1
, t2
;
109 return (*s1
!= 0); /* s1 >= s2 */
111 return -1; /* s1 < s2 */
115 return (t1
> t2
) ? 1 : -1;
117 return 0; /* s1 == s2 */
119 #endif /* STRNCMPI */