X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;ds=sidebyside;f=src%2Fenv%2Fgetenv.c;h=a90d39cf74f35bf0324ea7dea20ecdabdb5030dd;hb=59b64ff686cef2a87e9552658b2c8d2531f87176;hp=00c1bce03725bf51c077cf6334d826105f5ad12e;hpb=0b44a0315b47dd8eced9f3b7f31580cf14bbfc01;p=musl diff --git a/src/env/getenv.c b/src/env/getenv.c index 00c1bce0..a90d39cf 100644 --- a/src/env/getenv.c +++ b/src/env/getenv.c @@ -1,14 +1,13 @@ #include #include -#include "libc.h" +#include char *getenv(const char *name) { - int i; - size_t l = strlen(name); - if (!__environ || !*name || strchr(name, '=')) return NULL; - for (i=0; __environ[i] && (strncmp(name, __environ[i], l) - || __environ[i][l] != '='); i++); - if (__environ[i]) return __environ[i] + l+1; - return NULL; + size_t l = __strchrnul(name, '=') - name; + if (l && !name[l] && __environ) + for (char **e = __environ; *e; e++) + if (!strncmp(name, *e, l) && l[*e] == '=') + return *e + l+1; + return 0; }