]> git.proxmox.com Git - wasi-libc.git/blame - libc-top-half/musl/src/env/getenv.c
Lazy-initialize the environment variables. (#184)
[wasi-libc.git] / libc-top-half / musl / src / env / getenv.c
CommitLineData
320054e8
DG
1#include <stdlib.h>
2#include <string.h>
3#include <unistd.h>
4
5char *getenv(const char *name)
6{
9efc2f42
DG
7#ifdef __wasilibc_unmodified_upstream // Lazy environment variable init.
8#else
9// This specialized header is included within the function body to arranges for
10// the environment variables to be lazily initialized. It redefined `__environ`,
11// so don't remove or reorder it with respect to other code.
12#include "wasi/libc-environ-compat.h"
13#endif
320054e8
DG
14 size_t l = __strchrnul(name, '=') - name;
15 if (l && !name[l] && __environ)
16 for (char **e = __environ; *e; e++)
17 if (!strncmp(name, *e, l) && l[*e] == '=')
18 return *e + l+1;
19 return 0;
20}