Blame


1 ed7c8e8d 2003-09-30 devnull #include <u.h>
2 ed7c8e8d 2003-09-30 devnull #include <libc.h>
3 ed7c8e8d 2003-09-30 devnull #include <draw.h>
4 ed7c8e8d 2003-09-30 devnull
5 ed7c8e8d 2003-09-30 devnull /* Connect us to new window, if possible */
6 ed7c8e8d 2003-09-30 devnull int
7 ed7c8e8d 2003-09-30 devnull newwindow(char *str)
8 ed7c8e8d 2003-09-30 devnull {
9 ed7c8e8d 2003-09-30 devnull int fd;
10 ed7c8e8d 2003-09-30 devnull char *wsys;
11 ed7c8e8d 2003-09-30 devnull char buf[256];
12 ed7c8e8d 2003-09-30 devnull
13 ed7c8e8d 2003-09-30 devnull wsys = getenv("wsys");
14 ed7c8e8d 2003-09-30 devnull if(wsys == nil)
15 ed7c8e8d 2003-09-30 devnull return -1;
16 ed7c8e8d 2003-09-30 devnull fd = open(wsys, ORDWR);
17 ed7c8e8d 2003-09-30 devnull free(wsys);
18 ed7c8e8d 2003-09-30 devnull if(fd < 0)
19 ed7c8e8d 2003-09-30 devnull return -1;
20 ed7c8e8d 2003-09-30 devnull rfork(RFNAMEG);
21 ed7c8e8d 2003-09-30 devnull if(str)
22 ed7c8e8d 2003-09-30 devnull snprint(buf, sizeof buf, "new %s", str);
23 ed7c8e8d 2003-09-30 devnull else
24 ed7c8e8d 2003-09-30 devnull strcpy(buf, "new");
25 ed7c8e8d 2003-09-30 devnull return mount(fd, -1, "/dev", MBEFORE, buf);
26 ed7c8e8d 2003-09-30 devnull }