machine/param.h is gone
[unix-history] / usr / src / lib / libc / stdlib / getenv.c
CommitLineData
b8f253e8
KM
1#ifndef lint
2static char sccsid[] = "@(#)getenv.c 5.1 (Berkeley) %G%";
3#endif not lint
4
24f434cb
BJ
5/*
6 * getenv(name)
7 * returns ptr to value associated with name, if any, else NULL
8 */
9#define NULL 0
10extern char **environ;
11char *nvmatch();
12
13char *
14getenv(name)
15register char *name;
16{
17 register char **p = environ;
18 register char *v;
19
20 while (*p != NULL)
21 if ((v = nvmatch(name, *p++)) != NULL)
22 return(v);
23 return(NULL);
24}
25
26/*
27 * s1 is either name, or name=value
28 * s2 is name=value
29 * if names match, return value of s2, else NULL
30 * used for environment searching: see getenv
31 */
32
33static char *
34nvmatch(s1, s2)
35register char *s1, *s2;
36{
37
38 while (*s1 == *s2++)
39 if (*s1++ == '=')
40 return(s2);
41 if (*s1 == '\0' && *(s2-1) == '=')
42 return(s2);
43 return(NULL);
44}