aboutsummaryrefslogtreecommitdiff
path: root/win32/lib/wincrt1.c
diff options
context:
space:
mode:
authorgrischka <grischka>2017-02-18 09:51:23 +0100
committergrischka <grischka>2017-02-18 09:51:23 +0100
commit096125d963400951e0f160ced86416ef8c9c98b0 (patch)
treec0fb4737ba1cf421032e28925f9aef6c140d97aa /win32/lib/wincrt1.c
parent39b2afeb7c5c7de9a6c6457b5a4ec102d4e364b1 (diff)
downloadtinycc-096125d963400951e0f160ced86416ef8c9c98b0.tar.gz
tinycc-096125d963400951e0f160ced86416ef8c9c98b0.tar.bz2
win32: adjust new unicode support
- lib/Makefile: add (win)crt1_w.o - crt1.c/_runtmain: return to tcc & only use for UNICODE (because it might be not 100% reliable with for example wildcards (tcc *.c -run ...) - tccrun.c/tccpe.c: load -run startup_code only if called from tcc_run(). Otherwise main may not be defined. See libtcc_test.c - tests2/Makefile: pass extra options in FLAGS to allow overriding TCC Also: - tccpe.c: support weak attribute. (I first tried to solve the problem above by using it but then didn't)
Diffstat (limited to 'win32/lib/wincrt1.c')
-rw-r--r--win32/lib/wincrt1.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/win32/lib/wincrt1.c b/win32/lib/wincrt1.c
index 06f42f0..a4197bb 100644
--- a/win32/lib/wincrt1.c
+++ b/win32/lib/wincrt1.c
@@ -68,22 +68,25 @@ int _twinstart(void)
exit(ret);
}
-int _runtwinmain(int argc0, /* as tcc passed in */ char **argv0)
+int _runtwinmain(int argc, /* as tcc passed in */ char **argv)
{
_TCHAR *szCmd, *p;
- int argc;
- _TCHAR **argv;
- _TCHAR **env;
- _startupinfo start_info;
+#ifdef UNICODE
+ int wargc;
+ _TCHAR **wargv, **wenv;
+ _startupinfo start_info = {0};
- start_info.newmode = 0;
- __tgetmainargs(&argc, &argv, &env, 0, &start_info);
+ __tgetmainargs(&wargc, &wargv, &wenv, 0, &start_info);
+ if (argc < wargc)
+ wargv += wargc - argc;
+#define argv wargv
+#endif
p = GetCommandLine();
szCmd = NULL;
- if (argc0 > 1)
- szCmd = _tcsstr(p, argv[argc - argc0 + 1]);
+ if (argc > 1)
+ szCmd = _tcsstr(p, argv[1]);
if (NULL == szCmd)
szCmd = __T("");
else if (szCmd > p && szCmd[-1] == __T('\"'))