| plan 9 kernel history: overview | file list | diff list |
1994/0503/carrera/kbd.c (diff list | history)
| 1994/0428/sys/src/9/carrera/kbd.c:190,201 – 1994/0503/sys/src/9/carrera/kbd.c:190,201 (short | long | prev | next) | ||
| 1994/0306 | void | |
| 1993/0907 | kbdintr(void) { | |
| 1994/0503 | int c, i; | |
| 1994/0306 | static int esc1, esc2; static int caps; static int ctl; static int num; | |
| 1994/0503 | static int collecting, nk; | |
| 1993/0907 | static uchar kc[5]; | |
| 1994/0306 | static int shift; int keyup; | |
| 1994/0428/sys/src/9/carrera/kbd.c:257,295 – 1994/0503/sys/src/9/carrera/kbd.c:257,277 | ||
| 1994/0306 | if(!(c & Spec)){ if(ctl) c &= 0x1f; | |
| 1993/0907 |
| |
| 1994/0306 |
| |
| 1993/0907 |
| |
| 1994/0306 |
| |
| 1993/0907 |
| |
| 1994/0306 |
| |
| 1993/0907 |
| |
| 1994/0306 |
| |
| 1993/0907 |
| |
| 1994/0306 |
| |
| 1993/0907 |
| |
| 1994/0306 |
| |
| 1993/0907 |
| |
| 1994/0503 | if(!collecting){ | |
| 1994/0306 | kbdputc(kbdq, c); | |
| 1993/0907 |
| |
| 1994/0503 | return; | |
| 1993/0907 | } | |
| 1994/0503 | kc[nk++] = c; c = latin1(kc, nk); if(c < -1) /* need more keystrokes */ return; if(c != -1) /* valid sequence */ kbdputc(kbdq, c); else /* dump characters */ for(i=0; i<nk; i++) kbdputc(kbdq, kc[i]); nk = 0; collecting = 0; | |
| 1994/0306 | return; | |
| 1993/0907 | } | |
| 1994/0306 | else { | |
| 1994/0428/sys/src/9/carrera/kbd.c:304,310 – 1994/0503/sys/src/9/carrera/kbd.c:286,293 | ||
| 1994/0306 | shift = 1; return; case Latin: | |
| 1994/0503 | collecting = 1; nk = 0; | |
| 1994/0306 | return; case Ctrl: ctl = 1; | |
| 1994/0428/sys/src/9/carrera/kbd.c:369,374 – 1994/0503/sys/src/9/carrera/kbd.c:352,358 | ||
| 1993/0907 | kbdinit(void) { int i; | |
| 1994/0503 | return 0; | |
| 1994/0428 | ||
| 1993/0907 | /* * empty the buffer | |