Files
photon/libc/sys/horizon/environ.c

36 lines
714 B
C

#include <stddef.h>
#include <string.h>
extern const char **__crt_environ();
char *__crt_sys_getenv(const char *name)
{
const char **envp = __crt_environ();
for (int i = 0; envp[i] != NULL; i++) {
int equal = -1;
const char *env = envp[i];
for (int ii = 0; env[ii] != '\0'; ii++) {
if (env[ii] == '=') {
equal = ii;
break;
}
}
if (equal == -1) {
continue;
}
char env_name[equal + 1];
memcpy(env_name, env, equal);
env_name[equal] = '\0';
if (!strcmp(env_name, name)) {
return (char *)(env + equal + 1);
}
}
return NULL;
}