1: #if defined(LIBC_SCCS) && !defined(lint) 2: static char sccsid[] = "@(#)getenv.c 5.2 (Berkeley) 3/9/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: }