mirror of
https://github.com/tianocore/edk2
synced 2026-08-27 00:23:19 -04:00
ShellPkg/UefiShellLevel3: Lower indentation level in MainCmdXXX()
This patch aims to help breaking down the long function present in the ShellPkg and reduce complexity/nested code and conditions. Lower the indentation level in the newly created MainCmdXXX() functions. Some ASSERT() are removed in Help.c as they check variables which were initialized a few lines above. No functional change should be induced by this patch. Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
This commit is contained in:
parent
8b5c970c55
commit
f1f89f454c
8 changed files with 256 additions and 269 deletions
|
|
@ -109,6 +109,7 @@ MainCmdCls (
|
|||
//
|
||||
if (ShellCommandLineGetFlag (Package, L"-?")) {
|
||||
ASSERT (FALSE);
|
||||
return ShellStatus;
|
||||
} else if (ShellCommandLineGetFlag (Package, L"-sfo")) {
|
||||
if (ShellCommandLineGetCount (Package) > 1) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel3HiiHandle, L"cls");
|
||||
|
|
@ -125,55 +126,60 @@ MainCmdCls (
|
|||
Background
|
||||
);
|
||||
}
|
||||
|
||||
return ShellStatus;
|
||||
}
|
||||
|
||||
//
|
||||
// If there are 0 value parameters, clear sceen
|
||||
//
|
||||
BackColorStr = ShellCommandLineGetRawValue (Package, 1);
|
||||
ForeColorStr = ShellCommandLineGetRawValue (Package, 2);
|
||||
|
||||
if ((BackColorStr == NULL) && (ForeColorStr == NULL)) {
|
||||
//
|
||||
// clear screen
|
||||
//
|
||||
gST->ConOut->ClearScreen (gST->ConOut);
|
||||
return ShellStatus;
|
||||
} else if (ShellCommandLineGetCount (Package) > 3) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel3HiiHandle, L"cls");
|
||||
return SHELL_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
if (BackColorStr == NULL) {
|
||||
return ShellStatus;
|
||||
}
|
||||
|
||||
ShellStatus = GetClsColorIndex (BackColorStr, 7, 1, &ColorIndex);
|
||||
if (ShellStatus != SHELL_SUCCESS) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel3HiiHandle, L"cls", BackColorStr);
|
||||
return ShellStatus;
|
||||
}
|
||||
|
||||
Background = mClsBackgroundColorMap[ColorIndex];
|
||||
|
||||
if (ForeColorStr != NULL) {
|
||||
ShellStatus = GetClsColorIndex (ForeColorStr, 15, 2, &ColorIndex);
|
||||
if (ShellStatus != SHELL_SUCCESS) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel3HiiHandle, L"cls", ForeColorStr);
|
||||
return ShellStatus;
|
||||
}
|
||||
|
||||
Foreground = mClsForegroundColorMap[ColorIndex];
|
||||
} else {
|
||||
//
|
||||
// If there are 0 value parameters, clear sceen
|
||||
// Since foreground color is not modified, so retain
|
||||
// existing foreground color without any change to it.
|
||||
//
|
||||
BackColorStr = ShellCommandLineGetRawValue (Package, 1);
|
||||
ForeColorStr = ShellCommandLineGetRawValue (Package, 2);
|
||||
|
||||
if ((BackColorStr == NULL) && (ForeColorStr == NULL)) {
|
||||
//
|
||||
// clear screen
|
||||
//
|
||||
gST->ConOut->ClearScreen (gST->ConOut);
|
||||
} else if (ShellCommandLineGetCount (Package) > 3) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel3HiiHandle, L"cls");
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
} else {
|
||||
if (BackColorStr != NULL) {
|
||||
ShellStatus = GetClsColorIndex (BackColorStr, 7, 1, &ColorIndex);
|
||||
if (ShellStatus != SHELL_SUCCESS) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel3HiiHandle, L"cls", BackColorStr);
|
||||
} else {
|
||||
Background = mClsBackgroundColorMap[ColorIndex];
|
||||
|
||||
if (ForeColorStr != NULL) {
|
||||
ShellStatus = GetClsColorIndex (ForeColorStr, 15, 2, &ColorIndex);
|
||||
if (ShellStatus != SHELL_SUCCESS) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel3HiiHandle, L"cls", ForeColorStr);
|
||||
} else {
|
||||
Foreground = mClsForegroundColorMap[ColorIndex];
|
||||
}
|
||||
} else {
|
||||
//
|
||||
// Since foreground color is not modified, so retain
|
||||
// existing foreground color without any change to it.
|
||||
//
|
||||
Foreground = gST->ConOut->Mode->Attribute & 0x0F;
|
||||
}
|
||||
|
||||
if (ShellStatus == SHELL_SUCCESS) {
|
||||
Status = gST->ConOut->SetAttribute (gST->ConOut, (Foreground | Background) & 0x7F);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
Status = gST->ConOut->ClearScreen (gST->ConOut);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Foreground = gST->ConOut->Mode->Attribute & 0x0F;
|
||||
}
|
||||
|
||||
Status = gST->ConOut->SetAttribute (gST->ConOut, (Foreground | Background) & 0x7F);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
Status = gST->ConOut->ClearScreen (gST->ConOut);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
|
||||
return ShellStatus;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -27,14 +27,9 @@ MainCmdREcho (
|
|||
LIST_ENTRY *Package
|
||||
)
|
||||
{
|
||||
SHELL_STATUS ShellStatus;
|
||||
UINTN ParamCount;
|
||||
UINTN Size;
|
||||
CHAR16 *PrintString;
|
||||
|
||||
Size = 0;
|
||||
PrintString = NULL;
|
||||
ShellStatus = SHELL_SUCCESS;
|
||||
UINTN ParamCount;
|
||||
UINTN Size;
|
||||
CHAR16 *PrintString;
|
||||
|
||||
//
|
||||
// check for "-?"
|
||||
|
|
@ -48,11 +43,13 @@ MainCmdREcho (
|
|||
// Turn it on
|
||||
//
|
||||
ShellCommandSetEchoState (TRUE);
|
||||
return SHELL_SUCCESS;
|
||||
} else if (ShellCommandLineGetFlag (Package, L"-off")) {
|
||||
//
|
||||
// turn it off
|
||||
//
|
||||
ShellCommandSetEchoState (FALSE);
|
||||
return SHELL_SUCCESS;
|
||||
} else if (ShellCommandLineGetRawValue (Package, 1) == NULL) {
|
||||
//
|
||||
// output its current state
|
||||
|
|
@ -62,26 +59,31 @@ MainCmdREcho (
|
|||
} else {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_ECHO_OFF), gShellLevel3HiiHandle);
|
||||
}
|
||||
} else {
|
||||
//
|
||||
// print the line
|
||||
//
|
||||
for ( ParamCount = 1
|
||||
; ShellCommandLineGetRawValue (Package, ParamCount) != NULL
|
||||
; ParamCount++
|
||||
)
|
||||
{
|
||||
StrnCatGrow (&PrintString, &Size, ShellCommandLineGetRawValue (Package, ParamCount), 0);
|
||||
if (ShellCommandLineGetRawValue (Package, ParamCount+1) != NULL) {
|
||||
StrnCatGrow (&PrintString, &Size, L" ", 0);
|
||||
}
|
||||
}
|
||||
|
||||
ShellPrintDefaultEx (L"%s\r\n", PrintString);
|
||||
SHELL_FREE_NON_NULL (PrintString);
|
||||
return SHELL_SUCCESS;
|
||||
}
|
||||
|
||||
return ShellStatus;
|
||||
Size = 0;
|
||||
PrintString = NULL;
|
||||
|
||||
//
|
||||
// print the line
|
||||
//
|
||||
for ( ParamCount = 1
|
||||
; ShellCommandLineGetRawValue (Package, ParamCount) != NULL
|
||||
; ParamCount++
|
||||
)
|
||||
{
|
||||
StrnCatGrow (&PrintString, &Size, ShellCommandLineGetRawValue (Package, ParamCount), 0);
|
||||
if (ShellCommandLineGetRawValue (Package, ParamCount+1) != NULL) {
|
||||
StrnCatGrow (&PrintString, &Size, L" ", 0);
|
||||
}
|
||||
}
|
||||
|
||||
ShellPrintDefaultEx (L"%s\r\n", PrintString);
|
||||
SHELL_FREE_NON_NULL (PrintString);
|
||||
|
||||
return SHELL_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -21,42 +21,37 @@ MainCmdMtc (
|
|||
LIST_ENTRY *Package
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
SHELL_STATUS ShellStatus;
|
||||
UINT64 Mtc;
|
||||
|
||||
ShellStatus = SHELL_SUCCESS;
|
||||
EFI_STATUS Status;
|
||||
UINT64 Mtc;
|
||||
|
||||
//
|
||||
// check for "-?"
|
||||
//
|
||||
if (ShellCommandLineGetFlag (Package, L"-?")) {
|
||||
ASSERT (FALSE);
|
||||
return SHELL_SUCCESS;
|
||||
} else if (ShellCommandLineGetRawValue (Package, 1) != NULL) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel3HiiHandle, L"getmtc");
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
} else {
|
||||
//
|
||||
// Get the monotonic counter count
|
||||
//
|
||||
Status = gBS->GetNextMonotonicCount (&Mtc);
|
||||
if (Status == EFI_DEVICE_ERROR) {
|
||||
ShellStatus = SHELL_DEVICE_ERROR;
|
||||
} else if (Status == EFI_SECURITY_VIOLATION) {
|
||||
ShellStatus = SHELL_SECURITY_VIOLATION;
|
||||
} else if (EFI_ERROR (Status)) {
|
||||
ShellStatus = SHELL_DEVICE_ERROR;
|
||||
}
|
||||
|
||||
//
|
||||
// print it...
|
||||
//
|
||||
if (ShellStatus == SHELL_SUCCESS) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GET_MTC_OUTPUT), gShellLevel3HiiHandle, Mtc);
|
||||
}
|
||||
return SHELL_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
return ShellStatus;
|
||||
//
|
||||
// Get the monotonic counter count
|
||||
//
|
||||
Status = gBS->GetNextMonotonicCount (&Mtc);
|
||||
if (Status == EFI_DEVICE_ERROR) {
|
||||
return SHELL_DEVICE_ERROR;
|
||||
} else if (Status == EFI_SECURITY_VIOLATION) {
|
||||
return SHELL_SECURITY_VIOLATION;
|
||||
} else if (EFI_ERROR (Status)) {
|
||||
return SHELL_DEVICE_ERROR;
|
||||
}
|
||||
|
||||
//
|
||||
// print it...
|
||||
//
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GET_MTC_OUTPUT), gShellLevel3HiiHandle, Mtc);
|
||||
return SHELL_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -394,56 +394,51 @@ MainCmdHelp (
|
|||
//
|
||||
// Check for conflicting parameters.
|
||||
//
|
||||
if ( ShellCommandLineGetFlag (Package, L"-usage")
|
||||
&& ShellCommandLineGetFlag (Package, L"-section")
|
||||
&& (ShellCommandLineGetFlag (Package, L"-verbose") || ShellCommandLineGetFlag (Package, L"-v"))
|
||||
)
|
||||
if (ShellCommandLineGetFlag (Package, L"-usage") &&
|
||||
ShellCommandLineGetFlag (Package, L"-section") &&
|
||||
(ShellCommandLineGetFlag (Package, L"-verbose") || ShellCommandLineGetFlag (Package, L"-v")))
|
||||
{
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_CON), gShellLevel3HiiHandle, L"help");
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
return SHELL_INVALID_PARAMETER;
|
||||
} else if (ShellCommandLineGetRawValue (Package, 2) != NULL) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel3HiiHandle, L"help");
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
} else {
|
||||
//
|
||||
// Get the command name we are getting help on
|
||||
//
|
||||
ASSERT (CommandToGetHelpOn == NULL);
|
||||
StrnCatGrow (&CommandToGetHelpOn, NULL, ShellCommandLineGetRawValue (Package, 1), 0);
|
||||
if ((CommandToGetHelpOn == NULL) && ShellCommandLineGetFlag (Package, L"-?")) {
|
||||
//
|
||||
// If we dont have a command and we got a simple -?
|
||||
// we are looking for help on help command.
|
||||
//
|
||||
StrnCatGrow (&CommandToGetHelpOn, NULL, L"help", 0);
|
||||
}
|
||||
|
||||
if (CommandToGetHelpOn == NULL) {
|
||||
StrnCatGrow (&CommandToGetHelpOn, NULL, L"*", 0);
|
||||
ASSERT (SectionToGetHelpOn == NULL);
|
||||
StrnCatGrow (&SectionToGetHelpOn, NULL, L"NAME", 0);
|
||||
} else {
|
||||
PrintCommandText = FALSE;
|
||||
ASSERT (SectionToGetHelpOn == NULL);
|
||||
//
|
||||
// Get the section name for the given command name
|
||||
//
|
||||
if (ShellCommandLineGetFlag (Package, L"-section")) {
|
||||
StrnCatGrow (&SectionToGetHelpOn, NULL, ShellCommandLineGetValue (Package, L"-section"), 0);
|
||||
} else if (ShellCommandLineGetFlag (Package, L"-usage")) {
|
||||
StrnCatGrow (&SectionToGetHelpOn, NULL, L"NAME,SYNOPSIS", 0);
|
||||
} else if (ShellCommandLineGetFlag (Package, L"-verbose") || ShellCommandLineGetFlag (Package, L"-v")) {
|
||||
} else {
|
||||
//
|
||||
// The output of help <command> will display NAME, SYNOPSIS, OPTIONS, DESCRIPTION, and EXAMPLES sections.
|
||||
//
|
||||
StrnCatGrow (&SectionToGetHelpOn, NULL, L"NAME,SYNOPSIS,OPTIONS,DESCRIPTION,EXAMPLES", 0);
|
||||
}
|
||||
}
|
||||
|
||||
ShellStatus = PrintMatchingHelp (CommandToGetHelpOn, SectionToGetHelpOn, PrintCommandText);
|
||||
return SHELL_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
//
|
||||
// Get the command name we are getting help on
|
||||
//
|
||||
StrnCatGrow (&CommandToGetHelpOn, NULL, ShellCommandLineGetRawValue (Package, 1), 0);
|
||||
if ((CommandToGetHelpOn == NULL) && ShellCommandLineGetFlag (Package, L"-?")) {
|
||||
//
|
||||
// If we dont have a command and we got a simple -?
|
||||
// we are looking for help on help command.
|
||||
//
|
||||
StrnCatGrow (&CommandToGetHelpOn, NULL, L"help", 0);
|
||||
}
|
||||
|
||||
if (CommandToGetHelpOn == NULL) {
|
||||
StrnCatGrow (&CommandToGetHelpOn, NULL, L"*", 0);
|
||||
StrnCatGrow (&SectionToGetHelpOn, NULL, L"NAME", 0);
|
||||
} else {
|
||||
PrintCommandText = FALSE;
|
||||
//
|
||||
// Get the section name for the given command name
|
||||
//
|
||||
if (ShellCommandLineGetFlag (Package, L"-section")) {
|
||||
StrnCatGrow (&SectionToGetHelpOn, NULL, ShellCommandLineGetValue (Package, L"-section"), 0);
|
||||
} else if (ShellCommandLineGetFlag (Package, L"-usage")) {
|
||||
StrnCatGrow (&SectionToGetHelpOn, NULL, L"NAME,SYNOPSIS", 0);
|
||||
} else if (ShellCommandLineGetFlag (Package, L"-verbose") || ShellCommandLineGetFlag (Package, L"-v")) {
|
||||
} else {
|
||||
//
|
||||
// The output of help <command> will display NAME, SYNOPSIS, OPTIONS, DESCRIPTION, and EXAMPLES sections.
|
||||
//
|
||||
StrnCatGrow (&SectionToGetHelpOn, NULL, L"NAME,SYNOPSIS,OPTIONS,DESCRIPTION,EXAMPLES", 0);
|
||||
}
|
||||
}
|
||||
|
||||
ShellStatus = PrintMatchingHelp (CommandToGetHelpOn, SectionToGetHelpOn, PrintCommandText);
|
||||
if ((CommandToGetHelpOn != NULL) && (StrCmp (CommandToGetHelpOn, L"*") == 0)) {
|
||||
//
|
||||
// If '*' then the command entered was 'Help' without qualifiers, This footer
|
||||
|
|
|
|||
|
|
@ -36,24 +36,25 @@ MainCmdPause (
|
|||
//
|
||||
if (ShellCommandLineGetFlag (Package, L"-?")) {
|
||||
ASSERT (FALSE);
|
||||
return ShellStatus;
|
||||
} else if (ShellCommandLineGetRawValue (Package, 1) != NULL) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel3HiiHandle, L"pause");
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
return SHELL_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
if (!ShellCommandLineGetFlag (Package, L"-q")) {
|
||||
Status = ShellPromptForResponseHii (ShellPromptResponseTypeQuitContinue, STRING_TOKEN (STR_PAUSE_PROMPT), gShellLevel3HiiHandle, (VOID **)&Resp);
|
||||
} else {
|
||||
if (!ShellCommandLineGetFlag (Package, L"-q")) {
|
||||
Status = ShellPromptForResponseHii (ShellPromptResponseTypeQuitContinue, STRING_TOKEN (STR_PAUSE_PROMPT), gShellLevel3HiiHandle, (VOID **)&Resp);
|
||||
} else {
|
||||
Status = ShellPromptForResponse (ShellPromptResponseTypeQuitContinue, NULL, (VOID **)&Resp);
|
||||
}
|
||||
Status = ShellPromptForResponse (ShellPromptResponseTypeQuitContinue, NULL, (VOID **)&Resp);
|
||||
}
|
||||
|
||||
if (EFI_ERROR (Status) || (Resp == NULL) || (*Resp == ShellPromptResponseQuit)) {
|
||||
ShellCommandRegisterExit (TRUE, 0);
|
||||
ShellStatus = SHELL_ABORTED;
|
||||
}
|
||||
if (EFI_ERROR (Status) || (Resp == NULL) || (*Resp == ShellPromptResponseQuit)) {
|
||||
ShellCommandRegisterExit (TRUE, 0);
|
||||
ShellStatus = SHELL_ABORTED;
|
||||
}
|
||||
|
||||
if (Resp != NULL) {
|
||||
FreePool (Resp);
|
||||
}
|
||||
if (Resp != NULL) {
|
||||
FreePool (Resp);
|
||||
}
|
||||
|
||||
return ShellStatus;
|
||||
|
|
|
|||
|
|
@ -224,49 +224,43 @@ MainCmdTouch (
|
|||
// we insufficient parameters
|
||||
//
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_FEW), gShellLevel3HiiHandle, L"touch");
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
} else {
|
||||
return SHELL_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
//
|
||||
// get a list with each file specified by parameters
|
||||
// if parameter is a directory then add all the files below it to the list
|
||||
//
|
||||
for ( ParamCount = 1, Param = ShellCommandLineGetRawValue (Package, ParamCount)
|
||||
; Param != NULL
|
||||
; ParamCount++, Param = ShellCommandLineGetRawValue (Package, ParamCount)
|
||||
)
|
||||
{
|
||||
Status = ShellOpenFileMetaArg ((CHAR16 *)Param, EFI_FILE_MODE_READ|EFI_FILE_MODE_WRITE, &FileList);
|
||||
if (EFI_ERROR (Status)) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel3HiiHandle, L"touch", (CHAR16 *)Param);
|
||||
return SHELL_NOT_FOUND;
|
||||
}
|
||||
|
||||
//
|
||||
// get a list with each file specified by parameters
|
||||
// if parameter is a directory then add all the files below it to the list
|
||||
// check that we have at least 1 file
|
||||
//
|
||||
for ( ParamCount = 1, Param = ShellCommandLineGetRawValue (Package, ParamCount)
|
||||
; Param != NULL
|
||||
; ParamCount++, Param = ShellCommandLineGetRawValue (Package, ParamCount)
|
||||
)
|
||||
{
|
||||
Status = ShellOpenFileMetaArg ((CHAR16 *)Param, EFI_FILE_MODE_READ|EFI_FILE_MODE_WRITE, &FileList);
|
||||
if (EFI_ERROR (Status)) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel3HiiHandle, L"touch", (CHAR16 *)Param);
|
||||
ShellStatus = SHELL_NOT_FOUND;
|
||||
break;
|
||||
}
|
||||
if ((FileList == NULL) || IsListEmpty (&FileList->Link)) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_FILE_NF), gShellLevel3HiiHandle, L"touch", Param);
|
||||
continue;
|
||||
}
|
||||
|
||||
//
|
||||
// make sure we completed the param parsing successfully...
|
||||
// Also make sure that any previous action was successful
|
||||
//
|
||||
if (ShellStatus == SHELL_SUCCESS) {
|
||||
//
|
||||
// check that we have at least 1 file
|
||||
//
|
||||
if ((FileList == NULL) || IsListEmpty (&FileList->Link)) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_FILE_NF), gShellLevel3HiiHandle, L"touch", Param);
|
||||
continue;
|
||||
} else {
|
||||
ShellStatus = ProcessFileList (FileList, ShellCommandLineGetFlag (Package, L"-r"));
|
||||
}
|
||||
}
|
||||
ShellStatus = ProcessFileList (FileList, ShellCommandLineGetFlag (Package, L"-r"));
|
||||
|
||||
//
|
||||
// Free the fileList
|
||||
//
|
||||
if ((FileList != NULL) && !IsListEmpty (&FileList->Link)) {
|
||||
Status = ShellCloseFileMetaArg (&FileList);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
}
|
||||
//
|
||||
// Free the fileList
|
||||
//
|
||||
Status = ShellCloseFileMetaArg (&FileList);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
FileList = NULL;
|
||||
|
||||
FileList = NULL;
|
||||
if (ShellStatus != SHELL_SUCCESS) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -255,55 +255,49 @@ MainCmdType (
|
|||
|
||||
if (AsciiMode && UnicodeMode) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel3HiiHandle, L"type", L"-a & -u");
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
return SHELL_INVALID_PARAMETER;
|
||||
} else if (ShellCommandLineGetRawValue (Package, 1) == NULL) {
|
||||
//
|
||||
// we insufficient parameters
|
||||
//
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_FEW), gShellLevel3HiiHandle, L"type");
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
} else {
|
||||
return SHELL_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
//
|
||||
// get a list with each file specified by parameters
|
||||
// if parameter is a directory then add all the files below it to the list
|
||||
//
|
||||
for ( ParamCount = 1, Param = ShellCommandLineGetRawValue (Package, ParamCount)
|
||||
; Param != NULL
|
||||
; ParamCount++, Param = ShellCommandLineGetRawValue (Package, ParamCount)
|
||||
)
|
||||
{
|
||||
Status = ShellOpenFileMetaArg ((CHAR16 *)Param, EFI_FILE_MODE_READ, &FileList);
|
||||
if (EFI_ERROR (Status)) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_FILE_OPEN_FAIL), gShellLevel3HiiHandle, L"type", (CHAR16 *)Param);
|
||||
return SHELL_NOT_FOUND;
|
||||
}
|
||||
|
||||
//
|
||||
// get a list with each file specified by parameters
|
||||
// if parameter is a directory then add all the files below it to the list
|
||||
// check that we have at least 1 file
|
||||
//
|
||||
for ( ParamCount = 1, Param = ShellCommandLineGetRawValue (Package, ParamCount)
|
||||
; Param != NULL
|
||||
; ParamCount++, Param = ShellCommandLineGetRawValue (Package, ParamCount)
|
||||
)
|
||||
{
|
||||
Status = ShellOpenFileMetaArg ((CHAR16 *)Param, EFI_FILE_MODE_READ, &FileList);
|
||||
if (EFI_ERROR (Status)) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_FILE_OPEN_FAIL), gShellLevel3HiiHandle, L"type", (CHAR16 *)Param);
|
||||
ShellStatus = SHELL_NOT_FOUND;
|
||||
break;
|
||||
}
|
||||
if ((FileList == NULL) || IsListEmpty (&FileList->Link)) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_FILE_NF), gShellLevel3HiiHandle, L"type", Param);
|
||||
continue;
|
||||
}
|
||||
|
||||
//
|
||||
// make sure we completed the param parsing successfully...
|
||||
// Also make sure that any previous action was successful
|
||||
//
|
||||
if (ShellStatus == SHELL_SUCCESS) {
|
||||
//
|
||||
// check that we have at least 1 file
|
||||
//
|
||||
if ((FileList == NULL) || IsListEmpty (&FileList->Link)) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_FILE_NF), gShellLevel3HiiHandle, L"type", Param);
|
||||
continue;
|
||||
} else {
|
||||
ShellStatus = ProcessFileList (FileList, AsciiMode, UnicodeMode);
|
||||
}
|
||||
}
|
||||
ShellStatus = ProcessFileList (FileList, AsciiMode, UnicodeMode);
|
||||
|
||||
//
|
||||
// Free the fileList
|
||||
//
|
||||
if ((FileList != NULL) && !IsListEmpty (&FileList->Link)) {
|
||||
Status = ShellCloseFileMetaArg (&FileList);
|
||||
}
|
||||
//
|
||||
// Free the fileList
|
||||
//
|
||||
Status = ShellCloseFileMetaArg (&FileList);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
FileList = NULL;
|
||||
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
FileList = NULL;
|
||||
if (ShellStatus != SHELL_SUCCESS) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -48,60 +48,60 @@ MainCmdVer (
|
|||
// we have too many parameters
|
||||
//
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel3HiiHandle, L"ver");
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
} else {
|
||||
if (ShellCommandLineGetFlag (Package, L"-s")) {
|
||||
if (ShellCommandLineGetFlag (Package, L"-terse") || ShellCommandLineGetFlag (Package, L"-t")) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_CONFLICT), gShellLevel3HiiHandle, L"ver", L"-t or -terse", L"-s");
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
} else {
|
||||
ShellPrintHiiEx (
|
||||
0,
|
||||
gST->ConOut->Mode->CursorRow,
|
||||
NULL,
|
||||
STRING_TOKEN (STR_VER_OUTPUT_SIMPLE),
|
||||
gShellLevel3HiiHandle,
|
||||
gEfiShellProtocol->MajorVersion,
|
||||
gEfiShellProtocol->MinorVersion
|
||||
);
|
||||
}
|
||||
return SHELL_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
if (ShellCommandLineGetFlag (Package, L"-s")) {
|
||||
if (ShellCommandLineGetFlag (Package, L"-terse") || ShellCommandLineGetFlag (Package, L"-t")) {
|
||||
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_CONFLICT), gShellLevel3HiiHandle, L"ver", L"-t or -terse", L"-s");
|
||||
ShellStatus = SHELL_INVALID_PARAMETER;
|
||||
} else {
|
||||
ShellPrintHiiEx (
|
||||
0,
|
||||
gST->ConOut->Mode->CursorRow,
|
||||
NULL,
|
||||
STRING_TOKEN (STR_VER_OUTPUT_SHELL),
|
||||
STRING_TOKEN (STR_VER_OUTPUT_SIMPLE),
|
||||
gShellLevel3HiiHandle,
|
||||
SupportLevel[Level],
|
||||
gEfiShellProtocol->MajorVersion,
|
||||
gEfiShellProtocol->MinorVersion
|
||||
);
|
||||
if (!ShellCommandLineGetFlag (Package, L"-terse") && !ShellCommandLineGetFlag (Package, L"-t")) {
|
||||
ShellPrintHiiDefaultEx (
|
||||
STRING_TOKEN (STR_VER_OUTPUT_SUPPLIER),
|
||||
gShellLevel3HiiHandle,
|
||||
(CHAR16 *)PcdGetPtr (PcdShellSupplier)
|
||||
);
|
||||
|
||||
ShellPrintHiiDefaultEx (
|
||||
STRING_TOKEN (STR_VER_OUTPUT_UEFI),
|
||||
gShellLevel3HiiHandle,
|
||||
(gST->Hdr.Revision&0xffff0000)>>16,
|
||||
(gST->Hdr.Revision&0x0000ffff),
|
||||
gST->FirmwareVendor,
|
||||
gST->FirmwareRevision
|
||||
);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
ShellPrintHiiEx (
|
||||
0,
|
||||
gST->ConOut->Mode->CursorRow,
|
||||
NULL,
|
||||
STRING_TOKEN (STR_VER_OUTPUT_SHELL),
|
||||
gShellLevel3HiiHandle,
|
||||
SupportLevel[Level],
|
||||
gEfiShellProtocol->MajorVersion,
|
||||
gEfiShellProtocol->MinorVersion
|
||||
);
|
||||
if (!ShellCommandLineGetFlag (Package, L"-terse") && !ShellCommandLineGetFlag (Package, L"-t")) {
|
||||
ShellPrintHiiDefaultEx (
|
||||
STRING_TOKEN (STR_VER_OUTPUT_SUPPLIER),
|
||||
gShellLevel3HiiHandle,
|
||||
(CHAR16 *)PcdGetPtr (PcdShellSupplier)
|
||||
);
|
||||
|
||||
//
|
||||
// implementation specific support for displaying processor architecture
|
||||
//
|
||||
if (ShellCommandLineGetFlag (Package, L"-_pa")) {
|
||||
ShellPrintDefaultEx (L"%d\r\n", sizeof (UINTN) == sizeof (UINT64) ? 64 : 32);
|
||||
ShellPrintHiiDefaultEx (
|
||||
STRING_TOKEN (STR_VER_OUTPUT_UEFI),
|
||||
gShellLevel3HiiHandle,
|
||||
(gST->Hdr.Revision&0xffff0000)>>16,
|
||||
(gST->Hdr.Revision&0x0000ffff),
|
||||
gST->FirmwareVendor,
|
||||
gST->FirmwareRevision
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// implementation specific support for displaying processor architecture
|
||||
//
|
||||
if (ShellCommandLineGetFlag (Package, L"-_pa")) {
|
||||
ShellPrintDefaultEx (L"%d\r\n", sizeof (UINTN) == sizeof (UINT64) ? 64 : 32);
|
||||
}
|
||||
|
||||
return ShellStatus;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue