1*dd61ec61Sbostic /*-
2*dd61ec61Sbostic * Copyright (c) 1980 The Regents of the University of California.
3*dd61ec61Sbostic * All rights reserved.
4798b8eb7Sdlw *
5*dd61ec61Sbostic * %sccs.include.proprietary.c%
62a45810dSkre */
72a45810dSkre
8*dd61ec61Sbostic #ifndef lint
9*dd61ec61Sbostic static char sccsid[] = "@(#)getenv_.c 5.2 (Berkeley) 04/12/91";
10*dd61ec61Sbostic #endif /* not lint */
11*dd61ec61Sbostic
122a45810dSkre /*
13798b8eb7Sdlw * return environment variables
14798b8eb7Sdlw *
15798b8eb7Sdlw * calling sequence:
16798b8eb7Sdlw * character*20 evar
17798b8eb7Sdlw * call getenv (ENV_NAME, evar)
18798b8eb7Sdlw * where:
19798b8eb7Sdlw * ENV_NAME is the name of an environment variable
20798b8eb7Sdlw * evar is a character variable which will receive
21798b8eb7Sdlw * the current value of ENV_NAME,
22798b8eb7Sdlw * or all blanks if ENV_NAME is not defined
23798b8eb7Sdlw */
24798b8eb7Sdlw
25798b8eb7Sdlw extern char **environ;
26798b8eb7Sdlw
getenv_(fname,value,flen,vlen)27798b8eb7Sdlw getenv_(fname, value, flen, vlen)
28798b8eb7Sdlw char *value, *fname;
29798b8eb7Sdlw long int vlen, flen;
30798b8eb7Sdlw {
31798b8eb7Sdlw register char *ep, *fp;
32798b8eb7Sdlw register char **env = environ;
33798b8eb7Sdlw int i;
34798b8eb7Sdlw
35798b8eb7Sdlw while (ep = *env++) {
36798b8eb7Sdlw for (fp=fname, i=0; i <= flen; i++) {
37798b8eb7Sdlw if (i == flen || *fp == ' ') {
38798b8eb7Sdlw if (*ep++ == '=') {
39798b8eb7Sdlw b_char(ep, value, vlen);
40798b8eb7Sdlw return(0);
41798b8eb7Sdlw }
42798b8eb7Sdlw else break;
43798b8eb7Sdlw }
44798b8eb7Sdlw else if (*ep++ != *fp++) break;
45798b8eb7Sdlw }
46798b8eb7Sdlw }
47798b8eb7Sdlw b_char(" ", value, vlen);
48798b8eb7Sdlw return(0);
49798b8eb7Sdlw }
50