extras/keymap: Fix crash for unknown keys

The keymap table has some holes in it, which caused the interactive mode to
crash for unknown keys. In these cases, print the numeric key code instead.
This commit is contained in:
Martin Pitt 2009-07-23 19:00:38 +02:00
parent 53842b5382
commit 0dcf1ce1f7
1 changed files with 10 additions and 3 deletions

View File

@ -258,15 +258,22 @@ static const char* default_keymap_path(const char* path)
static void print_key(struct input_event *event)
{
static int cur_scancode = 0;
const char *keyname;
/* save scan code for next EV_KEY event */
if (event->type == EV_MSC && event->code == MSC_SCAN)
cur_scancode = event->value;
/* key press */
if (event->type == EV_KEY && event->value)
printf("scan code: 0x%02X key code: %s\n", cur_scancode,
format_keyname(key_names[event->code]));
if (event->type == EV_KEY && event->value) {
keyname = key_names[event->code];
if (keyname != NULL)
printf("scan code: 0x%02X key code: %s\n", cur_scancode,
format_keyname(key_names[event->code]));
else
printf("scan code: 0x%02X key code: %03X\n", cur_scancode,
event->code);
}
}
static void interactive(int fd)