Hi all,

As a new stable version has been released recently and the freeze is over,
if there is a chance for review of this set of patches?

They have been already reviewed in the past and the last request was to
make commit
messages more meaningful for the end user.

Best regards,
Pawel

On Fri, Feb 17, 2023 at 2:02 PM Paweł Poławski <ppola...@redhat.com> wrote:

> From: Laszlo Ersek <ler...@redhat.com>
>
> TerminalDxe driver can send xterm control sequences.
> Reference: <http://rtfm.etla.org/xterm/ctlseq.html>
>
> This way it can trigger client window resize (xterm,
> gnome-terminal etc.) accordingly, to a specified number
> of rows and columns. It improves user experience
> when handling text mode based operations.
>
> New PcdResizeXterm config switch has been added to enable
> or disable this behaviour.
>
> Signed-off-by: Laszlo Ersek <ler...@redhat.com>
>
> Pawel Polawski: Updated commit message for re-submission
>
> Cc: Jian J Wang <jian.j.w...@intel.com>
> Cc: Liming Gao <gaolim...@byosoft.com.cn>
>
> Signed-off-by: Paweł Poławski <ppola...@redhat.com>
> ---
>  MdeModulePkg/MdeModulePkg.dec                               |  4 +++
>  MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf  |  2 ++
>  MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c | 29
> ++++++++++++++++++++
>  3 files changed, 35 insertions(+)
>
> diff --git a/MdeModulePkg/MdeModulePkg.dec b/MdeModulePkg/MdeModulePkg.dec
> index 9605c617b7a8..76007e0af42a 100644
> --- a/MdeModulePkg/MdeModulePkg.dec
> +++ b/MdeModulePkg/MdeModulePkg.dec
> @@ -2107,6 +2107,10 @@ [PcdsFixedAtBuild, PcdsPatchableInModule,
> PcdsDynamic, PcdsDynamicEx]
>    # @Prompt The shared bit mask when Intel Tdx is enabled.
>    gEfiMdeModulePkgTokenSpaceGuid.PcdTdxSharedBitMask|0x0|UINT64|0x10000025
>
> +  ## Controls whether TerminalDxe outputs an XTerm resize sequence on
> terminal
> +  #  mode change.
> +  gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm|FALSE|BOOLEAN|0x00010080
> +
>  [PcdsPatchableInModule]
>    ## Specify memory size with page number for PEI code when
>    #  Loading Module at Fixed Address feature is enabled.
> diff --git a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
> b/MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
> index b2a8aeba8510..eff625346539 100644
> --- a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
> +++ b/MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
> @@ -55,6 +55,7 @@ [LibraryClasses]
>    DebugLib
>    PcdLib
>    BaseLib
> +  PrintLib
>
>  [Guids]
>    ## SOMETIMES_PRODUCES ## Variable:L"ConInDev"
> @@ -87,6 +88,7 @@ [Protocols]
>  [Pcd]
>    gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType           ##
> SOMETIMES_CONSUMES
>    gEfiMdeModulePkgTokenSpaceGuid.PcdErrorCodeSetVariable    ## CONSUMES
> +  gEfiMdeModulePkgTokenSpaceGuid.PcdResizeXterm             ## CONSUMES
>
>  # [Event]
>  # # Relative timer event set by UnicodeToEfiKey(), used to be one 2
> seconds input timeout.
> diff --git a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c
> b/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c
> index 7809869e7d49..496849458db4 100644
> --- a/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c
> +++ b/MdeModulePkg/Universal/Console/TerminalDxe/TerminalConOut.c
> @@ -7,6 +7,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
>
>  **/
>
> +#include <Library/PrintLib.h>
> +
>  #include "Terminal.h"
>
>  //
> @@ -80,6 +82,15 @@ CHAR16  mSetCursorPositionString[] = { ESC, '[', '0',
> '0', ';', '0', '0', 'H', 0
>  CHAR16  mCursorForwardString[]     = { ESC, '[', '0', '0', 'C', 0 };
>  CHAR16  mCursorBackwardString[]    = { ESC, '[', '0', '0', 'D', 0 };
>
> +//
> +// Note that this is an ASCII format string, taking two INT32 arguments:
> +// rows, columns.
> +//
> +// A %d (INT32) format specification can expand to at most 11 characters.
> +//
> +CHAR8  mResizeTextAreaFormatString[] = "\x1B[8;%d;%dt";
> +#define RESIZE_SEQ_SIZE  (sizeof mResizeTextAreaFormatString + 2 * (11 -
> 2))
> +
>  //
>  // Body of the ConOut functions
>  //
> @@ -498,6 +509,24 @@ TerminalConOutSetMode (
>      return EFI_DEVICE_ERROR;
>    }
>
> +  if (PcdGetBool (PcdResizeXterm)) {
> +    CHAR16  ResizeSequence[RESIZE_SEQ_SIZE];
> +
> +    UnicodeSPrintAsciiFormat (
> +      ResizeSequence,
> +      sizeof ResizeSequence,
> +      mResizeTextAreaFormatString,
> +      (INT32)TerminalDevice->TerminalConsoleModeData[ModeNumber].Rows,
> +      (INT32)TerminalDevice->TerminalConsoleModeData[ModeNumber].Columns
> +      );
> +    TerminalDevice->OutputEscChar = TRUE;
> +    Status                        = This->OutputString (This,
> ResizeSequence);
> +    TerminalDevice->OutputEscChar = FALSE;
> +    if (EFI_ERROR (Status)) {
> +      return EFI_DEVICE_ERROR;
> +    }
> +  }
> +
>    This->Mode->Mode = (INT32)ModeNumber;
>
>    Status = This->ClearScreen (This);
> --
> 2.39.1
>
>
>
> 
>
>
>

-- 

Paweł Poławski

Red Hat <https://www.redhat.com/> Virtualization

ppola...@redhat.com
@RedHat <https://twitter.com/redhat>   Red Hat
<https://www.linkedin.com/company/red-hat>  Red Hat
<https://www.facebook.com/RedHatInc>
<https://red.ht/sig>


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#100803): https://edk2.groups.io/g/devel/message/100803
Mute This Topic: https://groups.io/mt/97448002/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to