diff options
Diffstat (limited to 'usr.sbin/kbdcontrol/kbdcontrol.c')
-rw-r--r-- | usr.sbin/kbdcontrol/kbdcontrol.c | 45 |
1 files changed, 12 insertions, 33 deletions
diff --git a/usr.sbin/kbdcontrol/kbdcontrol.c b/usr.sbin/kbdcontrol/kbdcontrol.c index b5a9457..f02c68b 100644 --- a/usr.sbin/kbdcontrol/kbdcontrol.c +++ b/usr.sbin/kbdcontrol/kbdcontrol.c @@ -28,7 +28,7 @@ #ifndef lint static const char rcsid[] = - "$Id: kbdcontrol.c,v 1.21 1999/01/12 23:06:29 mjacob Exp $"; + "$Id: kbdcontrol.c,v 1.22 1999/01/23 17:04:13 dfr Exp $"; #endif /* not lint */ #include <ctype.h> @@ -88,13 +88,6 @@ char fkey_table[96][MAXFK] = { /* 93-96 */ "" , "" , "" , "" , }; -const int delays[] = {250, 500, 750, 1000}; -const int repeats[] = { 34, 38, 42, 46, 50, 55, 59, 63, - 68, 76, 84, 92, 100, 110, 118, 126, - 136, 152, 168, 184, 200, 220, 236, 252, - 272, 304, 336, 368, 400, 440, 472, 504}; -const int ndelays = (sizeof(delays) / sizeof(int)); -const int nrepeats = (sizeof(repeats) / sizeof(int)); int hex = 0; int number; char letter; @@ -417,8 +410,13 @@ print_entry(FILE *fp, int value) } +#ifdef __i386__ void print_key_definition_line(FILE *fp, int scancode, struct keyent_t *key) +#else +void +print_key_definition_line(FILE *fp, int scancode, struct key_t *key) +#endif { int i; @@ -814,13 +812,14 @@ badopt: void set_keyrates(char *opt) { + int arg[2]; int repeat; int delay; if (!strcmp(opt, "slow")) - delay = 3, repeat = 31; + delay = 1000, repeat = 500; else if (!strcmp(opt, "normal")) - delay = 1, repeat = 15; + delay = 500, repeat = 125; else if (!strcmp(opt, "fast")) delay = repeat = 0; else { @@ -837,17 +836,11 @@ badopt: warnx("argument to -r must be delay.repeat"); return; } - for (n = 0; n < ndelays - 1; n++) - if (delay <= delays[n]) - break; - delay = n; - for (n = 0; n < nrepeats - 1; n++) - if (repeat <= repeats[n]) - break; - repeat = n; } - if (ioctl(0, KDSETRAD, (delay << 5) | repeat) < 0) + arg[0] = delay; + arg[1] = repeat; + if (ioctl(0, KDSETREPEAT, arg)) warn("setting keyboard rate"); } @@ -866,7 +859,6 @@ set_history(char *opt) warn("setting history buffer size"); } -#ifdef __i386__ static char *get_kbd_type_name(int type) { @@ -960,22 +952,15 @@ release_keyboard(void) if (ioctl(0, CONS_RELKBD, 0) == -1) warn("unable to release the keyboard"); } -#endif /* __i386__ */ static void usage() { fprintf(stderr, "%s\n%s\n%s\n", -#ifdef __i386__ "usage: kbdcontrol [-dFKix] [-b duration.pitch | [quiet.]belltype]", " [-r delay.repeat | speed] [-l mapfile] [-f # string]", " [-h size] [-k device] [-L mapfile]"); -#else -"usage: kbdcontrol [-dFx] [-b duration.pitch | [quiet.]belltype]", -" [-r delay.repeat | speed] [-l mapfile] [-f # string]", -" [-h size] [-L mapfile]"); -#endif exit(1); } @@ -985,11 +970,7 @@ main(int argc, char **argv) { int opt; -#ifdef __i386__ while((opt = getopt(argc, argv, "b:df:h:iKk:Fl:L:r:x")) != -1) -#else - while((opt = getopt(argc, argv, "b:df:h:Fl:L:r:x")) != -1) -#endif switch(opt) { case 'b': set_bell_values(optarg); @@ -1013,7 +994,6 @@ main(int argc, char **argv) case 'h': set_history(optarg); break; -#ifdef __i386__ case 'i': show_kbd_info(); break; @@ -1023,7 +1003,6 @@ main(int argc, char **argv) case 'k': set_keyboard(optarg); break; -#endif /* __i386__ */ case 'r': set_keyrates(optarg); break; |