#if !defined(lint) && defined(SCCSIDS) static char sccsid[] = "@(#)getenv.c 1.1 94/10/31 SMI"; /* from S5R2 1.2 */ #endif /*LINTLIBRARY*/ /* * getenv(name) * returns ptr to value associated with name, if any, else NULL */ #define NULL 0 extern char **environ; static char *nvmatch(); char * getenv(name) register char *name; { register char *v, **p=environ; if(p == NULL) return(NULL); while(*p != NULL) if((v = nvmatch(name, *p++)) != NULL) return(v); return(NULL); } /* * s1 is either name, or name=value * s2 is name=value * if names match, return value of s2, else NULL * used for environment searching: see getenv */ static char * nvmatch(s1, s2) register char *s1, *s2; { while(*s1 == *s2++) if(*s1++ == '=') return(s2); if(*s1 == '\0' && *(s2-1) == '=') return(s2); return(NULL); }