ShellPkg: Make 'alias' can display a single alias name.

When we run command "alias cat" Shell print out "alias: Too few arguments". This patch makes value of single alias name can be displayed.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Qiu Shumin <shumin.qiu@intel.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19608 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Qiu Shumin 2016-01-06 07:43:58 +00:00 committed by shenshushi
parent 10e547ac2d
commit 7f9c4a515a
1 changed files with 16 additions and 3 deletions

View File

@ -2,7 +2,7 @@
Main file for Alias shell level 3 function. Main file for Alias shell level 3 function.
(C) Copyright 2015 Hewlett-Packard Development Company, L.P.<BR> (C) Copyright 2015 Hewlett-Packard Development Company, L.P.<BR>
Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved. <BR> Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved. <BR>
This program and the accompanying materials This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License 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 which accompanies this distribution. The full text of the license may be found at
@ -92,6 +92,8 @@ ShellCommandRunAlias (
CONST CHAR16 *Param1; CONST CHAR16 *Param1;
CONST CHAR16 *Param2; CONST CHAR16 *Param2;
CHAR16 *CleanParam2; CHAR16 *CleanParam2;
CONST CHAR16 *ConstAliasVal;
BOOLEAN Volatile;
ProblemParam = NULL; ProblemParam = NULL;
ShellStatus = SHELL_SUCCESS; ShellStatus = SHELL_SUCCESS;
@ -165,8 +167,19 @@ ShellCommandRunAlias (
} }
} }
} else if (ShellCommandLineGetCount(Package) == 2) { } else if (ShellCommandLineGetCount(Package) == 2) {
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_FEW), gShellLevel3HiiHandle, L"alias"); //
ShellStatus = SHELL_INVALID_PARAMETER; // print out a single alias
//
ConstAliasVal = gEfiShellProtocol->GetAlias(Param1, &Volatile);
if (ConstAliasVal == NULL) {
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel3HiiHandle, L"alias", Param1);
ShellStatus = SHELL_INVALID_PARAMETER;
} else {
if (ShellCommandIsOnAliasList(Param1)) {
Volatile = FALSE;
}
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_ALIAS_OUTPUT), gShellLevel3HiiHandle, !Volatile?L' ':L'*', Param1, ConstAliasVal);
}
} else { } else {
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel3HiiHandle, L"alias"); ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel3HiiHandle, L"alias");
ShellStatus = SHELL_INVALID_PARAMETER; ShellStatus = SHELL_INVALID_PARAMETER;