This patchset is a follow on to my previous backspace patchse, and adds a new terminal type "LinuxTerm" (for lack of a better name) that better handles the typical Linux terminal (xterm/rxvt/gnome terminal/etc.) These often treat backspace/delete differently than the existing EDK2 terminal types expect, particularly in emulated environments where the emulated serial port is connected to a graphical terminal rather than a serial console. For a description of how Debian has dealt with the terminal backspace/delete/^H mess, see the "Keyboard configuration" section of:
https://www.debian.org/doc/debian-policy/ch-opersys.html#s9.8%22%3EKeyboardC...
I do not think that all Linux distributions agree on all the details, so my goal is to have a terminal defition that mostly works in many configurations.
Backspace being broken in these environments is the primary motivation for this, but this terminal type could be exentend to better support the typical graphical terminal now in use. This terminal type may be of use in BSD environments as well, so I'm open to more generic name suggestions. I deliberately avoided calling it "xterm", as my intention is to try to work with multiple terminal types to the degree possible.
Roy Franz (4): Add "LinuxTerm" terminal type to TerminalDxe Treat ASCII 0x7F as backspace for LinuxTerm terminal accept [3~ as delete for LinuxTerm terminals Change QEMU terminal type to LinuxTerm
.../ArmVirtualizationPkg/ArmVirtualizationQemu.dsc | 4 +- BaseTools/Source/C/Include/Guid/PcAnsi.h | 6 +++ .../Foundation/Efi/Guid/PcAnsi/PcAnsi.c | 2 + .../Foundation/Efi/Guid/PcAnsi/PcAnsi.h | 6 +++ .../Universal/BdsDxe/BootMaint/BootMaint.h | 2 +- .../Universal/BdsDxe/BootMaint/Data.c | 5 ++- .../Universal/Console/TerminalDxe/Terminal.c | 44 ++++++++++++++++---- .../Universal/Console/TerminalDxe/Terminal.h | 2 + .../Universal/Console/TerminalDxe/TerminalConIn.c | 47 ++++++++++++++++++++-- .../Universal/Console/TerminalDxe/TerminalConOut.c | 2 + .../Universal/Console/TerminalDxe/TerminalDxe.inf | 1 + MdePkg/Include/Guid/PcAnsi.h | 6 +++ MdePkg/Include/Protocol/DevicePath.h | 1 + .../Library/UefiDevicePathLib/DevicePathFromText.c | 27 +++++++++++++ .../Library/UefiDevicePathLib/DevicePathToText.c | 3 ++ .../UefiDevicePathLib/UefiDevicePathLib.inf | 2 + ...UefiDevicePathLibOptionalDevicePathProtocol.inf | 4 +- MdePkg/MdePkg.dec | 3 ++ .../UefiHandleParsingLib/UefiHandleParsingLib.c | 1 + .../UefiHandleParsingLib/UefiHandleParsingLib.inf | 1 + 20 files changed, 153 insertions(+), 16 deletions(-)