From f23336fbc3148105c42eebfa44a22d1164828108 Mon Sep 17 00:00:00 2001 From: Jakob Kaivo Date: Sun, 8 May 2022 19:33:57 -0400 Subject: use either environ or __stdlib.environ, never both --- src/__main.c | 6 ------ src/stdlib/_stdlib.h | 6 ++++++ 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; -- cgit v1.2.1