version 1.63, 2020/07/06 07:27:39 |
version 1.64, 2021/04/07 07:30:02 |
|
|
{ "F11", KEYC_F11|KEYC_IMPLIED_META }, |
{ "F11", KEYC_F11|KEYC_IMPLIED_META }, |
{ "F12", KEYC_F12|KEYC_IMPLIED_META }, |
{ "F12", KEYC_F12|KEYC_IMPLIED_META }, |
{ "IC", KEYC_IC|KEYC_IMPLIED_META }, |
{ "IC", KEYC_IC|KEYC_IMPLIED_META }, |
{ "Insert", KEYC_IC|KEYC_IMPLIED_META }, |
{ "Insert", KEYC_IC|KEYC_IMPLIED_META }, |
{ "DC", KEYC_DC|KEYC_IMPLIED_META }, |
{ "DC", KEYC_DC|KEYC_IMPLIED_META }, |
{ "Delete", KEYC_DC|KEYC_IMPLIED_META }, |
{ "Delete", KEYC_DC|KEYC_IMPLIED_META }, |
{ "Home", KEYC_HOME|KEYC_IMPLIED_META }, |
{ "Home", KEYC_HOME|KEYC_IMPLIED_META }, |
{ "End", KEYC_END|KEYC_IMPLIED_META }, |
{ "End", KEYC_END|KEYC_IMPLIED_META }, |
{ "NPage", KEYC_NPAGE|KEYC_IMPLIED_META }, |
{ "NPage", KEYC_NPAGE|KEYC_IMPLIED_META }, |
|
|
{ "Right", KEYC_RIGHT|KEYC_CURSOR|KEYC_IMPLIED_META }, |
{ "Right", KEYC_RIGHT|KEYC_CURSOR|KEYC_IMPLIED_META }, |
|
|
/* Numeric keypad. */ |
/* Numeric keypad. */ |
{ "KP/", KEYC_KP_SLASH|KEYC_KEYPAD }, |
{ "KP/", KEYC_KP_SLASH|KEYC_KEYPAD }, |
{ "KP*", KEYC_KP_STAR|KEYC_KEYPAD }, |
{ "KP*", KEYC_KP_STAR|KEYC_KEYPAD }, |
{ "KP-", KEYC_KP_MINUS|KEYC_KEYPAD }, |
{ "KP-", KEYC_KP_MINUS|KEYC_KEYPAD }, |
{ "KP7", KEYC_KP_SEVEN|KEYC_KEYPAD }, |
{ "KP7", KEYC_KP_SEVEN|KEYC_KEYPAD }, |
|
|
key_code |
key_code |
key_string_lookup_string(const char *string) |
key_string_lookup_string(const char *string) |
{ |
{ |
static const char *other = "!#()+,-.0123456789:;<=>'\r\t"; |
static const char *other = "!#()+,-.0123456789:;<=>'\r\t\177"; |
key_code key, modifiers; |
key_code key, modifiers; |
u_int u, i; |
u_int u, i; |
struct utf8_data ud, *udp; |
struct utf8_data ud, *udp; |
|
|
|
|
/* Is this a hexadecimal value? */ |
/* Is this a hexadecimal value? */ |
if (string[0] == '0' && string[1] == 'x') { |
if (string[0] == '0' && string[1] == 'x') { |
if (sscanf(string + 2, "%x", &u) != 1) |
if (sscanf(string + 2, "%x", &u) != 1) |
return (KEYC_UNKNOWN); |
return (KEYC_UNKNOWN); |
mlen = wctomb(m, u); |
mlen = wctomb(m, u); |
if (mlen <= 0 || mlen > MB_LEN_MAX) |
if (mlen <= 0 || mlen > MB_LEN_MAX) |
return (KEYC_UNKNOWN); |
return (KEYC_UNKNOWN); |
|
|
} |
} |
|
|
/* Convert the standard control keys. */ |
/* Convert the standard control keys. */ |
if (key < KEYC_BASE && (modifiers & KEYC_CTRL) && !strchr(other, key)) { |
if (key < KEYC_BASE && (modifiers & KEYC_CTRL) && |
|
strchr(other, key) == NULL && |
|
(key < 64 || key > 95)) { |
if (key >= 97 && key <= 122) |
if (key >= 97 && key <= 122) |
key -= 96; |
key -= 96; |
else if (key >= 64 && key <= 95) |
|
key -= 64; |
|
else if (key == 32) |
else if (key == 32) |
key = 0; |
key = 0; |
else if (key == 63) |
else if (key == 63) |