diff options
-rw-r--r-- | src/__main.c | 6 | ||||
-rw-r--r-- | src/stdlib/_stdlib.h | 6 | ||||
-rw-r--r-- | src/stdlib/getenv.c | 1 |
3 files changed, 6 insertions, 7 deletions
diff --git a/src/__main.c b/src/__main.c index 3e681799..7e3cd95f 100644 --- a/src/__main.c +++ b/src/__main.c @@ -8,13 +8,7 @@ void __main(int argc, char **argv) { extern int main(int, char*[]); - #ifdef _POSIX_SOURCE - extern char **environ; environ = argv + argc + 1; - __stdlib.environ = environ; - #else - __stdlib.environ = argv + argc + 1; - #endif stdin = __stdio.FILES + 0; stdin->fd = 0; diff --git a/src/stdlib/_stdlib.h b/src/stdlib/_stdlib.h index 089de7df..929981a6 100644 --- a/src/stdlib/_stdlib.h +++ b/src/stdlib/_stdlib.h @@ -20,4 +20,10 @@ struct __stdlib { extern struct __stdlib __stdlib; +#ifdef _POSIX_SOURCE +extern char **environ; +#else +#define environ __stdlib.environ +#endif + #endif diff --git a/src/stdlib/getenv.c b/src/stdlib/getenv.c index 23b48d54..1eba2241 100644 --- a/src/stdlib/getenv.c +++ b/src/stdlib/getenv.c @@ -6,7 +6,6 @@ char * getenv(const char * name) { - char **environ = __stdlib.environ; size_t len = strlen(name); size_t i = 0; |