]> git.lizzy.rs Git - plan9front.git/blob - sys/src/libc/9sys/getenv.c
allow # netpath in dial string
[plan9front.git] / sys / src / libc / 9sys / getenv.c
1 #include <u.h>
2 #include <libc.h>
3
4 char*
5 getenv(char *name)
6 {
7         int r, f;
8         long s;
9         char *ans;
10         char *p, *ep, ename[100];
11
12         if(strchr(name, '/') != nil)
13                 return nil;
14         snprint(ename, sizeof ename, "/env/%s", name);
15         if(strcmp(ename+5, name) != 0)
16                 return nil;
17         f = open(ename, OREAD);
18         if(f < 0)
19                 return 0;
20         s = seek(f, 0, 2);
21         ans = malloc(s+1);
22         if(ans) {
23                 setmalloctag(ans, getcallerpc(&name));
24                 seek(f, 0, 0);
25                 r = read(f, ans, s);
26                 if(r >= 0) {
27                         ep = ans + s - 1;
28                         for(p = ans; p < ep; p++)
29                                 if(*p == '\0')
30                                         *p = ' ';
31                         ans[s] = '\0';
32                 }
33         }
34         close(f);
35         return ans;
36 }