Replace references to RFC 3066 with RFC 4646.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8222 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
gikidy 2009-04-30 07:01:55 +00:00
parent 607e91f5a2
commit 8cf6dad8ab
5 changed files with 106 additions and 106 deletions

View File

@ -306,8 +306,8 @@ HiiFindHandles (
} }
EFI_STATUS EFI_STATUS
LangCodes3066To639 ( LangCodes4646To639 (
IN CHAR8 *LangCodes3066, IN CHAR8 *LangCodes4646,
IN CHAR8 **LangCodes639 IN CHAR8 **LangCodes639
) )
{ {
@ -317,22 +317,22 @@ LangCodes3066To639 (
UINTN Count; UINTN Count;
EFI_STATUS Status; EFI_STATUS Status;
ASSERT (LangCodes3066 != NULL); ASSERT (LangCodes4646 != NULL);
ASSERT (LangCodes639 != NULL); ASSERT (LangCodes639 != NULL);
// //
// Allocate working buffer to contain substring of LangCodes3066. // Allocate working buffer to contain substring of LangCodes4646.
// //
Lang = AllocatePool (AsciiStrSize (LangCodes3066)); Lang = AllocatePool (AsciiStrSize (LangCodes4646));
if (Lang == NULL) { if (Lang == NULL) {
return EFI_OUT_OF_RESOURCES; return EFI_OUT_OF_RESOURCES;
} }
// //
// Count the number of RFC 3066 language codes. // Count the number of RFC 4646 language codes.
// //
Index = 0; Index = 0;
AsciiLangCodes = LangCodes3066; AsciiLangCodes = LangCodes4646;
while (AsciiStrLen (AsciiLangCodes) != 0) { while (AsciiStrLen (AsciiLangCodes) != 0) {
GetNextLanguage (&AsciiLangCodes, Lang); GetNextLanguage (&AsciiLangCodes, Lang);
Index++; Index++;
@ -349,11 +349,11 @@ LangCodes3066To639 (
goto Done; goto Done;
} }
AsciiLangCodes = LangCodes3066; AsciiLangCodes = LangCodes4646;
for (Index = 0; Index < Count; Index++) { for (Index = 0; Index < Count; Index++) {
GetNextLanguage (&AsciiLangCodes, Lang); GetNextLanguage (&AsciiLangCodes, Lang);
Status = ConvertRfc3066LanguageToIso639Language (Lang, *LangCodes639 + Index * ISO_639_2_ENTRY_SIZE); Status = ConvertRfc4646LanguageToIso639Language (Lang, *LangCodes639 + Index * ISO_639_2_ENTRY_SIZE);
ASSERT_EFI_ERROR (Status); ASSERT_EFI_ERROR (Status);
} }
@ -391,7 +391,7 @@ HiiGetPrimaryLanguages (
{ {
HII_THUNK_PRIVATE_DATA *Private; HII_THUNK_PRIVATE_DATA *Private;
EFI_HII_HANDLE UefiHiiHandle; EFI_HII_HANDLE UefiHiiHandle;
CHAR8 *LangCodes3066; CHAR8 *LangCodes4646;
CHAR16 *UnicodeLangCodes639; CHAR16 *UnicodeLangCodes639;
CHAR8 *LangCodes639; CHAR8 *LangCodes639;
EFI_STATUS Status; EFI_STATUS Status;
@ -403,15 +403,15 @@ HiiGetPrimaryLanguages (
return EFI_INVALID_PARAMETER; return EFI_INVALID_PARAMETER;
} }
LangCodes3066 = HiiGetSupportedLanguages (UefiHiiHandle); LangCodes4646 = HiiGetSupportedLanguages (UefiHiiHandle);
if (LangCodes3066 == NULL) { if (LangCodes4646 == NULL) {
return EFI_INVALID_PARAMETER; return EFI_INVALID_PARAMETER;
} }
LangCodes639 = NULL; LangCodes639 = NULL;
Status = LangCodes3066To639 (LangCodes3066, &LangCodes639); Status = LangCodes4646To639 (LangCodes4646, &LangCodes639);
if (EFI_ERROR (Status)) { if (EFI_ERROR (Status)) {
goto Done; goto Done;
} }
@ -429,7 +429,7 @@ HiiGetPrimaryLanguages (
*LanguageString = UnicodeLangCodes639; *LanguageString = UnicodeLangCodes639;
Done: Done:
FreePool (LangCodes3066); FreePool (LangCodes4646);
if (LangCodes639 != NULL) { if (LangCodes639 != NULL) {
FreePool (LangCodes639); FreePool (LangCodes639);
} }
@ -524,9 +524,9 @@ HiiGetSecondaryLanguages (
{ {
HII_THUNK_PRIVATE_DATA *Private; HII_THUNK_PRIVATE_DATA *Private;
EFI_HII_HANDLE UefiHiiHandle; EFI_HII_HANDLE UefiHiiHandle;
CHAR8 *PrimaryLang3066; CHAR8 *PrimaryLang4646;
CHAR8 *PrimaryLang639; CHAR8 *PrimaryLang639;
CHAR8 *SecLangCodes3066; CHAR8 *SecLangCodes4646;
CHAR8 *SecLangCodes639; CHAR8 *SecLangCodes639;
CHAR16 *UnicodeSecLangCodes639; CHAR16 *UnicodeSecLangCodes639;
EFI_STATUS Status; EFI_STATUS Status;
@ -534,8 +534,8 @@ HiiGetSecondaryLanguages (
Private = HII_THUNK_PRIVATE_DATA_FROM_THIS(This); Private = HII_THUNK_PRIVATE_DATA_FROM_THIS(This);
SecLangCodes639 = NULL; SecLangCodes639 = NULL;
SecLangCodes3066 = NULL; SecLangCodes4646 = NULL;
PrimaryLang3066 = NULL; PrimaryLang4646 = NULL;
UnicodeSecLangCodes639 = NULL; UnicodeSecLangCodes639 = NULL;
UefiHiiHandle = FwHiiHandleToUefiHiiHandle (Private, Handle); UefiHiiHandle = FwHiiHandleToUefiHiiHandle (Private, Handle);
@ -551,17 +551,17 @@ HiiGetSecondaryLanguages (
UnicodeStrToAsciiStr (PrimaryLanguage, PrimaryLang639); UnicodeStrToAsciiStr (PrimaryLanguage, PrimaryLang639);
PrimaryLang3066 = ConvertIso639LanguageToRfc3066Language (PrimaryLang639); PrimaryLang4646 = ConvertIso639LanguageToRfc4646Language (PrimaryLang639);
ASSERT_EFI_ERROR (PrimaryLang3066 != NULL); ASSERT_EFI_ERROR (PrimaryLang4646 != NULL);
SecLangCodes3066 = HiiGetSupportedSecondaryLanguages (UefiHiiHandle, PrimaryLang3066); SecLangCodes4646 = HiiGetSupportedSecondaryLanguages (UefiHiiHandle, PrimaryLang4646);
if (SecLangCodes3066 == NULL) { if (SecLangCodes4646 == NULL) {
Status = EFI_INVALID_PARAMETER; Status = EFI_INVALID_PARAMETER;
goto Done; goto Done;
} }
Status = LangCodes3066To639 (SecLangCodes3066, &SecLangCodes639); Status = LangCodes4646To639 (SecLangCodes4646, &SecLangCodes639);
if (EFI_ERROR (Status)) { if (EFI_ERROR (Status)) {
goto Done; goto Done;
} }
@ -573,7 +573,7 @@ HiiGetSecondaryLanguages (
} }
// //
// The language returned is in RFC 3066 format. // The language returned is in RFC 4646 format.
// //
*LanguageString = AsciiStrToUnicodeStr (SecLangCodes639, UnicodeSecLangCodes639); *LanguageString = AsciiStrToUnicodeStr (SecLangCodes639, UnicodeSecLangCodes639);
@ -586,12 +586,12 @@ Done:
FreePool (SecLangCodes639); FreePool (SecLangCodes639);
} }
if (PrimaryLang3066 != NULL) { if (PrimaryLang4646 != NULL) {
FreePool (PrimaryLang3066); FreePool (PrimaryLang4646);
} }
if (SecLangCodes3066 != NULL) { if (SecLangCodes4646 != NULL) {
FreePool (SecLangCodes3066); FreePool (SecLangCodes4646);
} }
if (UnicodeSecLangCodes639 != NULL) { if (UnicodeSecLangCodes639 != NULL) {
FreePool (UnicodeSecLangCodes639); FreePool (UnicodeSecLangCodes639);

View File

@ -476,18 +476,18 @@ InitSetBrowserStrings (
; ;
/** /**
Convert language code from RFC3066 to ISO639-2. Convert language code from RFC4646 to ISO639-2.
LanguageRfc3066 contain a single RFC 3066 code such as LanguageRfc4646 contain a single RFC 4646 code such as
"en-US" or "fr-FR". "en-US" or "fr-FR".
The LanguageRfc3066 must be a buffer large enough The LanguageRfc4646 must be a buffer large enough
for ISO_639_2_ENTRY_SIZE characters. for ISO_639_2_ENTRY_SIZE characters.
If LanguageRfc3066 is NULL, then ASSERT. If LanguageRfc4646 is NULL, then ASSERT.
If LanguageIso639 is NULL, then ASSERT. If LanguageIso639 is NULL, then ASSERT.
@param LanguageRfc3066 RFC3066 language code. @param LanguageRfc4646 RFC4646 language code.
@param LanguageIso639 ISO639-2 language code. @param LanguageIso639 ISO639-2 language code.
@retval EFI_SUCCESS Language code converted. @retval EFI_SUCCESS Language code converted.
@ -496,21 +496,21 @@ InitSetBrowserStrings (
**/ **/
EFI_STATUS EFI_STATUS
EFIAPI EFIAPI
ConvertRfc3066LanguageToIso639Language ( ConvertRfc4646LanguageToIso639Language (
IN CHAR8 *LanguageRfc3066, IN CHAR8 *LanguageRfc4646,
OUT CHAR8 *LanguageIso639 OUT CHAR8 *LanguageIso639
) )
; ;
/** /**
Convert language code from ISO639-2 to RFC3066 and return the converted language. Convert language code from ISO639-2 to RFC4646 and return the converted language.
Caller is responsible for freeing the allocated buffer. Caller is responsible for freeing the allocated buffer.
LanguageIso639 contain a single ISO639-2 code such as LanguageIso639 contain a single ISO639-2 code such as
"eng" or "fra". "eng" or "fra".
If LanguageIso639 is NULL, then ASSERT. If LanguageIso639 is NULL, then ASSERT.
If LanguageRfc3066 is NULL, then ASSERT. If LanguageRfc4646 is NULL, then ASSERT.
@param LanguageIso639 ISO639-2 language code. @param LanguageIso639 ISO639-2 language code.
@ -519,7 +519,7 @@ ConvertRfc3066LanguageToIso639Language (
**/ **/
CHAR8* CHAR8*
EFIAPI EFIAPI
ConvertIso639LanguageToRfc3066Language ( ConvertIso639LanguageToRfc4646Language (
IN CONST CHAR8 *LanguageIso639 IN CONST CHAR8 *LanguageIso639
) )
; ;

View File

@ -17,10 +17,10 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
typedef struct { typedef struct {
CHAR8 *Iso639; CHAR8 *Iso639;
CHAR8 *Rfc3066; CHAR8 *Rfc4646;
} ISO639TORFC3066MAP; } ISO639TORFC4646MAP;
ISO639TORFC3066MAP Iso639ToRfc3066Map [] = { ISO639TORFC4646MAP Iso639ToRfc4646Map [] = {
{"eng", "en-US"}, {"eng", "en-US"},
{"fra", "fr-FR"}, {"fra", "fr-FR"},
}; };
@ -30,7 +30,7 @@ ISO639TORFC3066MAP Iso639ToRfc3066Map [] = {
// Each entry is 5 CHAR8 values long. The first 3 CHAR8 values are the ISO 639-2 code. // Each entry is 5 CHAR8 values long. The first 3 CHAR8 values are the ISO 639-2 code.
// The last 2 CHAR8 values are the ISO 639-1 code. // The last 2 CHAR8 values are the ISO 639-1 code.
// //
GLOBAL_REMOVE_IF_UNREFERENCED CONST CHAR8 Iso639ToRfc3066ConversionTable[] = GLOBAL_REMOVE_IF_UNREFERENCED CONST CHAR8 Iso639ToRfc4646ConversionTable[] =
"\ "\
aaraa\ aaraa\
abkab\ abkab\
@ -170,7 +170,7 @@ zulzu\
"; ";
CHAR8 * CHAR8 *
ConvertIso639ToRfc3066 ( ConvertIso639ToRfc4646 (
CHAR8 *Iso638Lang CHAR8 *Iso638Lang
) )
{ {
@ -186,9 +186,9 @@ ConvertIso639ToRfc3066 (
} }
} }
for (Index = 0; Index < sizeof (Iso639ToRfc3066Map) / sizeof (Iso639ToRfc3066Map[0]); Index++) { for (Index = 0; Index < sizeof (Iso639ToRfc4646Map) / sizeof (Iso639ToRfc4646Map[0]); Index++) {
if (AsciiStrnCmp (AsciiLanguage, Iso639ToRfc3066Map[Index].Iso639, AsciiStrSize (AsciiLanguage)) == 0) { if (AsciiStrnCmp (AsciiLanguage, Iso639ToRfc4646Map[Index].Iso639, AsciiStrSize (AsciiLanguage)) == 0) {
return Iso639ToRfc3066Map[Index].Rfc3066; return Iso639ToRfc4646Map[Index].Rfc4646;
} }
} }
@ -196,9 +196,9 @@ ConvertIso639ToRfc3066 (
} }
/** /**
Convert language code from RFC3066 to ISO639-2. Convert language code from RFC4646 to ISO639-2.
@param LanguageRfc3066 RFC3066 language code. @param LanguageRfc4646 RFC4646 language code.
@param LanguageIso639 ISO639-2 language code. @param LanguageIso639 ISO639-2 language code.
@retval EFI_SUCCESS Language code converted. @retval EFI_SUCCESS Language code converted.
@ -207,21 +207,21 @@ ConvertIso639ToRfc3066 (
**/ **/
EFI_STATUS EFI_STATUS
EFIAPI EFIAPI
ConvertRfc3066LanguageToIso639Language ( ConvertRfc4646LanguageToIso639Language (
IN CHAR8 *LanguageRfc3066, IN CHAR8 *LanguageRfc4646,
OUT CHAR8 *LanguageIso639 OUT CHAR8 *LanguageIso639
) )
{ {
UINTN Index; UINTN Index;
if ((LanguageRfc3066[2] != '-') && (LanguageRfc3066[2] != 0)) { if ((LanguageRfc4646[2] != '-') && (LanguageRfc4646[2] != 0)) {
CopyMem (LanguageIso639, LanguageRfc3066, 3); CopyMem (LanguageIso639, LanguageRfc4646, 3);
return EFI_SUCCESS; return EFI_SUCCESS;
} }
for (Index = 0; Iso639ToRfc3066ConversionTable[Index] != 0; Index += 5) { for (Index = 0; Iso639ToRfc4646ConversionTable[Index] != 0; Index += 5) {
if (CompareMem (LanguageRfc3066, &Iso639ToRfc3066ConversionTable[Index + 3], 2) == 0) { if (CompareMem (LanguageRfc4646, &Iso639ToRfc4646ConversionTable[Index + 3], 2) == 0) {
CopyMem (LanguageIso639, &Iso639ToRfc3066ConversionTable[Index], 3); CopyMem (LanguageIso639, &Iso639ToRfc4646ConversionTable[Index], 3);
return EFI_SUCCESS; return EFI_SUCCESS;
} }
} }
@ -231,14 +231,14 @@ ConvertRfc3066LanguageToIso639Language (
/** /**
Convert language code from ISO639-2 to RFC3066 and return the converted language. Convert language code from ISO639-2 to RFC4646 and return the converted language.
Caller is responsible for freeing the allocated buffer. Caller is responsible for freeing the allocated buffer.
LanguageIso639 contain a single ISO639-2 code such as LanguageIso639 contain a single ISO639-2 code such as
"eng" or "fra". "eng" or "fra".
If LanguageIso639 is NULL, then ASSERT. If LanguageIso639 is NULL, then ASSERT.
If LanguageRfc3066 is NULL, then ASSERT. If LanguageRfc4646 is NULL, then ASSERT.
@param LanguageIso639 ISO639-2 language code. @param LanguageIso639 ISO639-2 language code.
@ -247,20 +247,20 @@ ConvertRfc3066LanguageToIso639Language (
**/ **/
CHAR8* CHAR8*
EFIAPI EFIAPI
ConvertIso639LanguageToRfc3066Language ( ConvertIso639LanguageToRfc4646Language (
IN CONST CHAR8 *LanguageIso639 IN CONST CHAR8 *LanguageIso639
) )
{ {
UINTN Index; UINTN Index;
CHAR8 *Rfc3066Language; CHAR8 *Rfc4646Language;
for (Index = 0; Iso639ToRfc3066ConversionTable[Index] != 0; Index += 5) { for (Index = 0; Iso639ToRfc4646ConversionTable[Index] != 0; Index += 5) {
if (CompareMem (LanguageIso639, &Iso639ToRfc3066ConversionTable[Index], 3) == 0) { if (CompareMem (LanguageIso639, &Iso639ToRfc4646ConversionTable[Index], 3) == 0) {
Rfc3066Language = AllocateZeroPool (3); Rfc4646Language = AllocateZeroPool (3);
if (Rfc3066Language != NULL) { if (Rfc4646Language != NULL) {
Rfc3066Language = CopyMem (Rfc3066Language, &Iso639ToRfc3066ConversionTable[Index + 3], 2); Rfc4646Language = CopyMem (Rfc4646Language, &Iso639ToRfc4646ConversionTable[Index + 3], 2);
} }
return Rfc3066Language; return Rfc4646Language;
} }
} }
@ -383,7 +383,7 @@ GetTagGuidByFwHiiHandle (
Create or update the String given a new string and String ID. Create or update the String given a new string and String ID.
@param ThunkContext The Thunk Context. @param ThunkContext The Thunk Context.
@param Rfc3066AsciiLanguage The RFC 3066 Language code in ASCII string format. @param Rfc4646AsciiLanguage The RFC 4646 Language code in ASCII string format.
@param NewString The new string. @param NewString The new string.
@param StringId The String ID. If StringId is 0, a new String Token @param StringId The String ID. If StringId is 0, a new String Token
is created. Otherwise, the String Token StringId is is created. Otherwise, the String Token StringId is
@ -399,14 +399,14 @@ GetTagGuidByFwHiiHandle (
EFI_STATUS EFI_STATUS
UpdateString ( UpdateString (
IN CONST HII_THUNK_CONTEXT *ThunkContext, IN CONST HII_THUNK_CONTEXT *ThunkContext,
IN CONST CHAR8 *Rfc3066AsciiLanguage, IN CONST CHAR8 *Rfc4646AsciiLanguage,
IN CHAR16 *NewString, IN CHAR16 *NewString,
IN OUT STRING_REF *StringId IN OUT STRING_REF *StringId
) )
{ {
EFI_STRING_ID NewStringId; EFI_STRING_ID NewStringId;
NewStringId = HiiSetString (ThunkContext->UefiHiiHandle, *StringId, NewString, Rfc3066AsciiLanguage); NewStringId = HiiSetString (ThunkContext->UefiHiiHandle, *StringId, NewString, Rfc4646AsciiLanguage);
*StringId = NewStringId; *StringId = NewStringId;
if (NewStringId == 0) { if (NewStringId == 0) {
// //
@ -457,19 +457,19 @@ HiiNewString (
EFI_STRING_ID LastStringId; EFI_STRING_ID LastStringId;
CHAR8 AsciiLanguage[ISO_639_2_ENTRY_SIZE + 1]; CHAR8 AsciiLanguage[ISO_639_2_ENTRY_SIZE + 1];
CHAR16 LanguageCopy[ISO_639_2_ENTRY_SIZE + 1]; CHAR16 LanguageCopy[ISO_639_2_ENTRY_SIZE + 1];
CHAR8 *Rfc3066AsciiLanguage; CHAR8 *Rfc4646AsciiLanguage;
LastStringId = (EFI_STRING_ID) 0; LastStringId = (EFI_STRING_ID) 0;
StringId = (EFI_STRING_ID) 0; StringId = (EFI_STRING_ID) 0;
Rfc3066AsciiLanguage = NULL; Rfc4646AsciiLanguage = NULL;
if (Language != NULL) { if (Language != NULL) {
ZeroMem (AsciiLanguage, sizeof (AsciiLanguage));; ZeroMem (AsciiLanguage, sizeof (AsciiLanguage));;
ZeroMem (LanguageCopy, sizeof (LanguageCopy)); ZeroMem (LanguageCopy, sizeof (LanguageCopy));
CopyMem (LanguageCopy, Language, ISO_639_2_ENTRY_SIZE * sizeof (CHAR16)); CopyMem (LanguageCopy, Language, ISO_639_2_ENTRY_SIZE * sizeof (CHAR16));
UnicodeStrToAsciiStr (LanguageCopy, AsciiLanguage); UnicodeStrToAsciiStr (LanguageCopy, AsciiLanguage);
Rfc3066AsciiLanguage = ConvertIso639ToRfc3066 (AsciiLanguage); Rfc4646AsciiLanguage = ConvertIso639ToRfc4646 (AsciiLanguage);
ASSERT (Rfc3066AsciiLanguage != NULL); ASSERT (Rfc4646AsciiLanguage != NULL);
} }
Private = HII_THUNK_PRIVATE_DATA_FROM_THIS(This); Private = HII_THUNK_PRIVATE_DATA_FROM_THIS(This);
@ -490,7 +490,7 @@ HiiNewString (
if (CompareGuid (&TagGuid, &ThunkContext->TagGuid)) { if (CompareGuid (&TagGuid, &ThunkContext->TagGuid)) {
if (ThunkContext->SharingStringPack) { if (ThunkContext->SharingStringPack) {
StringId = *Reference; StringId = *Reference;
Status = UpdateString (ThunkContext, Rfc3066AsciiLanguage, NewString, &StringId); Status = UpdateString (ThunkContext, Rfc4646AsciiLanguage, NewString, &StringId);
if (EFI_ERROR (Status)) { if (EFI_ERROR (Status)) {
break; break;
} }
@ -518,7 +518,7 @@ HiiNewString (
} }
} else { } else {
StringId = *Reference; StringId = *Reference;
Status = UpdateString (StringPackThunkContext, Rfc3066AsciiLanguage, NewString, &StringId); Status = UpdateString (StringPackThunkContext, Rfc4646AsciiLanguage, NewString, &StringId);
} }
if (!EFI_ERROR (Status)) { if (!EFI_ERROR (Status)) {
@ -591,7 +591,7 @@ HiiThunkGetString (
{ {
HII_THUNK_PRIVATE_DATA *Private; HII_THUNK_PRIVATE_DATA *Private;
CHAR8 *Iso639AsciiLanguage; CHAR8 *Iso639AsciiLanguage;
CHAR8 *Rfc3066AsciiLanguage; CHAR8 *Rfc4646AsciiLanguage;
CHAR8 *SupportedLanguages; CHAR8 *SupportedLanguages;
CHAR8 *PlatformLanguage; CHAR8 *PlatformLanguage;
CHAR8 *BestLanguage; CHAR8 *BestLanguage;
@ -601,7 +601,7 @@ HiiThunkGetString (
Private = HII_THUNK_PRIVATE_DATA_FROM_THIS(This); Private = HII_THUNK_PRIVATE_DATA_FROM_THIS(This);
Iso639AsciiLanguage = NULL; Iso639AsciiLanguage = NULL;
Rfc3066AsciiLanguage = NULL; Rfc4646AsciiLanguage = NULL;
if (LanguageString != NULL) { if (LanguageString != NULL) {
Iso639AsciiLanguage = AllocateZeroPool (StrLen (LanguageString) + 1); Iso639AsciiLanguage = AllocateZeroPool (StrLen (LanguageString) + 1);
@ -612,15 +612,15 @@ HiiThunkGetString (
// //
// Caller of Framework HII Interface uses the Language Identification String defined // Caller of Framework HII Interface uses the Language Identification String defined
// in Iso639. So map it to the Language Identifier defined in RFC3066. // in Iso639. So map it to the Language Identifier defined in RFC4646.
// //
Rfc3066AsciiLanguage = ConvertIso639ToRfc3066 (Iso639AsciiLanguage); Rfc4646AsciiLanguage = ConvertIso639ToRfc4646 (Iso639AsciiLanguage);
// //
// If Rfc3066AsciiLanguage is NULL, more language mapping must be added to // If Rfc4646AsciiLanguage is NULL, more language mapping must be added to
// Iso639ToRfc3066Map. // Iso639ToRfc4646Map.
// //
ASSERT (Rfc3066AsciiLanguage != NULL); ASSERT (Rfc4646AsciiLanguage != NULL);
} }
@ -630,7 +630,7 @@ HiiThunkGetString (
goto Done; goto Done;
} }
if (Rfc3066AsciiLanguage == NULL) { if (Rfc4646AsciiLanguage == NULL) {
// //
// Get the languages that the package specified by HiiHandle supports // Get the languages that the package specified by HiiHandle supports
// //
@ -679,7 +679,7 @@ Error2:
} else { } else {
Status = mHiiStringProtocol->GetString ( Status = mHiiStringProtocol->GetString (
mHiiStringProtocol, mHiiStringProtocol,
Rfc3066AsciiLanguage, Rfc4646AsciiLanguage,
UefiHiiHandle, UefiHiiHandle,
Token, Token,
StringBuffer, StringBuffer,

View File

@ -43,7 +43,7 @@ Module Name:
// Each entry is 5 CHAR8 values long. The first 3 CHAR8 values are the ISO 639-2 code. // Each entry is 5 CHAR8 values long. The first 3 CHAR8 values are the ISO 639-2 code.
// The last 2 CHAR8 values are the ISO 639-1 code. // The last 2 CHAR8 values are the ISO 639-1 code.
// //
GLOBAL_REMOVE_IF_UNREFERENCED CONST CHAR8 Iso639ToRfc3066ConversionTable[] = GLOBAL_REMOVE_IF_UNREFERENCED CONST CHAR8 Iso639ToRfc4646ConversionTable[] =
"\ "\
aaraa\ aaraa\
abkab\ abkab\
@ -183,14 +183,14 @@ zulzu\
"; ";
/** /**
Convert language code from ISO639-2 to RFC3066 and return the converted language. Convert language code from ISO639-2 to RFC4646 and return the converted language.
Caller is responsible for freeing the allocated buffer. Caller is responsible for freeing the allocated buffer.
LanguageIso639 contain a single ISO639-2 code such as LanguageIso639 contain a single ISO639-2 code such as
"eng" or "fra". "eng" or "fra".
If LanguageIso639 is NULL, then ASSERT. If LanguageIso639 is NULL, then ASSERT.
If LanguageRfc3066 is NULL, then ASSERT. If LanguageRfc4646 is NULL, then ASSERT.
@param LanguageIso639 ISO639-2 language code. @param LanguageIso639 ISO639-2 language code.
@ -199,20 +199,20 @@ zulzu\
**/ **/
CHAR8* CHAR8*
EFIAPI EFIAPI
ConvertIso639LanguageToRfc3066Language ( ConvertIso639LanguageToRfc4646Language (
IN CONST CHAR8 *LanguageIso639 IN CONST CHAR8 *LanguageIso639
) )
{ {
UINTN Index; UINTN Index;
CHAR8 *Rfc3066Language; CHAR8 *Rfc4646Language;
for (Index = 0; Iso639ToRfc3066ConversionTable[Index] != 0; Index += 5) { for (Index = 0; Iso639ToRfc4646ConversionTable[Index] != 0; Index += 5) {
if (CompareMem (LanguageIso639, &Iso639ToRfc3066ConversionTable[Index], 3) == 0) { if (CompareMem (LanguageIso639, &Iso639ToRfc4646ConversionTable[Index], 3) == 0) {
Rfc3066Language = AllocateZeroPool (3); Rfc4646Language = AllocateZeroPool (3);
if (Rfc3066Language != NULL) { if (Rfc4646Language != NULL) {
Rfc3066Language = CopyMem (Rfc3066Language, &Iso639ToRfc3066ConversionTable[Index + 3], 2); Rfc4646Language = CopyMem (Rfc4646Language, &Iso639ToRfc4646ConversionTable[Index + 3], 2);
} }
return Rfc3066Language; return Rfc4646Language;
} }
} }
@ -430,7 +430,7 @@ UcNotificationEvent (
// //
// Fill in rest of private data structure // Fill in rest of private data structure
// //
Private->UC2.SupportedLanguages = ConvertIso639LanguageToRfc3066Language (Private->UC->SupportedLanguages); Private->UC2.SupportedLanguages = ConvertIso639LanguageToRfc4646Language (Private->UC->SupportedLanguages);
if (Private->UC2.SupportedLanguages != NULL) { if (Private->UC2.SupportedLanguages != NULL) {
// //

View File

@ -43,7 +43,7 @@ Module Name:
// Each entry is 5 CHAR8 values long. The first 3 CHAR8 values are the ISO 639-2 code. // Each entry is 5 CHAR8 values long. The first 3 CHAR8 values are the ISO 639-2 code.
// The last 2 CHAR8 values are the ISO 639-1 code. // The last 2 CHAR8 values are the ISO 639-1 code.
// //
GLOBAL_REMOVE_IF_UNREFERENCED CONST CHAR8 Iso639ToRfc3066ConversionTable[] = GLOBAL_REMOVE_IF_UNREFERENCED CONST CHAR8 Iso639ToRfc4646ConversionTable[] =
"\ "\
aaraa\ aaraa\
abkab\ abkab\
@ -183,9 +183,9 @@ zulzu\
"; ";
/** /**
Convert language code from RFC3066 to ISO639-2. Convert language code from RFC4646 to ISO639-2.
@param LanguageRfc3066 RFC3066 language code. @param LanguageRfc4646 RFC4646 language code.
@param LanguageIso639 ISO639-2 language code. @param LanguageIso639 ISO639-2 language code.
@retval EFI_SUCCESS Language code converted. @retval EFI_SUCCESS Language code converted.
@ -194,21 +194,21 @@ zulzu\
**/ **/
EFI_STATUS EFI_STATUS
EFIAPI EFIAPI
ConvertRfc3066LanguageToIso639Language ( ConvertRfc4646LanguageToIso639Language (
IN CHAR8 *LanguageRfc3066, IN CHAR8 *LanguageRfc4646,
OUT CHAR8 *LanguageIso639 OUT CHAR8 *LanguageIso639
) )
{ {
UINTN Index; UINTN Index;
if ((LanguageRfc3066[2] != '-') && (LanguageRfc3066[2] != 0)) { if ((LanguageRfc4646[2] != '-') && (LanguageRfc4646[2] != 0)) {
CopyMem (LanguageIso639, LanguageRfc3066, 3); CopyMem (LanguageIso639, LanguageRfc4646, 3);
return EFI_SUCCESS; return EFI_SUCCESS;
} }
for (Index = 0; Iso639ToRfc3066ConversionTable[Index] != 0; Index += 5) { for (Index = 0; Iso639ToRfc4646ConversionTable[Index] != 0; Index += 5) {
if (CompareMem (LanguageRfc3066, &Iso639ToRfc3066ConversionTable[Index + 3], 2) == 0) { if (CompareMem (LanguageRfc4646, &Iso639ToRfc4646ConversionTable[Index + 3], 2) == 0) {
CopyMem (LanguageIso639, &Iso639ToRfc3066ConversionTable[Index], 3); CopyMem (LanguageIso639, &Iso639ToRfc4646ConversionTable[Index], 3);
return EFI_SUCCESS; return EFI_SUCCESS;
} }
} }
@ -428,7 +428,7 @@ Uc2NotificationEvent (
// Fill in rest of private data structure // Fill in rest of private data structure
// //
Private->UC.SupportedLanguages = AllocateZeroPool (ISO_639_2_ENTRY_SIZE + 1); Private->UC.SupportedLanguages = AllocateZeroPool (ISO_639_2_ENTRY_SIZE + 1);
Status = ConvertRfc3066LanguageToIso639Language (Private->UC2->SupportedLanguages, Private->UC.SupportedLanguages); Status = ConvertRfc4646LanguageToIso639Language (Private->UC2->SupportedLanguages, Private->UC.SupportedLanguages);
if (!EFI_ERROR (Status)) { if (!EFI_ERROR (Status)) {