Send it to new mail list. -----Original Message----- From: Gao, Liming Sent: Wednesday, August 21, 2019 2:33 PM To: 'Tom Zhao' <tz...@solarflare.com>; edk2-de...@lists.01.org Cc: Kinney, Michael D <michael.d.kin...@intel.com> Subject: RE: [PATCH v1 1/1] MdePkg: UefiLib: Add a function to check if a language is supported
Tom: Please submit BZ https://bugzilla.tianocore.org/ for this request, and please introduce this API usage model. Which module will be updated to consume this API? >-----Original Message----- >From: Tom Zhao [mailto:tz...@solarflare.com] >Sent: Wednesday, August 21, 2019 12:13 AM >To: edk2-de...@lists.01.org >Cc: Kinney, Michael D <michael.d.kin...@intel.com>; Gao, Liming ><liming....@intel.com> >Subject: [PATCH v1 1/1] MdePkg: UefiLib: Add a function to check if a >language is supported > >Add a function that checks if a target language is in the supported >languages list. Add some calls to this function where appropriate in >UefiLib.c > >Cc: Michael D Kinney <michael.d.kin...@intel.com> >Cc: Liming Gao <liming....@intel.com> >Signed-off-by: Tom Zhao <tz...@solarflare.com> >--- > MdePkg/Include/Library/UefiLib.h | 16 ++++++ > MdePkg/Library/UefiLib/UefiLib.c | 59 +++++++++++++------- > 2 files changed, 54 insertions(+), 21 deletions(-) > >diff --git a/MdePkg/Include/Library/UefiLib.h >b/MdePkg/Include/Library/UefiLib.h >index 1650f30ddbc6..9dd170cbe2bf 100644 >--- a/MdePkg/Include/Library/UefiLib.h >+++ b/MdePkg/Include/Library/UefiLib.h >@@ -461,6 +461,22 @@ EfiTestChildHandle ( > IN CONST EFI_GUID *ProtocolGuid > ); > +/** >+ * This function checks the supported languages list for a target language >+ * >+ * @param SupportedLanguages The supported languages >+ * @param TargetLanguage The target language >+ * >+ * @return Returns EFI_SUCCESS if the language is supported, >+ * EFI_UNSUPPORTED otherwise >+ */ >+EFI_STATUS >+EFIAPI >+IsLanguageSupported ( >+ IN CONST CHAR8 *SupportedLanguages, >+ IN CONST CHAR8 *TargetLanguage >+ ); >+ > /** > This function looks up a Unicode string in UnicodeStringTable. > diff --git a/MdePkg/Library/UefiLib/UefiLib.c >b/MdePkg/Library/UefiLib/UefiLib.c >index daa4af762e62..56281d25fd99 100644 >--- a/MdePkg/Library/UefiLib/UefiLib.c >+++ b/MdePkg/Library/UefiLib/UefiLib.c >@@ -640,6 +640,35 @@ EfiTestChildHandle ( > return Status; > } > +/** >+ * This function checks the supported languages list for a target language >+ * >+ * @param SupportedLanguages The supported languages >+ * @param TargetLanguage The target language >+ * >+ * @return Returns EFI_SUCCESS if the language is supported, >+ * EFI_UNSUPPORTED otherwise >+ */ >+EFI_STATUS >+EFIAPI >+IsLanguageSupported ( >+ IN CONST CHAR8 *SupportedLanguages, >+ IN CONST CHAR8 *TargetLanguage >+ ) >+{ >+ UINTN Index; >+ while (*SupportedLanguages != 0) { >+ for (Index = 0; SupportedLanguages[Index] != 0 && >SupportedLanguages[Index] != ';'; Index++); >+ if ((AsciiStrnCmp(SupportedLanguages, TargetLanguage, Index) == 0) >&& (TargetLanguage[Index] == 0)) { >+ return EFI_SUCCESS; >+ } >+ SupportedLanguages += Index; >+ for (; *SupportedLanguages != 0 && *SupportedLanguages == ';'; >SupportedLanguages++); >+ } >+ >+ return EFI_UNSUPPORTED; >+} >+ > /** > This function looks up a Unicode string in UnicodeStringTable. > @@ -800,24 +829,19 @@ LookupUnicodeString2 ( > // Make sure Language is in the set of Supported Languages > // > Found = FALSE; >- while (*SupportedLanguages != 0) { >- if (Iso639Language) { >+ if (Iso639Language) { >+ while (*SupportedLanguages != 0) { > if (CompareIso639LanguageCode (Language, SupportedLanguages)) { > Found = TRUE; > break; > } > SupportedLanguages += 3; >- } else { >- for (Index = 0; SupportedLanguages[Index] != 0 && >SupportedLanguages[Index] != ';'; Index++); >- if ((AsciiStrnCmp(SupportedLanguages, Language, Index) == 0) && >(Language[Index] == 0)) { >- Found = TRUE; >- break; >- } >- SupportedLanguages += Index; >- for (; *SupportedLanguages != 0 && *SupportedLanguages == ';'; >SupportedLanguages++); > } >+ } else { >+ Found = !IsLanguageSupported(Language, SupportedLanguages); > } > + > // > // If Language is not a member of SupportedLanguages, then return >EFI_UNSUPPORTED > // >@@ -1099,24 +1123,17 @@ AddUnicodeString2 ( > // Make sure Language is a member of SupportedLanguages > // > Found = FALSE; >- while (*SupportedLanguages != 0) { >- if (Iso639Language) { >+ if (Iso639Language) { >+ while (*SupportedLanguages != 0) { > if (CompareIso639LanguageCode (Language, SupportedLanguages)) { > Found = TRUE; > break; > } > SupportedLanguages += 3; >- } else { >- for (Index = 0; SupportedLanguages[Index] != 0 && >SupportedLanguages[Index] != ';'; Index++); >- if (AsciiStrnCmp(SupportedLanguages, Language, Index) == 0) { >- Found = TRUE; >- break; >- } >- SupportedLanguages += Index; >- for (; *SupportedLanguages != 0 && *SupportedLanguages == ';'; >SupportedLanguages++); > } >+ } else { >+ Found = !IsLanguageSupported(Language, SupportedLanguages); > } >- > // > // If Language is not a member of SupportedLanguages, then return >EFI_UNSUPPORTED > // >-- >2.21.0 > >The information contained in this message is confidential and is intended for >the addressee(s) only. If you have received this message in error, please >notify the sender immediately and delete the message. Unless you are an >addressee (or authorized to receive for an addressee), you may not use, copy >or disclose to anyone this message or any information contained in this >message. The unauthorized use, disclosure, copying or alteration of this >message is strictly prohibited. -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#46135): https://edk2.groups.io/g/devel/message/46135 Mute This Topic: https://groups.io/mt/32975958/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-