xref: /original-bsd/usr.bin/f77/libU77/getenv_.c (revision 0b685140)
1 /*
2 char id_getenv[] = "@(#)getenv_.c	1.1";
3  *
4  * return environment variables
5  *
6  * calling sequence:
7  *	character*20 evar
8  *	call getenv (ENV_NAME, evar)
9  * where:
10  *	ENV_NAME is the name of an environment variable
11  *	evar is a character variable which will receive
12  *		the current value of ENV_NAME,
13  *		or all blanks if ENV_NAME is not defined
14  */
15 
16 extern char **environ;
17 
18 getenv_(fname, value, flen, vlen)
19 char *value, *fname;
20 long int vlen, flen;
21 {
22 	register char *ep, *fp;
23 	register char **env = environ;
24 	int i;
25 
26 	while (ep = *env++) {
27 		for (fp=fname, i=0; i <= flen; i++) {
28 			if (i == flen || *fp == ' ') {
29 				if (*ep++ == '=') {
30 					b_char(ep, value, vlen);
31 					return(0);
32 				}
33 				else break;
34 			}
35 			else if (*ep++ != *fp++) break;
36 		}
37 	}
38 	b_char(" ", value, vlen);
39 	return(0);
40 }
41