public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Gao, Zhichao" <zhichao.gao@intel.com>
To: "devel@edk2.groups.io" <devel@edk2.groups.io>,
	"Gao, Zhichao" <zhichao.gao@intel.com>,
	"Ni, Ray" <ray.ni@intel.com>
Cc: "Wang, Jian J" <jian.j.wang@intel.com>,
	Liming Gao <gaoliming@byosoft.com.cn>
Subject: Re: [edk2-devel] [PATCH] MdeModulePkg/UefiBootManagerLib: Limit the boot description to 72 chars
Date: Thu, 9 Sep 2021 08:13:59 +0000	[thread overview]
Message-ID: <DM4PR11MB5277BE331607508F6809795DF6D59@DM4PR11MB5277.namprd11.prod.outlook.com> (raw)
In-Reply-To: <16A312A11F4E487B.29348@groups.io>

I already sent the V2. But it would have the affection I mention in the Bugzilla:
If just limit it when show it, it would cause the different showing in Setup Boot manager page with BootManagerMenu.

Thanks,
Zhichao
> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Gao,
> Zhichao
> Sent: Thursday, September 9, 2021 2:13 PM
> To: Ni, Ray <ray.ni@intel.com>; devel@edk2.groups.io
> Cc: Wang, Jian J <jian.j.wang@intel.com>; Liming Gao
> <gaoliming@byosoft.com.cn>
> Subject: Re: [edk2-devel] [PATCH] MdeModulePkg/UefiBootManagerLib: Limit
> the boot description to 72 chars
> 
> Well. That's another solution to limit the boot option showing in one line. I can
> implement this.
> 
> Thanks,
> Zhichao
> 
> > -----Original Message-----
> > From: Ni, Ray <ray.ni@intel.com>
> > Sent: Thursday, September 9, 2021 1:02 AM
> > To: Gao, Zhichao <zhichao.gao@intel.com>; devel@edk2.groups.io
> > Cc: Wang, Jian J <jian.j.wang@intel.com>; Liming Gao
> > <gaoliming@byosoft.com.cn>
> > Subject: RE: [PATCH] MdeModulePkg/UefiBootManagerLib: Limit the boot
> > description to 72 chars
> >
> > Zhichao,
> > I didn't mean to update UI logic to support scrolling. I meant to
> > update BM logic to show partial string of boot description.
> >
> > Thanks,
> > Ray
> >
> > > -----Original Message-----
> > > From: Gao, Zhichao <zhichao.gao@intel.com>
> > > Sent: Wednesday, September 8, 2021 10:29 AM
> > > To: Ni, Ray <ray.ni@intel.com>; devel@edk2.groups.io
> > > Cc: Wang, Jian J <jian.j.wang@intel.com>; Liming Gao
> > > <gaoliming@byosoft.com.cn>
> > > Subject: RE: [PATCH] MdeModulePkg/UefiBootManagerLib: Limit the boot
> > > description to 72 chars
> > >
> > > Hi Ray,
> > >
> > > Agree with you. I used to think of change the display logic of the
> > > BM app. But it is not tiny. It need to update the scroll bar
> > > definition and one
> > more trace for the item string lines. I would prefer to defer it.
> > > The limitation of the boot description length is required. I don't
> > > know why some USB disk would have a very long serial number string.
> > > On my opinion, 72 characters is enough for the boot option. If there
> > > is no
> > limitation, the boot description can be long enough that one screen
> > can not even show one item.
> > > 80 * 25 is the minimum mode for most terminal console device. That
> > > is why
> > I choose it and add the limitation.
> > >
> > > Thanks,
> > > Zhichao
> > >
> > > > -----Original Message-----
> > > > From: Ni, Ray <ray.ni@intel.com>
> > > > Sent: Tuesday, September 7, 2021 3:54 PM
> > > > To: Gao, Zhichao <zhichao.gao@intel.com>; devel@edk2.groups.io
> > > > Cc: Wang, Jian J <jian.j.wang@intel.com>; Liming Gao
> > > > <gaoliming@byosoft.com.cn>
> > > > Subject: RE: [PATCH] MdeModulePkg/UefiBootManagerLib: Limit the
> > boot
> > > > description to 72 chars
> > > >
> > > > 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.gao@intel.com>
> > > > > Sent: Tuesday, September 7, 2021 2:13 PM
> > > > > To: devel@edk2.groups.io
> > > > > Cc: Wang, Jian J <jian.j.wang@intel.com>; Liming Gao
> > > > > <gaoliming@byosoft.com.cn>; Ni, Ray <ray.ni@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.wang@intel.com>
> > > > > Cc: Liming Gao <gaoliming@byosoft.com.cn>
> > > > > Cc: Ray Ni <ray.ni@intel.com>
> > > > > Signed-off-by: Zhichao Gao <zhichao.gao@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
> 
> 
> 
> 
> 
> 


      parent reply	other threads:[~2021-09-09  8:14 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-07  6:12 [PATCH] MdeModulePkg/UefiBootManagerLib: Limit the boot description to 72 chars Gao, Zhichao
2021-09-07  7:53 ` Ni, Ray
2021-09-08  2:28   ` Gao, Zhichao
2021-09-08 17:01     ` Ni, Ray
2021-09-09  6:12       ` Gao, Zhichao
     [not found]       ` <16A312A11F4E487B.29348@groups.io>
2021-09-09  8:13         ` Gao, Zhichao [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=DM4PR11MB5277BE331607508F6809795DF6D59@DM4PR11MB5277.namprd11.prod.outlook.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox