ref: 782a15e482b1b315ea3bdf59ccd36fcc31645ca2
parent: 107bf1340fb597c5f42bbeb61dabe539d0d95cd3
author: Jacob Moody <moody@posixcafe.org>
date: Mon Jan 30 14:28:44 EST 2023
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.
--- a/sys/src/cmd/ktrans/main.c
+++ b/sys/src/cmd/ktrans/main.c
@@ -696,7 +696,7 @@
{
char m[Msgsize];
char buf[128];
- char *p, *e;
+ char *p;
int n;
threadsetname("kbdtap");
@@ -705,7 +705,7 @@
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 @@
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;
}
--
⑨