Zhichao,
The mode 80x25 is platform specific. I don't prefer to update common logic to 
have such limitation.
Can you update the UI logic of displaying the boot option list?

> -----Original Message-----
> From: Gao, Zhichao <zhichao....@intel.com>
> Sent: Tuesday, September 7, 2021 2:13 PM
> To: devel@edk2.groups.io
> Cc: Wang, Jian J <jian.j.w...@intel.com>; Liming Gao 
> <gaolim...@byosoft.com.cn>; Ni, Ray <ray...@intel.com>
> Subject: [PATCH] MdeModulePkg/UefiBootManagerLib: Limit the boot description 
> to 72 chars
> 
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3590
> 
> The minimum mode is 80*25 which means echo line can have 80 charactors
> and max 25 line on the screen. And the BootManagerMeu see each boot
> option as one line. The BootManagerMenuApp would have 2 charactors for
> draw box and 6 charactors for space. So it is better to limit the boot
> description within 72 charactors.
> 
> Cc: Jian J Wang <jian.j.w...@intel.com>
> Cc: Liming Gao <gaolim...@byosoft.com.cn>
> Cc: Ray Ni <ray...@intel.com>
> Signed-off-by: Zhichao Gao <zhichao....@intel.com>
> ---
>  .../Library/UefiBootManagerLib/BmBootDescription.c | 24 
> ++++++++++++++++++----
>  1 file changed, 20 insertions(+), 4 deletions(-)
> 
> diff --git a/MdeModulePkg/Library/UefiBootManagerLib/BmBootDescription.c
> b/MdeModulePkg/Library/UefiBootManagerLib/BmBootDescription.c
> index aa891feb17..7260b2a203 100644
> --- a/MdeModulePkg/Library/UefiBootManagerLib/BmBootDescription.c
> +++ b/MdeModulePkg/Library/UefiBootManagerLib/BmBootDescription.c
> @@ -1,7 +1,7 @@
>  /** @file
> 
>    Library functions which relate with boot option description.
> 
> 
> 
> -Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR>
> 
> +Copyright (c) 2011 - 2021, Intel Corporation. All rights reserved.<BR>
> 
>  (C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR>
> 
>  SPDX-License-Identifier: BSD-2-Clause-Patent
> 
> 
> 
> @@ -14,6 +14,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
>  #define PRODUCT_IDENTIFICATION_OFFSET    11
> 
>  #define PRODUCT_IDENTIFICATION_LENGTH    16
> 
> 
> 
> +#define MAX_BOOT_DESCRIPTION_LEGNTH      72
> 
> +
> 
>  CONST UINT16 mBmUsbLangId    = 0x0409; // English
> 
>  CHAR16       mBmUefiPrefix[] = L"UEFI ";
> 
> 
> 
> @@ -773,6 +775,7 @@ BmGetBootDescription (
>    CHAR16                         *DefaultDescription;
> 
>    CHAR16                         *Temp;
> 
>    UINTN                          Index;
> 
> +  UINTN                          DescriptionLen;
> 
> 
> 
>    //
> 
>    // Firstly get the default boot description
> 
> @@ -785,10 +788,23 @@ BmGetBootDescription (
>        // Avoid description confusion between UEFI & Legacy boot option by 
> adding "UEFI " prefix
> 
>        // ONLY for core provided boot description handler.
> 
>        //
> 
> -      Temp = AllocatePool (StrSize (DefaultDescription) + sizeof 
> (mBmUefiPrefix));
> 
> +      if (StrLen (DefaultDescription) + StrLen (mBmUefiPrefix) > 
> MAX_BOOT_DESCRIPTION_LEGNTH) {
> 
> +        //
> 
> +        // Limit the MAX length of boot description to 72 charactors.
> 
> +        // Replace the last 3 charactors to L"...".
> 
> +        //
> 
> +        DescriptionLen = MAX_BOOT_DESCRIPTION_LEGNTH + 1;
> 
> +        DefaultDescription[MAX_BOOT_DESCRIPTION_LEGNTH - 5 - 3] = L'.';
> 
> +        DefaultDescription[MAX_BOOT_DESCRIPTION_LEGNTH - 5 - 2] = L'.';
> 
> +        DefaultDescription[MAX_BOOT_DESCRIPTION_LEGNTH - 5 - 1] = L'.';
> 
> +        DefaultDescription[MAX_BOOT_DESCRIPTION_LEGNTH - 5] = L'\0';
> 
> +      } else {
> 
> +        DescriptionLen = (StrSize (DefaultDescription) + sizeof 
> (mBmUefiPrefix)) / sizeof (CHAR16);
> 
> +      }
> 
> +      Temp = AllocatePool (DescriptionLen * sizeof (CHAR16));
> 
>        ASSERT (Temp != NULL);
> 
> -      StrCpyS (Temp, (StrSize (DefaultDescription) + sizeof (mBmUefiPrefix)) 
> / sizeof (CHAR16), mBmUefiPrefix);
> 
> -      StrCatS (Temp, (StrSize (DefaultDescription) + sizeof (mBmUefiPrefix)) 
> / sizeof (CHAR16), DefaultDescription);
> 
> +      StrCpyS (Temp, DescriptionLen, mBmUefiPrefix);
> 
> +      StrCatS (Temp, DescriptionLen, DefaultDescription);
> 
>        FreePool (DefaultDescription);
> 
>        DefaultDescription = Temp;
> 
>        break;
> 
> --
> 2.16.2.windows.1



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


Reply via email to