diff -Naur kbd-1.12.orig/src/kbd_mode.c kbd-1.12/src/kbd_mode.c --- kbd-1.12.orig/src/kbd_mode.c 2004-01-16 20:45:31.000000000 +0100 +++ kbd-1.12/src/kbd_mode.c 2008-01-26 02:57:35.000000000 +0100 @@ -15,7 +15,7 @@ static void usage(void){ - fprintf(stderr, _("usage: kbd_mode [-a|-u|-k|-s]\n")); + fprintf(stderr, _("usage: kbd_mode [-a|-u|-k|-s] [device]\n")); exit(1); } @@ -32,7 +32,11 @@ if (argc == 2 && !strcmp(argv[1], "-V")) print_version_and_exit(); - fd = getfd(NULL); + if(argc == 3) { + fd = getfd(argv[2]); + } else { + fd = getfd(NULL); + } if (argc == 1) { /* report mode */ @@ -59,7 +63,7 @@ } exit(1); } - if (argc != 2) + if (argc < 2) usage(); if (!strcmp(argv[1], "-a")) mode = K_XLATE;