46 lines
823 B
C
46 lines
823 B
C
#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);
|
|
}
|