1*9a747e4fSDavid du Colombier #include <u.h>
2*9a747e4fSDavid du Colombier #include <libc.h>
3*9a747e4fSDavid du Colombier
4*9a747e4fSDavid du Colombier void
main(int argc,char * argv[])5*9a747e4fSDavid du Colombier main(int argc, char *argv[])
6*9a747e4fSDavid du Colombier {
7*9a747e4fSDavid du Colombier int i, fd, pid, n;
8*9a747e4fSDavid du Colombier char wdir[256];
9*9a747e4fSDavid du Colombier int dflag;
10*9a747e4fSDavid du Colombier
11*9a747e4fSDavid du Colombier dflag = 0;
12*9a747e4fSDavid du Colombier ARGBEGIN{
13*9a747e4fSDavid du Colombier case 'd':
14*9a747e4fSDavid du Colombier dflag = 1;
15*9a747e4fSDavid du Colombier break;
16*9a747e4fSDavid du Colombier default:
17*9a747e4fSDavid du Colombier fprint(2, "usage: wnew [-d] [label]\n");
18*9a747e4fSDavid du Colombier }ARGEND
19*9a747e4fSDavid du Colombier
20*9a747e4fSDavid du Colombier pid = getpid();
21*9a747e4fSDavid du Colombier wdir[0] = '\0';
22*9a747e4fSDavid du Colombier if(!dflag)
23*9a747e4fSDavid du Colombier getwd(wdir, sizeof wdir);
24*9a747e4fSDavid du Colombier if(argc>0)
25*9a747e4fSDavid du Colombier for(i=0; i<argc; i++)
26*9a747e4fSDavid du Colombier snprint(wdir, sizeof wdir, "%s%c%s", wdir, i==0? '/' : '-', argv[i]);
27*9a747e4fSDavid du Colombier else
28*9a747e4fSDavid du Colombier snprint(wdir, sizeof wdir, "%s/-win", wdir);
29*9a747e4fSDavid du Colombier
30*9a747e4fSDavid du Colombier if((fd = open("/dev/wnew", ORDWR)) < 0)
31*9a747e4fSDavid du Colombier sysfatal("wnew: can't open /dev/wnew: %r");
32*9a747e4fSDavid du Colombier
33*9a747e4fSDavid du Colombier if(fprint(fd, "%d %s", pid, wdir+dflag) < 0)
34*9a747e4fSDavid du Colombier sysfatal("wnew: can't create window: %r");
35*9a747e4fSDavid du Colombier
36*9a747e4fSDavid du Colombier if(seek(fd, 0, 0) != 0)
37*9a747e4fSDavid du Colombier sysfatal("wnew: can't seek: %r");
38*9a747e4fSDavid du Colombier
39*9a747e4fSDavid du Colombier if((n=read(fd, wdir, sizeof wdir-1)) < 0)
40*9a747e4fSDavid du Colombier sysfatal("wnew: can't read window id: %r");
41*9a747e4fSDavid du Colombier wdir[n] = '\0';
42*9a747e4fSDavid du Colombier
43*9a747e4fSDavid du Colombier print("%s\n", wdir);
44*9a747e4fSDavid du Colombier exits(nil);
45*9a747e4fSDavid du Colombier }
46