|
|
1.1 root 1: /* @(#)getenv.c 4.1 (Berkeley) 12/21/80 */
2: /*
3: * getenv(name)
4: * returns ptr to value associated with name, if any, else NULL
5: */
6: #define NULL 0
7: extern char **environ;
8: char *nvmatch();
9:
10: char *
11: getenv(name)
12: register char *name;
13: {
14: register char **p = environ;
15: register char *v;
16:
17: while (*p != NULL)
18: if ((v = nvmatch(name, *p++)) != NULL)
19: return(v);
20: return(NULL);
21: }
22:
23: /*
24: * s1 is either name, or name=value
25: * s2 is name=value
26: * if names match, return value of s2, else NULL
27: * used for environment searching: see getenv
28: */
29:
30: static char *
31: nvmatch(s1, s2)
32: register char *s1, *s2;
33: {
34:
35: while (*s1 == *s2++)
36: if (*s1++ == '=')
37: return(s2);
38: if (*s1 == '\0' && *(s2-1) == '=')
39: return(s2);
40: return(NULL);
41: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.