aboutsummaryrefslogtreecommitdiff
path: root/lib/efi_loader/efi_console.c
diff options
context:
space:
mode:
authorHeinrich Schuchardt2022-09-02 00:49:12 +0200
committerHeinrich Schuchardt2022-09-03 08:16:09 +0200
commite053a144ca85ffbc8649bc3e170c408b42f92536 (patch)
treeb5dbc975739ec0dc69b4ee649fc0e79afc0ae1d2 /lib/efi_loader/efi_console.c
parent0b7b56d7d7446ab24d2b8da2236ec44ea7edf2cc (diff)
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>
Diffstat (limited to 'lib/efi_loader/efi_console.c')
-rw-r--r--lib/efi_loader/efi_console.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/efi_loader/efi_console.c b/lib/efi_loader/efi_console.c
index 1fcaabe1c41..ee9dc6bbd82 100644
--- a/lib/efi_loader/efi_console.c
+++ b/lib/efi_loader/efi_console.c
@@ -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.
* 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) {
case 0x01 ... 0x07:
@@ -1006,6 +1007,9 @@ static efi_status_t EFIAPI efi_cin_read_key_stroke_ex(
next_key.key.unicode_char += 0x40;
else
next_key.key.unicode_char += 0x60;
+ break;
+ case 0x1c ... 0x1f:
+ next_key.key.unicode_char += 0x40;
}
*key_data = next_key;
key_available = false;