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