summaryrefslogtreecommitdiff
path: root/src/__main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/__main.c')
-rw-r--r--src/__main.c16
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));