From 5b5416aa05b0f66632ded929383c32c0a5aaa375 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Mon, 28 Jan 2019 23:29:22 +0100 Subject: [PATCH] devdraw: simplify drawgen() --- sys/src/9/port/devdraw.c | 33 ++++++++++++++++++--------------- sys/src/cmd/vnc/devdraw.c | 33 ++++++++++++++++++--------------- 2 files changed, 36 insertions(+), 30 deletions(-) diff --git a/sys/src/9/port/devdraw.c b/sys/src/9/port/devdraw.c index ec169836e..db2e7eb20 100644 --- a/sys/src/9/port/devdraw.c +++ b/sys/src/9/port/devdraw.c @@ -239,40 +239,43 @@ drawgen(Chan *c, char*, Dirtab*, int, int s, Dir *dp) * Top level directory contains the name of the device. */ t = QID(c->qid); - if(t == Qtopdir || t == Qwinname){ - if(s == 1 || t == Qwinname){ - mkqid(&q, Qwinname, 0, QTFILE); - devdir(c, q, "winname", 0, eve, 0444, dp); - } - else if(s == 0){ + switch(t){ + case Qtopdir: + if(s == 0){ mkqid(&q, Q2nd, 0, QTDIR); devdir(c, q, "draw", 0, eve, 0555, dp); + return 1; } - else - return -1; - return 1; + if(s == 1){ + case Qwinname: + mkqid(&q, Qwinname, 0, QTFILE); + devdir(c, q, "winname", 0, eve, 0444, dp); + return 1; + } + return -1; } /* * Second level contains "new" plus all the clients. */ - if(t == Q2nd || t == Qnew){ + switch(t){ + case Q2nd: if(s == 0){ + case Qnew: mkqid(&q, Qnew, 0, QTFILE); devdir(c, q, "new", 0, eve, 0666, dp); + return 1; } - else if(s <= sdraw.nclient){ + if(s <= sdraw.nclient){ cl = sdraw.client[s-1]; - if(cl == 0) + if(cl == nil) return 0; sprint(up->genbuf, "%d", cl->clientid); mkqid(&q, (s<genbuf, 0, eve, 0555, dp); return 1; } - else - return -1; - return 1; + return -1; } /* diff --git a/sys/src/cmd/vnc/devdraw.c b/sys/src/cmd/vnc/devdraw.c index e8ec1dddf..07d27c147 100644 --- a/sys/src/cmd/vnc/devdraw.c +++ b/sys/src/cmd/vnc/devdraw.c @@ -237,40 +237,43 @@ drawgen(Chan *c, Dirtab*, int, int s, Dir *dp) * Top level directory contains the name of the device. */ t = QID(c->qid); - if(t == Qtopdir || t == Qwinname){ - if(s == 1 || t == Qwinname){ - mkqid(&q, Qwinname, 0, QTFILE); - devdir(c, q, "winname", 0, eve, 0444, dp); - } - else if(s == 0){ + switch(t){ + case Qtopdir: + if(s == 0){ mkqid(&q, Q2nd, 0, QTDIR); devdir(c, q, "draw", 0, eve, 0555, dp); + return 1; } - else - return -1; - return 1; + if(s == 1){ + case Qwinname: + mkqid(&q, Qwinname, 0, QTFILE); + devdir(c, q, "winname", 0, eve, 0444, dp); + return 1; + } + return -1; } /* * Second level contains "new" plus all the clients. */ - if(t == Q2nd || t == Qnew){ + switch(t){ + case Q2nd: if(s == 0){ + case Qnew: mkqid(&q, Qnew, 0, QTFILE); devdir(c, q, "new", 0, eve, 0666, dp); + return 1; } - else if(s <= sdraw.nclient){ + if(s <= sdraw.nclient){ cl = sdraw.client[s-1]; - if(cl == 0) + if(cl == nil) return 0; sprint(up->genbuf, "%d", cl->clientid); mkqid(&q, (s<genbuf, 0, eve, 0555, dp); return 1; } - else - return -1; - return 1; + return -1; } /*