aboutsummaryrefslogtreecommitdiff
path: root/win32/lib/crt1.c
diff options
context:
space:
mode:
Diffstat (limited to 'win32/lib/crt1.c')
-rw-r--r--win32/lib/crt1.c23
1 files changed, 11 insertions, 12 deletions
diff --git a/win32/lib/crt1.c b/win32/lib/crt1.c
index 1e2bd17..a9b1a30 100644
--- a/win32/lib/crt1.c
+++ b/win32/lib/crt1.c
@@ -65,24 +65,23 @@ void _tstart(void)
exit(ret);
}
-void _runtmain(int argc0, /* as tcc passed in */ char **argv0)
+int _runtmain(int argc, /* as tcc passed in */ char **argv)
{
- __TRY__
- int argc, ret;
- _TCHAR **argv;
- _TCHAR **env;
- _startupinfo start_info;
+#ifdef UNICODE
+ int wargc;
+ _TCHAR **wargv, **wenv;
+ _startupinfo start_info = {0};
- __set_app_type(_CONSOLE_APP);
+ __tgetmainargs(&wargc, &wargv, &wenv, _dowildcard, &start_info);
+ if (argc < wargc)
+ wargv += wargc - argc;
+#define argv wargv
+#endif
#ifdef __i386
_controlfp(_PC_53, _MCW_PC);
#endif
-
- start_info.newmode = 0;
- __tgetmainargs( &argc, &argv, &env, _dowildcard, &start_info);
- ret = _tmain(argc0, argv + argc - argc0, env);
- exit(ret);
+ return _tmain(argc, argv, NULL);
}
// =============================================