|
|
1.1 root 1: /*
2: * GETENV
3: *
4: * Get values of environment variables.
5: *
6: * Stephen B. Wampler
7: *
8: * Last modified 5/2/86 by Ralph E. Griswold
9: *
10: */
11:
12: #include "../h/rt.h"
13:
14: /*
15: * getenv(s) - return contents of environment variable s
16: */
17:
18: FncDcl(getenv,1)
19: {
20: register char *p;
21: register int len;
22: char sbuf[256];
23: extern char *getenv();
24: extern char *alcstr();
25:
26:
27: if (!Qual(Arg1)) /* check legality of argument */
28: runerr(103, &Arg1);
29: if (StrLen(Arg1) <= 0 || StrLen(Arg1) >= MaxCvtLen)
30: runerr(401, &Arg1);
31: qtos(&Arg1, sbuf); /* convert argument to C-style string */
32:
33: if ((p = getenv(sbuf)) != NULL) { /* get environment variable */
34: len = strlen(p);
35: strreq(len);
36: StrLen(Arg0) = len;
37: StrLoc(Arg0) = alcstr(p, len);
38: Return;
39: }
40: else /* fail if variable not in environment */
41: Fail;
42: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.