efi_loader: support CTRL+\ - CTRL+_
authorHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Thu, 1 Sep 2022 22:49:12 +0000 (00:49 +0200)
committerHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Sat, 3 Sep 2022 06:16:09 +0000 (08:16 +0200)
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>
lib/efi_loader/efi_console.c

index 1fcaabe..ee9dc6b 100644 (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.
         * 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;