summaryrefslogtreecommitdiff
path: root/sys/src/cmd/ktrans
diff options
context:
space:
mode:
authorJacob Moody <moody@posixcafe.org>2023-01-30 19:28:44 +0000
committerJacob Moody <moody@posixcafe.org>2023-01-30 19:28:44 +0000
commit006b925a2aedeff506430c4b028a04687e8560ff (patch)
treeef626eb0db8d440cab694f178131cdc17b7ca108 /sys/src/cmd/ktrans
parenta5c6374b77610cb2bcb794551475e092d990ef8b (diff)
ktrans: simplify kbdtap read loop
we were not handling multi null delimted messages with one read. This makes us a bit more uniform to other handling on the system as well ... something about clever code.
Diffstat (limited to 'sys/src/cmd/ktrans')
-rw-r--r--sys/src/cmd/ktrans/main.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/sys/src/cmd/ktrans/main.c b/sys/src/cmd/ktrans/main.c
index a7bbbc1db..196956201 100644
--- a/sys/src/cmd/ktrans/main.c
+++ b/sys/src/cmd/ktrans/main.c
@@ -696,7 +696,7 @@ kbdtap(void*)
{
char m[Msgsize];
char buf[128];
- char *p, *e;
+ char *p;
int n;
threadsetname("kbdtap");
@@ -705,7 +705,7 @@ kbdtap(void*)
n = read(kbdin, buf, sizeof buf);
if(n < 0)
break;
- for(p = buf; p < buf+n;){
+ for(p = buf; p < buf+n; p += strlen(p) + 1){
switch(*p){
case 'c': case 'k': case 'K':
case 'z':
@@ -713,10 +713,7 @@ kbdtap(void*)
default:
goto Drop;
}
- *m = *p++;
- e = utfecpy(m+1, m + Msgsize - 1, p);
- p += e - m;
- p++;
+ strcpy(m, p);
if(send(input, m) == -1)
return;
}