summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/src/cmd/vt/main.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/sys/src/cmd/vt/main.c b/sys/src/cmd/vt/main.c
index 7dc022f82..a7c6091c8 100644
--- a/sys/src/cmd/vt/main.c
+++ b/sys/src/cmd/vt/main.c
@@ -645,7 +645,7 @@ waitchar(void)
return(rcvchar());
free(hostbuf);
hostbufp = hostbuf = nbrecvp(hc);
- if(host_avail())
+ if(host_avail() && nrand(8))
return(rcvchar());
}
drawscreen();
@@ -662,10 +662,13 @@ waitio(void)
{ mc->c, &mc->Mouse, CHANRCV },
{ mc->resizec, nil, CHANRCV },
{ kc->c, &kbdchar, CHANRCV },
- { hc, &hostbuf, CHANNOP },
+ { hc, &hostbuf, CHANRCV },
{ nil, nil, CHANEND },
};
- if(hostbuf == nil) a[AHOST].op = CHANRCV;
+ if(blocked)
+ a[AHOST].op = CHANNOP;
+ else if(hostbuf != nil)
+ a[AHOST].op = CHANNOBLK;
Next:
if(display->bufp > display->buf)
flushimage(display, 1);