ref: b503317e6c71100ce331e24715d8cc538781840b
dir: /kbd/rio-kbd-file-option.patch/
diff -r 9e12b43399af sys/man/1/rio --- a/sys/man/1/rio Fri Dec 14 17:16:50 2012 +0100 +++ b/sys/man/1/rio Sun Dec 16 22:38:55 2012 +0100 @@ -10,6 +10,9 @@ .BI "-k '"kbdcmd ' ] [ +.BI "-K '"kbdfile ' +] +[ .B -s ] [ @@ -89,6 +92,14 @@ program described in .IR bitsyload (1) is the usual choice. +The +.B -K +option instructs +.I rio +to read keyboard input from +.I kbdfile +instead of a default +.BR /dev/kbd . .PP The .B -s diff -r 9e12b43399af sys/man/4/rio --- a/sys/man/4/rio Fri Dec 14 17:16:50 2012 +0100 +++ b/sys/man/4/rio Sun Dec 16 22:38:55 2012 +0100 @@ -12,6 +12,10 @@ .BI ' kbdcmd ' ] [ +.B -K +.BI ' kbdfile ' +] +[ .B -s ] [ diff -r 9e12b43399af sys/src/cmd/rio/rio.c --- a/sys/src/cmd/rio/rio.c Fri Dec 14 17:16:50 2012 +0100 +++ b/sys/src/cmd/rio/rio.c Sun Dec 16 22:38:55 2012 +0100 @@ -45,6 +45,7 @@ Channel* initkbd(void); char *fontname; +char *kbdname; enum { @@ -112,7 +113,7 @@ void usage(void) { - fprint(2, "usage: rio [-b] [-f font] [-i initcmd] [-k kbdcmd] [-s]\n"); + fprint(2, "usage: rio [-b] [-f font] [-i initcmd] [-k kbdcmd] [-K kbdfile] [-s]\n"); exits("usage"); } @@ -153,6 +154,11 @@ if(kbdin == nil) usage(); break; + case 'K': + kbdname = ARGF(); + if(kbdname == nil) + usage(); + break; case 's': scrolling = TRUE; break; @@ -164,6 +170,8 @@ startdir = estrdup(buf); if(fontname == nil) fontname = getenv("font"); + if(kbdname == nil) + kbdname = "/dev/kbd"; s = getenv("tabstop"); if(s != nil) maxtab = strtol(s, nil, 0); @@ -1302,7 +1310,7 @@ if(sendp(c, nil) <= 0) return; - if((kfd = open("/dev/kbd", OREAD)) >= 0){ + if((kfd = open(kbdname, OREAD)) >= 0){ close(fd); /* read kbd state */