--- RHSrvAny/RHSrvAny.c | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/RHSrvAny/RHSrvAny.c b/RHSrvAny/RHSrvAny.c index 12d9884..0aa9470 100644 --- a/RHSrvAny/RHSrvAny.c +++ b/RHSrvAny/RHSrvAny.c @@ -61,14 +61,30 @@ argument_error (const char *msg) return EXIT_FAILURE; } +static int compat_tmain (int argc, TCHAR *argv[]); + +#ifdef __MINGW32__ int -main (int argc, char **a_argv) +main (int argc, char **argv) { - /* For compatibility with MinGW, see: - http://demosten-eng.blogspot.com/2008/08/mingw-and-unicode-support.html */ - TCHAR **argv; - argv = CommandLineToArgvW (GetCommandLineW (), &argc); +#ifdef UNICODE + TCHAR **w_argv = CommandLineToArgvW(GetCommandLineW(), &argc); + return compat_tmain(argc, w_argv); +#else + return compat_tmain(argc, argv); +#endif +} +#else +int +_tmain(int argc, TCHAR *argv[]) +{ + return compat_tmain(argc, argv); +} +#endif +static int +compat_tmain (int argc, TCHAR *argv[]) +{ size_t i; for (i = 1; i < argc; i++) { TCHAR *arg = argv[i]; -- 1.8.3.1