summaryrefslogtreecommitdiffstats
path: root/ShellPkg/Library/UefiShellDriver1CommandsLib
diff options
context:
space:
mode:
authorEric Dong <eric.dong@intel.com>2013-09-05 03:02:14 +0000
committerydong10 <ydong10@6f19259b-4bc3-4df7-8a09-765794883524>2013-09-05 03:02:14 +0000
commita71003f2491a26b96b808064d35c8fd01d6422ed (patch)
treede9861440b48f2907654a7b15ba8805656fbd959 /ShellPkg/Library/UefiShellDriver1CommandsLib
parentc683aa9cd1074135a1d22b11c0ca85631e9a7813 (diff)
downloadedk2-a71003f2491a26b96b808064d35c8fd01d6422ed.tar.gz
edk2-a71003f2491a26b96b808064d35c8fd01d6422ed.tar.bz2
edk2-a71003f2491a26b96b808064d35c8fd01d6422ed.zip
Refine the select language logic.
Signed-off-by: Eric Dong <eric.dong@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> Reviewed-by: Jaben Carsey <Jaben.carsey@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14629 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'ShellPkg/Library/UefiShellDriver1CommandsLib')
-rw-r--r--ShellPkg/Library/UefiShellDriver1CommandsLib/Dh.c19
-rw-r--r--ShellPkg/Library/UefiShellDriver1CommandsLib/DrvDiag.c41
-rw-r--r--ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.h1
3 files changed, 6 insertions, 55 deletions
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.<BR>
+ Copyright (c) 2010 - 2013, Intel Corporation. All rights reserved.<BR>
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 <Library/PrintLib.h>
#include <Library/HandleParsingLib.h>
#include <Library/PeCoffGetEntryPointLib.h>
+#include <Library/HandleParsingLib.h>
extern EFI_HANDLE gShellDriver1HiiHandle;