diff options
Diffstat (limited to 'src/__main.c')
-rw-r--r-- | src/__main.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/__main.c b/src/__main.c index aac8317c..16fe3808 100644 --- a/src/__main.c +++ b/src/__main.c @@ -22,23 +22,31 @@ void __init_libc(void) } init = 1; - __stdin = stdin ? stdin : __stdio.FILES + 0; + __stdin = /* stdin ? stdin : */ __stdio.FILES + 0; __stdin->fd = 0; freopen(NULL, "r", __stdin); - __stdout = stdout ? stdout : __stdio.FILES + 1; + __stdout = /* stdout ? stdout : */ __stdio.FILES + 1; __stdout->fd = 1; freopen(NULL, "w", __stdout); - __stderr = stderr ? stderr : __stdio.FILES + 2; + __stderr = /* stderr ? stderr : */ __stdio.FILES + 2; __stderr->fd = 2; freopen(NULL, "w", __stderr); setvbuf(__stderr, NULL, _IONBF, 0); + + #if 0 && _POSIX_SOURCE + extern char **environ; + __stdlib.environ = environ; + #endif } void __main(int (*main)(int, char*[]), int argc, char **argv) { - environ = argv + argc + 1; + __stdlib.environ = argv + argc + 1; + #ifdef _POSIX_SOURCE + environ = __stdlib.environ; + #endif __init_libc(); exit(main(argc, argv)); |