efi_loader: support CTRL+\ - CTRL+_

In the extended text input protocol support input of control letters
0x1c - 0x1f.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
This commit is contained in:
Heinrich Schuchardt 2022-09-02 00:49:12 +02:00
parent 0b7b56d7d7
commit e053a144ca

View file

@ -994,6 +994,7 @@ static efi_status_t EFIAPI efi_cin_read_key_stroke_ex(
/* /*
* CTRL+A - CTRL+Z have to be signaled as a - z. * CTRL+A - CTRL+Z have to be signaled as a - z.
* SHIFT+CTRL+A - SHIFT+CTRL+Z have to be signaled as A - Z. * SHIFT+CTRL+A - SHIFT+CTRL+Z have to be signaled as A - Z.
* CTRL+\ - CTRL+_ have to be signaled as \ - _.
*/ */
switch (next_key.key.unicode_char) { switch (next_key.key.unicode_char) {
case 0x01 ... 0x07: case 0x01 ... 0x07:
@ -1006,6 +1007,9 @@ static efi_status_t EFIAPI efi_cin_read_key_stroke_ex(
next_key.key.unicode_char += 0x40; next_key.key.unicode_char += 0x40;
else else
next_key.key.unicode_char += 0x60; next_key.key.unicode_char += 0x60;
break;
case 0x1c ... 0x1f:
next_key.key.unicode_char += 0x40;
} }
*key_data = next_key; *key_data = next_key;
key_available = false; key_available = false;