]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ShellPkg/Library/UefiShellDebug1CommandsLib/Edit/MainTextEditor.c
ShellPkg/[hex]edit: Fix CTRL+<Alpha> doesn't work from hyper terminal
[mirror_edk2.git] / ShellPkg / Library / UefiShellDebug1CommandsLib / Edit / MainTextEditor.c
index 4eb998bf5fbad27f9b6b00d9dd46d59287df4b04..6832441e8161c07205f59ab9074450e2aa38a500 100644 (file)
@@ -1387,18 +1387,20 @@ MainCommandDisplayHelp (
       continue;\r
     }\r
 \r
-    if ((KeyData.KeyState.KeyShiftState & EFI_SHIFT_STATE_VALID) == 0) {\r
+    if (((KeyData.KeyState.KeyShiftState & EFI_SHIFT_STATE_VALID) == 0) ||\r
+        (KeyData.KeyState.KeyShiftState == EFI_SHIFT_STATE_VALID)) {\r
       //\r
-      // For consoles that don't support shift state reporting,\r
+      // For consoles that don't support/report shift state,\r
       // CTRL+W is translated to L'W' - L'A' + 1.\r
       //\r
       if (KeyData.Key.UnicodeChar == L'W' - L'A' + 1) {\r
         break;\r
       }\r
-    } else if (((KeyData.KeyState.KeyShiftState & (EFI_LEFT_CONTROL_PRESSED | EFI_RIGHT_CONTROL_PRESSED)) != 0) &&\r
+    } else if (((KeyData.KeyState.KeyShiftState & EFI_SHIFT_STATE_VALID) != 0) &&\r
+               ((KeyData.KeyState.KeyShiftState & (EFI_LEFT_CONTROL_PRESSED | EFI_RIGHT_CONTROL_PRESSED)) != 0) &&\r
                ((KeyData.KeyState.KeyShiftState & ~(EFI_SHIFT_STATE_VALID | EFI_LEFT_CONTROL_PRESSED | EFI_RIGHT_CONTROL_PRESSED)) == 0)) {\r
       //\r
-      // For consoles that supports shift state reporting,\r
+      // For consoles that supports/reports shift state,\r
       // make sure that only CONTROL shift key is pressed.\r
       //\r
       if ((KeyData.Key.UnicodeChar == 'w') || (KeyData.Key.UnicodeChar == 'W')) {\r