diff options
Diffstat (limited to 'sys/src/cmd/rio/rio.c')
| -rw-r--r-- | sys/src/cmd/rio/rio.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/sys/src/cmd/rio/rio.c b/sys/src/cmd/rio/rio.c index 0c1564f53..4a887ab20 100644 --- a/sys/src/cmd/rio/rio.c +++ b/sys/src/cmd/rio/rio.c @@ -1302,8 +1302,13 @@ kbdproc(void *arg) servekbd = 1; /* read kbd state */ - while((n = read(kfd, buf, sizeof(buf))) > 0) - chanprint(c, "%.*s", n, buf); + while((n = read(kfd, buf, sizeof(buf)-1)) > 0){ + e = buf+n; + e[-1] = 0; + e[0] = 0; + for(p = buf; p < e; p += strlen(p)+1) + chanprint(c, "%s", p); + } } else { /* read single characters */ p = buf; |
