1*26554Sdonn #if defined(LIBC_SCCS) && !defined(lint) 2*26554Sdonn static char sccsid[] = "@(#)getenv.c 5.2 (Berkeley) 03/09/86"; 3*26554Sdonn #endif LIBC_SCCS and not lint 422090Smckusick 51967Swnj /* 61967Swnj * getenv(name) 71967Swnj * returns ptr to value associated with name, if any, else NULL 81967Swnj */ 91967Swnj #define NULL 0 101967Swnj extern char **environ; 111967Swnj char *nvmatch(); 121967Swnj 131967Swnj char * 141967Swnj getenv(name) 151967Swnj register char *name; 161967Swnj { 171967Swnj register char **p = environ; 181967Swnj register char *v; 191967Swnj 201967Swnj while (*p != NULL) 211967Swnj if ((v = nvmatch(name, *p++)) != NULL) 221967Swnj return(v); 231967Swnj return(NULL); 241967Swnj } 251967Swnj 261967Swnj /* 271967Swnj * s1 is either name, or name=value 281967Swnj * s2 is name=value 291967Swnj * if names match, return value of s2, else NULL 301967Swnj * used for environment searching: see getenv 311967Swnj */ 321967Swnj 331967Swnj static char * 341967Swnj nvmatch(s1, s2) 351967Swnj register char *s1, *s2; 361967Swnj { 371967Swnj 381967Swnj while (*s1 == *s2++) 391967Swnj if (*s1++ == '=') 401967Swnj return(s2); 411967Swnj if (*s1 == '\0' && *(s2-1) == '=') 421967Swnj return(s2); 431967Swnj return(NULL); 441967Swnj } 45