mirror of
https://github.com/ipxe/ipxe
synced 2026-04-04 03:00:20 +03:00
[console] Avoid overlap between special keys and Unicode characters
The special key range (from KEY_MIN upwards) currently overlaps with the valid range for Unicode characters, and therefore prohibits the use of Unicode key values outside the ASCII range. Create space for Unicode key values by moving the special keys to the range immediately above the maximum valid Unicode character. This allows the existing encoding of special keys as an efficiently packed representation of the equivalent ANSI escape sequence to be maintained almost as-is. Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
@@ -95,7 +95,7 @@ static unsigned int usbkbd_map ( unsigned int keycode, unsigned int modifiers,
|
||||
}
|
||||
} else if ( keycode <= USBKBD_KEY_UP ) {
|
||||
/* Special keys */
|
||||
static const uint16_t special[] = {
|
||||
static const unsigned int special[] = {
|
||||
0, 0, 0, 0, 0, KEY_F5, KEY_F6, KEY_F7, KEY_F8, KEY_F9,
|
||||
KEY_F10, KEY_F11, KEY_F12, 0, 0, 0, KEY_IC, KEY_HOME,
|
||||
KEY_PPAGE, KEY_DC, KEY_END, KEY_NPAGE, KEY_RIGHT,
|
||||
@@ -110,7 +110,7 @@ static unsigned int usbkbd_map ( unsigned int keycode, unsigned int modifiers,
|
||||
if ( leds & USBKBD_LED_NUM_LOCK ) {
|
||||
key = "1234567890." [ keycode - USBKBD_KEY_PAD_1 ];
|
||||
} else {
|
||||
static const uint16_t keypad[] = {
|
||||
static const unsigned int keypad[] = {
|
||||
KEY_END, KEY_DOWN, KEY_NPAGE, KEY_LEFT, 0,
|
||||
KEY_RIGHT, KEY_HOME, KEY_UP, KEY_PPAGE,
|
||||
KEY_IC, KEY_DC
|
||||
|
||||
Reference in New Issue
Block a user