xref: /csrg-svn/usr.bin/f77/libU77/getenv_.c (revision 23022)
12526Sdlw /*
2*23022Skre  * Copyright (c) 1980 Regents of the University of California.
3*23022Skre  * All rights reserved.  The Berkeley software License Agreement
4*23022Skre  * specifies the terms and conditions for redistribution.
52526Sdlw  *
6*23022Skre  *	@(#)getenv_.c	5.1	06/07/85
7*23022Skre  */
8*23022Skre 
9*23022Skre /*
102526Sdlw  * return environment variables
112526Sdlw  *
122526Sdlw  * calling sequence:
132526Sdlw  *	character*20 evar
142526Sdlw  *	call getenv (ENV_NAME, evar)
152526Sdlw  * where:
162526Sdlw  *	ENV_NAME is the name of an environment variable
172526Sdlw  *	evar is a character variable which will receive
182526Sdlw  *		the current value of ENV_NAME,
192526Sdlw  *		or all blanks if ENV_NAME is not defined
202526Sdlw  */
212526Sdlw 
222526Sdlw extern char **environ;
232526Sdlw 
242526Sdlw getenv_(fname, value, flen, vlen)
252526Sdlw char *value, *fname;
262526Sdlw long int vlen, flen;
272526Sdlw {
282526Sdlw 	register char *ep, *fp;
292526Sdlw 	register char **env = environ;
302526Sdlw 	int i;
312526Sdlw 
322526Sdlw 	while (ep = *env++) {
332526Sdlw 		for (fp=fname, i=0; i <= flen; i++) {
342526Sdlw 			if (i == flen || *fp == ' ') {
352526Sdlw 				if (*ep++ == '=') {
362526Sdlw 					b_char(ep, value, vlen);
372526Sdlw 					return(0);
382526Sdlw 				}
392526Sdlw 				else break;
402526Sdlw 			}
412526Sdlw 			else if (*ep++ != *fp++) break;
422526Sdlw 		}
432526Sdlw 	}
442526Sdlw 	b_char(" ", value, vlen);
452526Sdlw 	return(0);
462526Sdlw }
47