Commit 64866c3d5c20fa5e7cc5838030e59965e55f7a85
1 parent
294e8637
more keycodes - hexa keycodes - keycode completion
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1907 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
33 additions
and
0 deletions
monitor.c
| ... | ... | @@ -666,6 +666,8 @@ static const KeyDef key_defs[] = { |
| 666 | 666 | { 0x09, "8" }, |
| 667 | 667 | { 0x0a, "9" }, |
| 668 | 668 | { 0x0b, "0" }, |
| 669 | + { 0x0c, "minus" }, | |
| 670 | + { 0x0d, "equal" }, | |
| 669 | 671 | { 0x0e, "backspace" }, |
| 670 | 672 | |
| 671 | 673 | { 0x0f, "tab" }, |
| ... | ... | @@ -715,6 +717,24 @@ static const KeyDef key_defs[] = { |
| 715 | 717 | { 0x45, "num_lock" }, |
| 716 | 718 | { 0x46, "scroll_lock" }, |
| 717 | 719 | |
| 720 | + { 0xb5, "kp_divide" }, | |
| 721 | + { 0x37, "kp_multiply" }, | |
| 722 | + { 0x4a, "kp_substract" }, | |
| 723 | + { 0x4e, "kp_add" }, | |
| 724 | + { 0x9c, "kp_enter" }, | |
| 725 | + { 0x53, "kp_decimal" }, | |
| 726 | + | |
| 727 | + { 0x52, "kp_0" }, | |
| 728 | + { 0x4f, "kp_1" }, | |
| 729 | + { 0x50, "kp_2" }, | |
| 730 | + { 0x51, "kp_3" }, | |
| 731 | + { 0x4b, "kp_4" }, | |
| 732 | + { 0x4c, "kp_5" }, | |
| 733 | + { 0x4d, "kp_6" }, | |
| 734 | + { 0x47, "kp_7" }, | |
| 735 | + { 0x48, "kp_8" }, | |
| 736 | + { 0x49, "kp_9" }, | |
| 737 | + | |
| 718 | 738 | { 0x56, "<" }, |
| 719 | 739 | |
| 720 | 740 | { 0x57, "f11" }, |
| ... | ... | @@ -740,11 +760,18 @@ static const KeyDef key_defs[] = { |
| 740 | 760 | static int get_keycode(const char *key) |
| 741 | 761 | { |
| 742 | 762 | const KeyDef *p; |
| 763 | + char *endp; | |
| 764 | + int ret; | |
| 743 | 765 | |
| 744 | 766 | for(p = key_defs; p->name != NULL; p++) { |
| 745 | 767 | if (!strcmp(key, p->name)) |
| 746 | 768 | return p->keycode; |
| 747 | 769 | } |
| 770 | + if (strstart(key, "0x", NULL)) { | |
| 771 | + ret = strtoul(key, &endp, 0); | |
| 772 | + if (*endp == '\0' && ret >= 0x01 && ret <= 0xff) | |
| 773 | + return ret; | |
| 774 | + } | |
| 748 | 775 | return -1; |
| 749 | 776 | } |
| 750 | 777 | |
| ... | ... | @@ -2152,6 +2179,7 @@ void readline_find_completion(const char *cmdline) |
| 2152 | 2179 | int nb_args, i, len; |
| 2153 | 2180 | const char *ptype, *str; |
| 2154 | 2181 | term_cmd_t *cmd; |
| 2182 | + const KeyDef *key; | |
| 2155 | 2183 | |
| 2156 | 2184 | parse_cmdline(cmdline, &nb_args, args); |
| 2157 | 2185 | #ifdef DEBUG_COMPLETION |
| ... | ... | @@ -2213,6 +2241,11 @@ void readline_find_completion(const char *cmdline) |
| 2213 | 2241 | for(cmd = info_cmds; cmd->name != NULL; cmd++) { |
| 2214 | 2242 | cmd_completion(str, cmd->name); |
| 2215 | 2243 | } |
| 2244 | + } else if (!strcmp(cmd->name, "sendkey")) { | |
| 2245 | + completion_index = strlen(str); | |
| 2246 | + for(key = key_defs; key->name != NULL; key++) { | |
| 2247 | + cmd_completion(str, key->name); | |
| 2248 | + } | |
| 2216 | 2249 | } |
| 2217 | 2250 | break; |
| 2218 | 2251 | default: | ... | ... |