|
|
1.1 ! root 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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.