1 #if defined(LIBC_SCCS) && !defined(lint) 2 static char sccsid[] = "@(#)getenv.c 5.2 (Berkeley) 03/09/86"; 3 #endif LIBC_SCCS and not lint 4 5 /* 6 * getenv(name) 7 * returns ptr to value associated with name, if any, else NULL 8 */ 9 #define NULL 0 10 extern char **environ; 11 char *nvmatch(); 12 13 char * 14 getenv(name) 15 register 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 33 static char * 34 nvmatch(s1, s2) 35 register 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 } 45