summaryrefslogtreecommitdiff
path: root/sys/src/cmd/ktrans/main.c
diff options
context:
space:
mode:
authorJacob Moody <moody@posixcafe.org>2022-08-17 14:20:56 +0000
committerJacob Moody <moody@posixcafe.org>2022-08-17 14:20:56 +0000
commit7828ffb8a486e188b61394436a434e8cae4fd487 (patch)
treef397e48ee42cc51958556be06d67271b63b57c78 /sys/src/cmd/ktrans/main.c
parent3331ccc6a4e1959253e3d34beee495d191484660 (diff)
ktrans: use stdio by default
The kbdtap is now given as the first argument instead. The use of stdio allows for multiple taps to be chained together in something like: ; </dev/kbdtap ktrans | progB | progC >/dev/kbdtap
Diffstat (limited to 'sys/src/cmd/ktrans/main.c')
-rw-r--r--sys/src/cmd/ktrans/main.c24
1 files changed, 13 insertions, 11 deletions
diff --git a/sys/src/cmd/ktrans/main.c b/sys/src/cmd/ktrans/main.c
index f41d3cfe3..6d6da0cf7 100644
--- a/sys/src/cmd/ktrans/main.c
+++ b/sys/src/cmd/ktrans/main.c
@@ -581,7 +581,7 @@ kbdsink(void*)
void
usage(void)
{
- fprint(2, "usage: %s [ -t tap ] [ -l lang ]\n", argv0);
+ fprint(2, "usage: %s [ -l lang ] [ kbdtap ]\n", argv0);
threadexits("usage");
}
@@ -592,14 +592,9 @@ threadmain(int argc, char *argv[])
{
char *jishoname, *zidianname;
- char *tap;
- tap = "/dev/kbdtap";
deflang = LangEN;
ARGBEGIN{
- case 't':
- tap = EARGF(usage());
- break;
case 'l':
deflang = parselang(EARGF(usage()));
if(deflang < 0)
@@ -608,12 +603,19 @@ threadmain(int argc, char *argv[])
default:
usage();
}ARGEND;
- if(argc != 0)
+ switch(argc){
+ case 0:
+ kbdin = 0;
+ kbdout = 1;
+ break;
+ case 1:
+ kbdin = kbdout = open(argv[0], ORDWR);
+ if(kbdin < 0)
+ sysfatal("failed to open kbdtap: %r");
+ break;
+ default:
usage();
-
- kbdin = kbdout = open(tap, ORDWR);
- if(kbdin < 0 || kbdout < 0)
- sysfatal("failed to get keyboard: %r");
+ }
memset(backspace, '\b', sizeof backspace-1);
backspace[sizeof backspace-1] = '\0';