diff options
| author | grischka <grischka> | 2017-02-18 09:51:23 +0100 |
|---|---|---|
| committer | grischka <grischka> | 2017-02-18 09:51:23 +0100 |
| commit | 096125d963400951e0f160ced86416ef8c9c98b0 (patch) | |
| tree | c0fb4737ba1cf421032e28925f9aef6c140d97aa /win32/lib/wincrt1.c | |
| parent | 39b2afeb7c5c7de9a6c6457b5a4ec102d4e364b1 (diff) | |
| download | tinycc-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.c | 21 |
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('\"')) |
