diff options
author | Jacob Moody <moody@posixcafe.org> | 2022-08-17 14:20:56 +0000 |
---|---|---|
committer | Jacob Moody <moody@posixcafe.org> | 2022-08-17 14:20:56 +0000 |
commit | 7828ffb8a486e188b61394436a434e8cae4fd487 (patch) | |
tree | f397e48ee42cc51958556be06d67271b63b57c78 /sys/src/cmd/ktrans/main.c | |
parent | 3331ccc6a4e1959253e3d34beee495d191484660 (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.c | 24 |
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'; |