# HG changeset patch # User albeu # Date 1023878344 0 # Node ID 5dded1a5cfbb564e34451533b7752815fe80422b # Parent f9b3d010b35ee6c34579ef844e780d239332f5db Add support for hex key code in input.conf diff -r f9b3d010b35e -r 5dded1a5cfbb input/input.c --- a/input/input.c Wed Jun 12 09:31:33 2002 +0000 +++ b/input/input.c Wed Jun 12 10:39:04 2002 +0000 @@ -11,6 +11,7 @@ #include #include #include +#include #include "input.h" #include "mouse.h" @@ -963,7 +964,7 @@ return ret; } -static char key_str[2]; +static char key_str[12]; static char* mp_input_get_key_name(int key) { @@ -974,21 +975,25 @@ return key_names[i].name; } - if(key >> 8 == 0) { - snprintf(key_str,2,"%c",(char)key); + if(isascii(key)) { + snprintf(key_str,12,"%c",(char)key); return key_str; } - return NULL; + // Print the hex key code + snprintf(key_str,12,"%#-8x",key); + return key_str; + } static int mp_input_get_key_from_name(char* name) { - int i,ret = 0; - if(strlen(name) == 1) { // Direct key code - (char)ret = name[0]; + int i,ret = 0,len = strlen(name); + if(len == 1) { // Direct key code + ret = (unsigned char)name[0]; return ret; - } + } else if(len > 2 && strncasecmp("0x",name,2) == 0) + return strtol(name,NULL,16); for(i = 0; key_names[i].name != NULL; i++) { if(strcasecmp(key_names[i].name,name) == 0)