mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-27 07:34:06 +02:00
MdeModulePkg/TerminalDxe: Add VTUTF8 to Putty function key map
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4848 This patch is to support VTUTF8 type for Putty function key map. In Putty, it is required for translating a stream of Unicode characters for function keys on UTF8 correctly. Signed-off-by: Phil Noh <Phil.Noh@amd.com>
This commit is contained in:
parent
170fa8ecd4
commit
21e8a85653
@ -1216,8 +1216,8 @@ AnsiRawDataToUnicode (
|
|||||||
Putty function key map:
|
Putty function key map:
|
||||||
+=========+======+===========+=============+=============+=============+=========+
|
+=========+======+===========+=============+=============+=============+=========+
|
||||||
| | EFI | | | | | |
|
| | EFI | | | | | |
|
||||||
| | Scan | | | Normal | | |
|
| | Scan | VT100+ | | Normal | | |
|
||||||
| KEY | Code | VT100+ | Xterm R6 | VT400 | Linux | SCO |
|
| KEY | Code | VTUTF8 | Xterm R6 | VT400 | Linux | SCO |
|
||||||
+=========+======+===========+=============+=============+=============+=========+
|
+=========+======+===========+=============+=============+=============+=========+
|
||||||
| F1 | 0x0B | ESC O P | ESC O P | ESC [ 1 1 ~ | ESC [ [ A | ESC [ M |
|
| F1 | 0x0B | ESC O P | ESC O P | ESC [ 1 1 ~ | ESC [ [ A | ESC [ M |
|
||||||
| F2 | 0x0C | ESC O Q | ESC O Q | ESC [ 1 2 ~ | ESC [ [ B | ESC [ N |
|
| F2 | 0x0C | ESC O Q | ESC O Q | ESC [ 1 2 ~ | ESC [ [ B | ESC [ N |
|
||||||
|
@ -1317,8 +1317,8 @@ UnicodeToEfiKeyFlushState (
|
|||||||
Putty function key map:
|
Putty function key map:
|
||||||
+=========+======+===========+=============+=============+=============+=========+
|
+=========+======+===========+=============+=============+=============+=========+
|
||||||
| | EFI | | | | | |
|
| | EFI | | | | | |
|
||||||
| | Scan | | | Normal | | |
|
| | Scan | VT100+ | | Normal | | |
|
||||||
| KEY | Code | VT100+ | Xterm R6 | VT400 | Linux | SCO |
|
| KEY | Code | VTUTF8 | Xterm R6 | VT400 | Linux | SCO |
|
||||||
+=========+======+===========+=============+=============+=============+=========+
|
+=========+======+===========+=============+=============+=============+=========+
|
||||||
| F1 | 0x0B | ESC O P | ESC O P | ESC [ 1 1 ~ | ESC [ [ A | ESC [ M |
|
| F1 | 0x0B | ESC O P | ESC O P | ESC [ 1 1 ~ | ESC [ [ A | ESC [ M |
|
||||||
| F2 | 0x0C | ESC O Q | ESC O Q | ESC [ 1 2 ~ | ESC [ [ B | ESC [ N |
|
| F2 | 0x0C | ESC O Q | ESC O Q | ESC [ 1 2 ~ | ESC [ [ B | ESC [ N |
|
||||||
@ -1395,7 +1395,8 @@ UnicodeToEfiKey (
|
|||||||
if ((UnicodeChar == 'O') && ((TerminalDevice->TerminalType == TerminalTypeVt100) ||
|
if ((UnicodeChar == 'O') && ((TerminalDevice->TerminalType == TerminalTypeVt100) ||
|
||||||
(TerminalDevice->TerminalType == TerminalTypeTtyTerm) ||
|
(TerminalDevice->TerminalType == TerminalTypeTtyTerm) ||
|
||||||
(TerminalDevice->TerminalType == TerminalTypeXtermR6) ||
|
(TerminalDevice->TerminalType == TerminalTypeXtermR6) ||
|
||||||
(TerminalDevice->TerminalType == TerminalTypeVt100Plus)))
|
(TerminalDevice->TerminalType == TerminalTypeVt100Plus) ||
|
||||||
|
(TerminalDevice->TerminalType == TerminalTypeVtUtf8)))
|
||||||
{
|
{
|
||||||
TerminalDevice->InputState |= INPUT_STATE_O;
|
TerminalDevice->InputState |= INPUT_STATE_O;
|
||||||
TerminalDevice->ResetState = RESET_STATE_DEFAULT;
|
TerminalDevice->ResetState = RESET_STATE_DEFAULT;
|
||||||
@ -1569,7 +1570,9 @@ UnicodeToEfiKey (
|
|||||||
Key.ScanCode = SCAN_END;
|
Key.ScanCode = SCAN_END;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else if (TerminalDevice->TerminalType == TerminalTypeVt100Plus) {
|
} else if ((TerminalDevice->TerminalType == TerminalTypeVt100Plus) ||
|
||||||
|
(TerminalDevice->TerminalType == TerminalTypeVtUtf8))
|
||||||
|
{
|
||||||
switch (UnicodeChar) {
|
switch (UnicodeChar) {
|
||||||
case 'P':
|
case 'P':
|
||||||
Key.ScanCode = SCAN_F1;
|
Key.ScanCode = SCAN_F1;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user