From a71003f2491a26b96b808064d35c8fd01d6422ed Mon Sep 17 00:00:00 2001 From: Eric Dong Date: Thu, 5 Sep 2013 03:02:14 +0000 Subject: Refine the select language logic. Signed-off-by: Eric Dong Reviewed-by: Liming Gao Reviewed-by: Jaben Carsey git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14629 6f19259b-4bc3-4df7-8a09-765794883524 --- ShellPkg/Library/UefiShellDriver1CommandsLib/Dh.c | 19 +--------- .../Library/UefiShellDriver1CommandsLib/DrvDiag.c | 41 +++------------------- .../UefiShellDriver1CommandsLib.h | 1 + 3 files changed, 6 insertions(+), 55 deletions(-) (limited to 'ShellPkg/Library/UefiShellDriver1CommandsLib') diff --git a/ShellPkg/Library/UefiShellDriver1CommandsLib/Dh.c b/ShellPkg/Library/UefiShellDriver1CommandsLib/Dh.c index bfbd8d76b0..1bb3191f41 100644 --- a/ShellPkg/Library/UefiShellDriver1CommandsLib/Dh.c +++ b/ShellPkg/Library/UefiShellDriver1CommandsLib/Dh.c @@ -60,7 +60,6 @@ GetDriverName ( ) { CHAR8 *Lang; - CHAR8 *TempChar; EFI_STATUS Status; EFI_COMPONENT_NAME2_PROTOCOL *CompName2; CHAR16 *NameToReturn; @@ -87,23 +86,7 @@ GetDriverName ( if (EFI_ERROR(Status)) { return (EFI_NOT_FOUND); } - if (Language == NULL) { - Lang = AllocateZeroPool(AsciiStrSize(CompName2->SupportedLanguages)); - if (Lang == NULL) { - return (EFI_OUT_OF_RESOURCES); - } - AsciiStrCpy(Lang, CompName2->SupportedLanguages); - TempChar = AsciiStrStr(Lang, ";"); - if (TempChar != NULL){ - *TempChar = CHAR_NULL; - } - } else { - Lang = AllocateZeroPool(AsciiStrSize(Language)); - if (Lang == NULL) { - return (EFI_OUT_OF_RESOURCES); - } - AsciiStrCpy(Lang, Language); - } + Lang = GetBestLanguageForDriver (CompName2->SupportedLanguages, Language, FALSE); Status = CompName2->GetDriverName(CompName2, Lang, &NameToReturn); FreePool(Lang); diff --git a/ShellPkg/Library/UefiShellDriver1CommandsLib/DrvDiag.c b/ShellPkg/Library/UefiShellDriver1CommandsLib/DrvDiag.c index 986dc3a056..c3c1b575e8 100644 --- a/ShellPkg/Library/UefiShellDriver1CommandsLib/DrvDiag.c +++ b/ShellPkg/Library/UefiShellDriver1CommandsLib/DrvDiag.c @@ -1,7 +1,7 @@ /** @file Main file for DrvDiag shell Driver1 function. - Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.
+ Copyright (c) 2010 - 2013, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at @@ -71,7 +71,6 @@ DoDiagnostics ( UINTN HandleIndex1; UINTN HandleIndex2; CHAR8 *Language; - CHAR8 *TempChar; BOOLEAN Found; if ((ChildHandle != NULL && AllChilds) || (Mode >= TestModeMax)){ @@ -180,24 +179,8 @@ DoDiagnostics ( gImageHandle, NULL, EFI_OPEN_PROTOCOL_GET_PROTOCOL); - if (!EFI_ERROR(Status)) { - if (Lang == NULL) { - Language = AllocateZeroPool(AsciiStrSize(DriverDiagnostics2->SupportedLanguages)); - if (Language == NULL) { - return (EFI_OUT_OF_RESOURCES); - } - AsciiStrCpy(Language, DriverDiagnostics2->SupportedLanguages); - TempChar = AsciiStrStr(Language, ";"); - if (TempChar != NULL){ - *TempChar = CHAR_NULL; - } - } else { - Language = AllocateZeroPool(AsciiStrSize(Lang)); - if (Language == NULL) { - return (EFI_OUT_OF_RESOURCES); - } - AsciiStrCpy(Language, Lang); - } + if (!EFI_ERROR(Status) && (DriverDiagnostics2 != NULL)) { + Language = GetBestLanguageForDriver(DriverDiagnostics2->SupportedLanguages, Lang, FALSE); Found = TRUE; Status = DriverDiagnostics2->RunDiagnostics( DriverDiagnostics2, @@ -220,23 +203,7 @@ DoDiagnostics ( NULL, EFI_OPEN_PROTOCOL_GET_PROTOCOL); if (!EFI_ERROR(Status)) { - if (Lang == NULL) { - Language = AllocateZeroPool(AsciiStrSize(DriverDiagnostics2->SupportedLanguages)); - if (Language == NULL) { - return (EFI_OUT_OF_RESOURCES); - } - AsciiStrCpy(Language, DriverDiagnostics2->SupportedLanguages); - TempChar = AsciiStrStr(Language, ";"); - if (TempChar != NULL){ - *TempChar = CHAR_NULL; - } - } else { - Language = AllocateZeroPool(AsciiStrSize(Lang)); - if (Language == NULL) { - return (EFI_OUT_OF_RESOURCES); - } - AsciiStrCpy(Language, Lang); - } + Language = GetBestLanguageForDriver(DriverDiagnostics->SupportedLanguages, Lang, FALSE); Status = DriverDiagnostics->RunDiagnostics( DriverDiagnostics, ControllerHandleList[ControllerHandleListLoop], diff --git a/ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.h b/ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.h index 46ba8fdd8f..8962d32897 100644 --- a/ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.h +++ b/ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.h @@ -54,6 +54,7 @@ #include #include #include +#include extern EFI_HANDLE gShellDriver1HiiHandle; -- cgit v1.2.3