summaryrefslogtreecommitdiff
path: root/ShellPkg/Library/UefiShellLevel2CommandsLib
diff options
context:
space:
mode:
Diffstat (limited to 'ShellPkg/Library/UefiShellLevel2CommandsLib')
-rw-r--r--ShellPkg/Library/UefiShellLevel2CommandsLib/Attrib.c318
-rw-r--r--ShellPkg/Library/UefiShellLevel2CommandsLib/Cd.c2
-rw-r--r--ShellPkg/Library/UefiShellLevel2CommandsLib/Cp.c166
-rw-r--r--ShellPkg/Library/UefiShellLevel2CommandsLib/Load.c96
-rw-r--r--ShellPkg/Library/UefiShellLevel2CommandsLib/Ls.c276
-rw-r--r--ShellPkg/Library/UefiShellLevel2CommandsLib/Map.c354
-rw-r--r--ShellPkg/Library/UefiShellLevel2CommandsLib/MkDir.c166
-rw-r--r--ShellPkg/Library/UefiShellLevel2CommandsLib/Mv.c154
-rw-r--r--ShellPkg/Library/UefiShellLevel2CommandsLib/Parse.c72
-rw-r--r--ShellPkg/Library/UefiShellLevel2CommandsLib/Reset.c152
-rw-r--r--ShellPkg/Library/UefiShellLevel2CommandsLib/Rm.c122
-rw-r--r--ShellPkg/Library/UefiShellLevel2CommandsLib/Set.c106
-rw-r--r--ShellPkg/Library/UefiShellLevel2CommandsLib/TimeDate.c594
-rw-r--r--ShellPkg/Library/UefiShellLevel2CommandsLib/Vol.c100
14 files changed, 1355 insertions, 1323 deletions
diff --git a/ShellPkg/Library/UefiShellLevel2CommandsLib/Attrib.c b/ShellPkg/Library/UefiShellLevel2CommandsLib/Attrib.c
index b434f1d279..89678a4182 100644
--- a/ShellPkg/Library/UefiShellLevel2CommandsLib/Attrib.c
+++ b/ShellPkg/Library/UefiShellLevel2CommandsLib/Attrib.c
@@ -70,182 +70,169 @@ ShellCommandRunAttrib (
} else {
ASSERT (FALSE);
}
+
+ return ShellStatus;
+ }
+
+ //
+ // check for "-?"
+ //
+ if (ShellCommandLineGetFlag (Package, L"-?")) {
+ ASSERT (FALSE);
} else {
+ FileAttributesToAdd = 0;
+ FileAttributesToRemove = 0;
+
//
- // check for "-?"
+ // apply or remove each flag
//
- if (ShellCommandLineGetFlag (Package, L"-?")) {
- ASSERT (FALSE);
- } else {
- FileAttributesToAdd = 0;
- FileAttributesToRemove = 0;
+ if (ShellCommandLineGetFlag (Package, L"+a")) {
+ FileAttributesToAdd |= EFI_FILE_ARCHIVE;
+ }
- //
- // apply or remove each flag
- //
- if (ShellCommandLineGetFlag (Package, L"+a")) {
- FileAttributesToAdd |= EFI_FILE_ARCHIVE;
- }
+ if (ShellCommandLineGetFlag (Package, L"-a")) {
+ FileAttributesToRemove |= EFI_FILE_ARCHIVE;
+ }
- if (ShellCommandLineGetFlag (Package, L"-a")) {
- FileAttributesToRemove |= EFI_FILE_ARCHIVE;
- }
+ if (ShellCommandLineGetFlag (Package, L"+s")) {
+ FileAttributesToAdd |= EFI_FILE_SYSTEM;
+ }
- if (ShellCommandLineGetFlag (Package, L"+s")) {
- FileAttributesToAdd |= EFI_FILE_SYSTEM;
- }
+ if (ShellCommandLineGetFlag (Package, L"-s")) {
+ FileAttributesToRemove |= EFI_FILE_SYSTEM;
+ }
- if (ShellCommandLineGetFlag (Package, L"-s")) {
- FileAttributesToRemove |= EFI_FILE_SYSTEM;
- }
+ if (ShellCommandLineGetFlag (Package, L"+h")) {
+ FileAttributesToAdd |= EFI_FILE_HIDDEN;
+ }
- if (ShellCommandLineGetFlag (Package, L"+h")) {
- FileAttributesToAdd |= EFI_FILE_HIDDEN;
- }
+ if (ShellCommandLineGetFlag (Package, L"-h")) {
+ FileAttributesToRemove |= EFI_FILE_HIDDEN;
+ }
- if (ShellCommandLineGetFlag (Package, L"-h")) {
- FileAttributesToRemove |= EFI_FILE_HIDDEN;
- }
+ if (ShellCommandLineGetFlag (Package, L"+r")) {
+ FileAttributesToAdd |= EFI_FILE_READ_ONLY;
+ }
- if (ShellCommandLineGetFlag (Package, L"+r")) {
- FileAttributesToAdd |= EFI_FILE_READ_ONLY;
- }
+ if (ShellCommandLineGetFlag (Package, L"-r")) {
+ FileAttributesToRemove |= EFI_FILE_READ_ONLY;
+ }
- if (ShellCommandLineGetFlag (Package, L"-r")) {
- FileAttributesToRemove |= EFI_FILE_READ_ONLY;
- }
+ if ((FileAttributesToRemove == 0) && (FileAttributesToAdd == 0)) {
+ //
+ // Do display as we have no attributes to change
+ //
+ for ( ParamNumberCount = 1
+ ;
+ ; ParamNumberCount++
+ )
+ {
+ FileName = ShellCommandLineGetRawValue (Package, ParamNumberCount);
+ // if we dont have anything left, move on...
+ if ((FileName == NULL) && (ParamNumberCount == 1)) {
+ FileName = (CHAR16 *)AllFiles;
+ } else if (FileName == NULL) {
+ break;
+ }
- if ((FileAttributesToRemove == 0) && (FileAttributesToAdd == 0)) {
- //
- // Do display as we have no attributes to change
- //
- for ( ParamNumberCount = 1
- ;
- ; ParamNumberCount++
- )
- {
- FileName = ShellCommandLineGetRawValue (Package, ParamNumberCount);
- // if we dont have anything left, move on...
- if ((FileName == NULL) && (ParamNumberCount == 1)) {
- FileName = (CHAR16 *)AllFiles;
- } else if (FileName == NULL) {
- break;
+ ASSERT (ListOfFiles == NULL);
+ Status = ShellOpenFileMetaArg ((CHAR16 *)FileName, EFI_FILE_MODE_READ, &ListOfFiles);
+ if (EFI_ERROR (Status)) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_FILE_OPEN_FAIL), gShellLevel2HiiHandle, L"attrib", ShellCommandLineGetRawValue (Package, ParamNumberCount));
+ ShellStatus = SHELL_NOT_FOUND;
+ } else {
+ for (FileNode = (EFI_SHELL_FILE_INFO *)GetFirstNode (&ListOfFiles->Link)
+ ; !IsNull (&ListOfFiles->Link, &FileNode->Link)
+ ; FileNode = (EFI_SHELL_FILE_INFO *)GetNextNode (&ListOfFiles->Link, &FileNode->Link)
+ )
+ {
+ ShellPrintHiiDefaultEx (
+ STRING_TOKEN (STR_ATTRIB_OUTPUT_LINE),
+ gShellLevel2HiiHandle,
+ FileNode->Info->Attribute&EFI_FILE_DIRECTORY ? L'D' : L' ',
+ FileNode->Info->Attribute&EFI_FILE_ARCHIVE ? L'A' : L' ',
+ FileNode->Info->Attribute&EFI_FILE_SYSTEM ? L'S' : L' ',
+ FileNode->Info->Attribute&EFI_FILE_HIDDEN ? L'H' : L' ',
+ FileNode->Info->Attribute&EFI_FILE_READ_ONLY ? L'R' : L' ',
+ FileNode->FileName
+ );
+
+ if (ShellGetExecutionBreakFlag ()) {
+ ShellStatus = SHELL_ABORTED;
+ break;
+ }
}
- ASSERT (ListOfFiles == NULL);
- Status = ShellOpenFileMetaArg ((CHAR16 *)FileName, EFI_FILE_MODE_READ, &ListOfFiles);
+ Status = ShellCloseFileMetaArg (&ListOfFiles);
+ ListOfFiles = NULL;
if (EFI_ERROR (Status)) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_FILE_OPEN_FAIL), gShellLevel2HiiHandle, L"attrib", ShellCommandLineGetRawValue (Package, ParamNumberCount));
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_FILE_CLOSE_FAIL), gShellLevel2HiiHandle, L"attrib", ShellCommandLineGetRawValue (Package, ParamNumberCount));
ShellStatus = SHELL_NOT_FOUND;
- } else {
- for (FileNode = (EFI_SHELL_FILE_INFO *)GetFirstNode (&ListOfFiles->Link)
- ; !IsNull (&ListOfFiles->Link, &FileNode->Link)
- ; FileNode = (EFI_SHELL_FILE_INFO *)GetNextNode (&ListOfFiles->Link, &FileNode->Link)
- )
- {
- ShellPrintHiiDefaultEx (
- STRING_TOKEN (STR_ATTRIB_OUTPUT_LINE),
- gShellLevel2HiiHandle,
- FileNode->Info->Attribute&EFI_FILE_DIRECTORY ? L'D' : L' ',
- FileNode->Info->Attribute&EFI_FILE_ARCHIVE ? L'A' : L' ',
- FileNode->Info->Attribute&EFI_FILE_SYSTEM ? L'S' : L' ',
- FileNode->Info->Attribute&EFI_FILE_HIDDEN ? L'H' : L' ',
- FileNode->Info->Attribute&EFI_FILE_READ_ONLY ? L'R' : L' ',
- FileNode->FileName
- );
-
- if (ShellGetExecutionBreakFlag ()) {
- ShellStatus = SHELL_ABORTED;
- break;
- }
- }
+ }
+ } // for loop for handling wildcard filenames
+ } // for loop for printing out the info
+ } else if ((FileAttributesToRemove & FileAttributesToAdd) != 0) {
+ //
+ // fail as we have conflcting params.
+ //
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_CON), gShellLevel2HiiHandle, L"attrib");
+ ShellStatus = SHELL_INVALID_PARAMETER;
+ } else {
+ //
+ // enumerate through all the files/directories and apply the attributes
+ //
+ for ( ParamNumberCount = 1
+ ;
+ ; ParamNumberCount++
+ )
+ {
+ FileName = ShellCommandLineGetRawValue (Package, ParamNumberCount);
+ // if we dont have anything left, move on...
+ if (FileName == NULL) {
+ //
+ // make sure we are not failing on the first one we do... if yes that's an error...
+ //
+ if (ParamNumberCount == 1) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_FEW), gShellLevel2HiiHandle, L"attrib");
+ ShellStatus = SHELL_INVALID_PARAMETER;
+ }
+
+ break;
+ }
- Status = ShellCloseFileMetaArg (&ListOfFiles);
- ListOfFiles = NULL;
- if (EFI_ERROR (Status)) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_FILE_CLOSE_FAIL), gShellLevel2HiiHandle, L"attrib", ShellCommandLineGetRawValue (Package, ParamNumberCount));
- ShellStatus = SHELL_NOT_FOUND;
- }
- } // for loop for handling wildcard filenames
- } // for loop for printing out the info
- } else if ((FileAttributesToRemove & FileAttributesToAdd) != 0) {
//
- // fail as we have conflcting params.
+ // OpenFileByName / GetFileInfo / Change attributes / SetFileInfo / CloseFile / free memory
+ // for each file or directory on the line.
//
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_CON), gShellLevel2HiiHandle, L"attrib");
- ShellStatus = SHELL_INVALID_PARAMETER;
- } else {
+
//
- // enumerate through all the files/directories and apply the attributes
+ // Open the file(s)
//
- for ( ParamNumberCount = 1
- ;
- ; ParamNumberCount++
- )
- {
- FileName = ShellCommandLineGetRawValue (Package, ParamNumberCount);
- // if we dont have anything left, move on...
- if (FileName == NULL) {
+ ASSERT (ListOfFiles == NULL);
+ Status = ShellOpenFileMetaArg ((CHAR16 *)FileName, EFI_FILE_MODE_READ, &ListOfFiles);
+ if (EFI_ERROR (Status)) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_FILE_OPEN_FAIL), gShellLevel2HiiHandle, L"attrib", ShellCommandLineGetRawValue (Package, ParamNumberCount));
+ ShellStatus = SHELL_NOT_FOUND;
+ } else {
+ for (FileNode = (EFI_SHELL_FILE_INFO *)GetFirstNode (&ListOfFiles->Link)
+ ; !IsNull (&ListOfFiles->Link, &FileNode->Link)
+ ; FileNode = (EFI_SHELL_FILE_INFO *)GetNextNode (&ListOfFiles->Link, &FileNode->Link)
+ )
+ {
//
- // make sure we are not failing on the first one we do... if yes that's an error...
+ // skip the directory traversing stuff...
//
- if (ParamNumberCount == 1) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_FEW), gShellLevel2HiiHandle, L"attrib");
- ShellStatus = SHELL_INVALID_PARAMETER;
+ if ((StrCmp (FileNode->FileName, L".") == 0) || (StrCmp (FileNode->FileName, L"..") == 0)) {
+ continue;
}
- break;
- }
-
- //
- // OpenFileByName / GetFileInfo / Change attributes / SetFileInfo / CloseFile / free memory
- // for each file or directory on the line.
- //
-
- //
- // Open the file(s)
- //
- ASSERT (ListOfFiles == NULL);
- Status = ShellOpenFileMetaArg ((CHAR16 *)FileName, EFI_FILE_MODE_READ, &ListOfFiles);
- if (EFI_ERROR (Status)) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_FILE_OPEN_FAIL), gShellLevel2HiiHandle, L"attrib", ShellCommandLineGetRawValue (Package, ParamNumberCount));
- ShellStatus = SHELL_NOT_FOUND;
- } else {
- for (FileNode = (EFI_SHELL_FILE_INFO *)GetFirstNode (&ListOfFiles->Link)
- ; !IsNull (&ListOfFiles->Link, &FileNode->Link)
- ; FileNode = (EFI_SHELL_FILE_INFO *)GetNextNode (&ListOfFiles->Link, &FileNode->Link)
- )
- {
- //
- // skip the directory traversing stuff...
- //
- if ((StrCmp (FileNode->FileName, L".") == 0) || (StrCmp (FileNode->FileName, L"..") == 0)) {
- continue;
- }
-
- FileInfo = gEfiShellProtocol->GetFileInfo (FileNode->Handle);
-
- //
- // if we are removing Read-Only we need to do that alone
- //
- if ((FileAttributesToRemove & EFI_FILE_READ_ONLY) == EFI_FILE_READ_ONLY) {
- FileInfo->Attribute &= ~EFI_FILE_READ_ONLY;
- //
- // SetFileInfo
- //
- Status = ShellSetFileInfo (FileNode->Handle, FileInfo);
- if (EFI_ERROR (Status)) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_FILE_AD), gShellLevel2HiiHandle, L"attrib", ShellCommandLineGetRawValue (Package, ParamNumberCount));
- ShellStatus = SHELL_ACCESS_DENIED;
- }
- }
-
- //
- // change the attribute
- //
- FileInfo->Attribute &= ~FileAttributesToRemove;
- FileInfo->Attribute |= FileAttributesToAdd;
+ FileInfo = gEfiShellProtocol->GetFileInfo (FileNode->Handle);
+ //
+ // if we are removing Read-Only we need to do that alone
+ //
+ if ((FileAttributesToRemove & EFI_FILE_READ_ONLY) == EFI_FILE_READ_ONLY) {
+ FileInfo->Attribute &= ~EFI_FILE_READ_ONLY;
//
// SetFileInfo
//
@@ -254,18 +241,33 @@ ShellCommandRunAttrib (
ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_FILE_AD), gShellLevel2HiiHandle, L"attrib", ShellCommandLineGetRawValue (Package, ParamNumberCount));
ShellStatus = SHELL_ACCESS_DENIED;
}
-
- SHELL_FREE_NON_NULL (FileInfo);
}
- Status = ShellCloseFileMetaArg (&ListOfFiles);
- ListOfFiles = NULL;
+ //
+ // change the attribute
+ //
+ FileInfo->Attribute &= ~FileAttributesToRemove;
+ FileInfo->Attribute |= FileAttributesToAdd;
+
+ //
+ // SetFileInfo
+ //
+ Status = ShellSetFileInfo (FileNode->Handle, FileInfo);
if (EFI_ERROR (Status)) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_FILE_CLOSE_FAIL), gShellLevel2HiiHandle, L"attrib", ShellCommandLineGetRawValue (Package, ParamNumberCount));
- ShellStatus = SHELL_NOT_FOUND;
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_FILE_AD), gShellLevel2HiiHandle, L"attrib", ShellCommandLineGetRawValue (Package, ParamNumberCount));
+ ShellStatus = SHELL_ACCESS_DENIED;
}
- } // for loop for handling wildcard filenames
- }
+
+ SHELL_FREE_NON_NULL (FileInfo);
+ }
+
+ Status = ShellCloseFileMetaArg (&ListOfFiles);
+ ListOfFiles = NULL;
+ if (EFI_ERROR (Status)) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_FILE_CLOSE_FAIL), gShellLevel2HiiHandle, L"attrib", ShellCommandLineGetRawValue (Package, ParamNumberCount));
+ ShellStatus = SHELL_NOT_FOUND;
+ }
+ } // for loop for handling wildcard filenames
}
}
}
diff --git a/ShellPkg/Library/UefiShellLevel2CommandsLib/Cd.c b/ShellPkg/Library/UefiShellLevel2CommandsLib/Cd.c
index 71c3db8df2..639425f27f 100644
--- a/ShellPkg/Library/UefiShellLevel2CommandsLib/Cd.c
+++ b/ShellPkg/Library/UefiShellLevel2CommandsLib/Cd.c
@@ -219,6 +219,8 @@ ShellCommandRunCd (
} else {
ASSERT (FALSE);
}
+
+ return ShellStatus;
}
//
diff --git a/ShellPkg/Library/UefiShellLevel2CommandsLib/Cp.c b/ShellPkg/Library/UefiShellLevel2CommandsLib/Cp.c
index fcbba7faaf..cf321eb0dc 100644
--- a/ShellPkg/Library/UefiShellLevel2CommandsLib/Cp.c
+++ b/ShellPkg/Library/UefiShellLevel2CommandsLib/Cp.c
@@ -700,106 +700,108 @@ ShellCommandRunCp (
} else {
ASSERT (FALSE);
}
- } else {
- //
- // check for "-?"
- //
- if (ShellCommandLineGetFlag (Package, L"-?")) {
- ASSERT (FALSE);
- }
- //
- // Initialize SilentMode and RecursiveMode
- //
- if (gEfiShellProtocol->BatchIsActive ()) {
- SilentMode = TRUE;
- } else {
- SilentMode = ShellCommandLineGetFlag (Package, L"-q");
- }
+ return ShellStatus;
+ }
- RecursiveMode = ShellCommandLineGetFlag (Package, L"-r");
+ //
+ // check for "-?"
+ //
+ if (ShellCommandLineGetFlag (Package, L"-?")) {
+ ASSERT (FALSE);
+ }
- switch (ParamCount = ShellCommandLineGetCount (Package)) {
- case 0:
- case 1:
- //
- // we have insufficient parameters
- //
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_FEW), gShellLevel2HiiHandle, L"cp");
+ //
+ // Initialize SilentMode and RecursiveMode
+ //
+ if (gEfiShellProtocol->BatchIsActive ()) {
+ SilentMode = TRUE;
+ } else {
+ SilentMode = ShellCommandLineGetFlag (Package, L"-q");
+ }
+
+ RecursiveMode = ShellCommandLineGetFlag (Package, L"-r");
+
+ switch (ParamCount = ShellCommandLineGetCount (Package)) {
+ case 0:
+ case 1:
+ //
+ // we have insufficient parameters
+ //
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_FEW), gShellLevel2HiiHandle, L"cp");
+ ShellStatus = SHELL_INVALID_PARAMETER;
+ break;
+ case 2:
+ //
+ // must have valid CWD for single parameter...
+ //
+ Cwd = ShellGetCurrentDir (NULL);
+ if (Cwd == NULL) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_NO_CWD), gShellLevel2HiiHandle, L"cp");
ShellStatus = SHELL_INVALID_PARAMETER;
- break;
- case 2:
- //
- // must have valid CWD for single parameter...
- //
- Cwd = ShellGetCurrentDir (NULL);
- if (Cwd == NULL) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_NO_CWD), gShellLevel2HiiHandle, L"cp");
- ShellStatus = SHELL_INVALID_PARAMETER;
+ } else {
+ Status = ShellOpenFileMetaArg ((CHAR16 *)ShellCommandLineGetRawValue (Package, 1), EFI_FILE_MODE_WRITE|EFI_FILE_MODE_READ, &FileList);
+ if ((FileList == NULL) || IsListEmpty (&FileList->Link) || EFI_ERROR (Status)) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_FILE_NF), gShellLevel2HiiHandle, L"cp", ShellCommandLineGetRawValue (Package, 1));
+ ShellStatus = SHELL_NOT_FOUND;
} else {
- Status = ShellOpenFileMetaArg ((CHAR16 *)ShellCommandLineGetRawValue (Package, 1), EFI_FILE_MODE_WRITE|EFI_FILE_MODE_READ, &FileList);
- if ((FileList == NULL) || IsListEmpty (&FileList->Link) || EFI_ERROR (Status)) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_FILE_NF), gShellLevel2HiiHandle, L"cp", ShellCommandLineGetRawValue (Package, 1));
- ShellStatus = SHELL_NOT_FOUND;
+ FullCwd = AllocateZeroPool (StrSize (Cwd) + sizeof (CHAR16));
+ if (FullCwd == NULL) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_OUT_MEM), gShellLevel2HiiHandle, L"cp");
+ ShellStatus = SHELL_OUT_OF_RESOURCES;
} else {
- FullCwd = AllocateZeroPool (StrSize (Cwd) + sizeof (CHAR16));
- if (FullCwd == NULL) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_OUT_MEM), gShellLevel2HiiHandle, L"cp");
- ShellStatus = SHELL_OUT_OF_RESOURCES;
- } else {
- StrCpyS (FullCwd, StrSize (Cwd) / sizeof (CHAR16) + 1, Cwd);
- ShellStatus = ProcessValidateAndCopyFiles (FileList, FullCwd, SilentMode, RecursiveMode);
- FreePool (FullCwd);
- }
+ StrCpyS (FullCwd, StrSize (Cwd) / sizeof (CHAR16) + 1, Cwd);
+ ShellStatus = ProcessValidateAndCopyFiles (FileList, FullCwd, SilentMode, RecursiveMode);
+ FreePool (FullCwd);
}
}
+ }
- break;
- default:
- //
- // Make a big list of all the files...
- //
- for (ParamCount--, LoopCounter = 1; LoopCounter < ParamCount && ShellStatus == SHELL_SUCCESS; LoopCounter++) {
- if (ShellGetExecutionBreakFlag ()) {
- break;
- }
+ break;
+ default:
+ //
+ // Make a big list of all the files...
+ //
+ for (ParamCount--, LoopCounter = 1; LoopCounter < ParamCount && ShellStatus == SHELL_SUCCESS; LoopCounter++) {
+ if (ShellGetExecutionBreakFlag ()) {
+ break;
+ }
- Status = ShellOpenFileMetaArg ((CHAR16 *)ShellCommandLineGetRawValue (Package, LoopCounter), EFI_FILE_MODE_WRITE|EFI_FILE_MODE_READ, &FileList);
- if (EFI_ERROR (Status) || (FileList == NULL) || IsListEmpty (&FileList->Link)) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_FILE_NF), gShellLevel2HiiHandle, L"cp", ShellCommandLineGetRawValue (Package, LoopCounter));
- ShellStatus = SHELL_NOT_FOUND;
- }
+ Status = ShellOpenFileMetaArg ((CHAR16 *)ShellCommandLineGetRawValue (Package, LoopCounter), EFI_FILE_MODE_WRITE|EFI_FILE_MODE_READ, &FileList);
+ if (EFI_ERROR (Status) || (FileList == NULL) || IsListEmpty (&FileList->Link)) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_FILE_NF), gShellLevel2HiiHandle, L"cp", ShellCommandLineGetRawValue (Package, LoopCounter));
+ ShellStatus = SHELL_NOT_FOUND;
}
+ }
- if (ShellStatus != SHELL_SUCCESS) {
- Status = ShellCloseFileMetaArg (&FileList);
- } else {
- //
- // now copy them all...
- //
- if ((FileList != NULL) && !IsListEmpty (&FileList->Link)) {
- ShellStatus = ProcessValidateAndCopyFiles (FileList, PathCleanUpDirectories ((CHAR16 *)ShellCommandLineGetRawValue (Package, ParamCount)), SilentMode, RecursiveMode);
- Status = ShellCloseFileMetaArg (&FileList);
- if (EFI_ERROR (Status) && (ShellStatus == SHELL_SUCCESS)) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_ERR_FILE), gShellLevel2HiiHandle, L"cp", ShellCommandLineGetRawValue (Package, ParamCount), ShellStatus|MAX_BIT);
- ShellStatus = SHELL_ACCESS_DENIED;
- }
+ if (ShellStatus != SHELL_SUCCESS) {
+ Status = ShellCloseFileMetaArg (&FileList);
+ } else {
+ //
+ // now copy them all...
+ //
+ if ((FileList != NULL) && !IsListEmpty (&FileList->Link)) {
+ ShellStatus = ProcessValidateAndCopyFiles (FileList, PathCleanUpDirectories ((CHAR16 *)ShellCommandLineGetRawValue (Package, ParamCount)), SilentMode, RecursiveMode);
+ Status = ShellCloseFileMetaArg (&FileList);
+ if (EFI_ERROR (Status) && (ShellStatus == SHELL_SUCCESS)) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_ERR_FILE), gShellLevel2HiiHandle, L"cp", ShellCommandLineGetRawValue (Package, ParamCount), ShellStatus|MAX_BIT);
+ ShellStatus = SHELL_ACCESS_DENIED;
}
}
+ }
- break;
- } // switch on parameter count
-
- if (FileList != NULL) {
- ShellCloseFileMetaArg (&FileList);
- }
+ break;
+ } // switch on parameter count
- //
- // free the command line package
- //
- ShellCommandLineFreeVarList (Package);
+ if (FileList != NULL) {
+ ShellCloseFileMetaArg (&FileList);
}
+ //
+ // free the command line package
+ //
+ ShellCommandLineFreeVarList (Package);
+
if (ShellGetExecutionBreakFlag ()) {
return (SHELL_ABORTED);
}
diff --git a/ShellPkg/Library/UefiShellLevel2CommandsLib/Load.c b/ShellPkg/Library/UefiShellLevel2CommandsLib/Load.c
index 3c0b991297..981d9a58b2 100644
--- a/ShellPkg/Library/UefiShellLevel2CommandsLib/Load.c
+++ b/ShellPkg/Library/UefiShellLevel2CommandsLib/Load.c
@@ -222,62 +222,64 @@ ShellCommandRunLoad (
} else {
ASSERT (FALSE);
}
- } else {
+
+ return ShellStatus;
+ }
+
+ //
+ // check for "-?"
+ //
+ if (ShellCommandLineGetFlag (Package, L"-?")) {
+ ASSERT (FALSE);
+ } else if (ShellCommandLineGetRawValue (Package, 1) == NULL) {
//
- // check for "-?"
+ // we didnt get a single file to load parameter
//
- if (ShellCommandLineGetFlag (Package, L"-?")) {
- ASSERT (FALSE);
- } else if (ShellCommandLineGetRawValue (Package, 1) == NULL) {
- //
- // we didnt get a single file to load parameter
- //
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_FEW), gShellLevel2HiiHandle, L"load");
- ShellStatus = SHELL_INVALID_PARAMETER;
- } else {
- for ( ParamCount = 1
- ; ShellCommandLineGetRawValue (Package, ParamCount) != NULL
- ; ParamCount++
- )
- {
- Status = ShellOpenFileMetaArg ((CHAR16 *)ShellCommandLineGetRawValue (Package, ParamCount), EFI_FILE_MODE_READ, &ListHead);
- if (!EFI_ERROR (Status)) {
- for ( Node = (EFI_SHELL_FILE_INFO *)GetFirstNode (&ListHead->Link)
- ; !IsNull (&ListHead->Link, &Node->Link)
- ; Node = (EFI_SHELL_FILE_INFO *)GetNextNode (&ListHead->Link, &Node->Link)
- )
- {
- //
- // once we have an error preserve that value, but finish the loop.
- //
- if (EFI_ERROR (Status)) {
- LoadDriver (Node->FullName, (BOOLEAN)(ShellCommandLineGetFlag (Package, L"-nc") == FALSE));
- } else {
- Status = LoadDriver (Node->FullName, (BOOLEAN)(ShellCommandLineGetFlag (Package, L"-nc") == FALSE));
- }
- } // for loop for multi-open
-
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_FEW), gShellLevel2HiiHandle, L"load");
+ ShellStatus = SHELL_INVALID_PARAMETER;
+ } else {
+ for ( ParamCount = 1
+ ; ShellCommandLineGetRawValue (Package, ParamCount) != NULL
+ ; ParamCount++
+ )
+ {
+ Status = ShellOpenFileMetaArg ((CHAR16 *)ShellCommandLineGetRawValue (Package, ParamCount), EFI_FILE_MODE_READ, &ListHead);
+ if (!EFI_ERROR (Status)) {
+ for ( Node = (EFI_SHELL_FILE_INFO *)GetFirstNode (&ListHead->Link)
+ ; !IsNull (&ListHead->Link, &Node->Link)
+ ; Node = (EFI_SHELL_FILE_INFO *)GetNextNode (&ListHead->Link, &Node->Link)
+ )
+ {
+ //
+ // once we have an error preserve that value, but finish the loop.
+ //
if (EFI_ERROR (Status)) {
- ShellCloseFileMetaArg (&ListHead);
+ LoadDriver (Node->FullName, (BOOLEAN)(ShellCommandLineGetFlag (Package, L"-nc") == FALSE));
} else {
- Status = ShellCloseFileMetaArg (&ListHead);
+ Status = LoadDriver (Node->FullName, (BOOLEAN)(ShellCommandLineGetFlag (Package, L"-nc") == FALSE));
}
+ } // for loop for multi-open
+
+ if (EFI_ERROR (Status)) {
+ ShellCloseFileMetaArg (&ListHead);
} else {
- //
- // no files found.
- //
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_FILE_NF), gShellLevel2HiiHandle, L"load", (CHAR16 *)ShellCommandLineGetRawValue (Package, ParamCount));
- ShellStatus = SHELL_NOT_FOUND;
+ Status = ShellCloseFileMetaArg (&ListHead);
}
- } // for loop for params
- }
-
- //
- // free the command line package
- //
- ShellCommandLineFreeVarList (Package);
+ } else {
+ //
+ // no files found.
+ //
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_FILE_NF), gShellLevel2HiiHandle, L"load", (CHAR16 *)ShellCommandLineGetRawValue (Package, ParamCount));
+ ShellStatus = SHELL_NOT_FOUND;
+ }
+ } // for loop for params
}
+ //
+ // free the command line package
+ //
+ ShellCommandLineFreeVarList (Package);
+
if (EFI_ERROR (Status) && (ShellStatus == SHELL_SUCCESS)) {
ShellStatus = SHELL_DEVICE_ERROR;
}
diff --git a/ShellPkg/Library/UefiShellLevel2CommandsLib/Ls.c b/ShellPkg/Library/UefiShellLevel2CommandsLib/Ls.c
index a4b8c761e9..c72db41788 100644
--- a/ShellPkg/Library/UefiShellLevel2CommandsLib/Ls.c
+++ b/ShellPkg/Library/UefiShellLevel2CommandsLib/Ls.c
@@ -757,171 +757,173 @@ ShellCommandRunLs (
} else {
ASSERT (FALSE);
}
+
+ return ShellStatus;
+ }
+
+ //
+ // check for "-?"
+ //
+ if (ShellCommandLineGetFlag (Package, L"-?")) {
+ ASSERT (FALSE);
+ }
+
+ if (ShellCommandLineGetCount (Package) > 2) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel2HiiHandle, L"ls");
+ ShellStatus = SHELL_INVALID_PARAMETER;
} else {
//
- // check for "-?"
+ // check for -a
//
- if (ShellCommandLineGetFlag (Package, L"-?")) {
- ASSERT (FALSE);
- }
+ if (ShellCommandLineGetFlag (Package, L"-a")) {
+ for ( Attribs = ShellCommandLineGetValue (Package, L"-a")
+ ; Attribs != NULL && *Attribs != CHAR_NULL && ShellStatus == SHELL_SUCCESS
+ ; Attribs++
+ )
+ {
+ switch (*Attribs) {
+ case L'a':
+ case L'A':
+ RequiredAttributes |= EFI_FILE_ARCHIVE;
+ Count++;
+ continue;
+ case L's':
+ case L'S':
+ RequiredAttributes |= EFI_FILE_SYSTEM;
+ Count++;
+ continue;
+ case L'h':
+ case L'H':
+ RequiredAttributes |= EFI_FILE_HIDDEN;
+ Count++;
+ continue;
+ case L'r':
+ case L'R':
+ RequiredAttributes |= EFI_FILE_READ_ONLY;
+ Count++;
+ continue;
+ case L'd':
+ case L'D':
+ RequiredAttributes |= EFI_FILE_DIRECTORY;
+ Count++;
+ continue;
+ default:
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_ATTRIBUTE), gShellLevel2HiiHandle, L"ls", ShellCommandLineGetValue (Package, L"-a"));
+ ShellStatus = SHELL_INVALID_PARAMETER;
+ break;
+ } // switch
+ } // for loop
- if (ShellCommandLineGetCount (Package) > 2) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel2HiiHandle, L"ls");
- ShellStatus = SHELL_INVALID_PARAMETER;
- } else {
//
- // check for -a
+ // if nothing is specified all are specified
//
- if (ShellCommandLineGetFlag (Package, L"-a")) {
- for ( Attribs = ShellCommandLineGetValue (Package, L"-a")
- ; Attribs != NULL && *Attribs != CHAR_NULL && ShellStatus == SHELL_SUCCESS
- ; Attribs++
- )
- {
- switch (*Attribs) {
- case L'a':
- case L'A':
- RequiredAttributes |= EFI_FILE_ARCHIVE;
- Count++;
- continue;
- case L's':
- case L'S':
- RequiredAttributes |= EFI_FILE_SYSTEM;
- Count++;
- continue;
- case L'h':
- case L'H':
- RequiredAttributes |= EFI_FILE_HIDDEN;
- Count++;
- continue;
- case L'r':
- case L'R':
- RequiredAttributes |= EFI_FILE_READ_ONLY;
- Count++;
- continue;
- case L'd':
- case L'D':
- RequiredAttributes |= EFI_FILE_DIRECTORY;
- Count++;
- continue;
- default:
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_ATTRIBUTE), gShellLevel2HiiHandle, L"ls", ShellCommandLineGetValue (Package, L"-a"));
- ShellStatus = SHELL_INVALID_PARAMETER;
- break;
- } // switch
- } // for loop
+ if (RequiredAttributes == 0) {
+ RequiredAttributes = EFI_FILE_VALID_ATTR;
+ }
+ } // if -a present
+ if (ShellStatus == SHELL_SUCCESS) {
+ PathName = ShellCommandLineGetRawValue (Package, 1);
+ if (PathName == NULL) {
//
- // if nothing is specified all are specified
+ // Nothing specified... must start from current directory
//
- if (RequiredAttributes == 0) {
- RequiredAttributes = EFI_FILE_VALID_ATTR;
+ CurDir = gEfiShellProtocol->GetCurDir (NULL);
+ if (CurDir == NULL) {
+ ShellStatus = SHELL_NOT_FOUND;
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_NO_CWD), gShellLevel2HiiHandle, L"ls");
}
- } // if -a present
- if (ShellStatus == SHELL_SUCCESS) {
- PathName = ShellCommandLineGetRawValue (Package, 1);
- if (PathName == NULL) {
+ ListUnfiltered = TRUE;
+ //
+ // Copy to the 2 strings for starting path and file search string
+ //
+ ASSERT (SearchString == NULL);
+ ASSERT (FullPath == NULL);
+ StrnCatGrow (&SearchString, NULL, L"*", 0);
+ StrnCatGrow (&FullPath, NULL, CurDir, 0);
+ Size = FullPath != NULL ? StrSize (FullPath) : 0;
+ StrnCatGrow (&FullPath, &Size, L"\\", 0);
+ } else {
+ if ((StrStr (PathName, L":") == NULL) && (gEfiShellProtocol->GetCurDir (NULL) == NULL)) {
//
- // Nothing specified... must start from current directory
+ // If we got something and it doesnt have a fully qualified path, then we needed to have a CWD.
//
- CurDir = gEfiShellProtocol->GetCurDir (NULL);
- if (CurDir == NULL) {
- ShellStatus = SHELL_NOT_FOUND;
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_NO_CWD), gShellLevel2HiiHandle, L"ls");
- }
-
- ListUnfiltered = TRUE;
+ ShellStatus = SHELL_NOT_FOUND;
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_NO_CWD), gShellLevel2HiiHandle, L"ls");
+ } else {
//
- // Copy to the 2 strings for starting path and file search string
+ // We got a valid fully qualified path or we have a CWD
//
- ASSERT (SearchString == NULL);
- ASSERT (FullPath == NULL);
- StrnCatGrow (&SearchString, NULL, L"*", 0);
- StrnCatGrow (&FullPath, NULL, CurDir, 0);
- Size = FullPath != NULL ? StrSize (FullPath) : 0;
- StrnCatGrow (&FullPath, &Size, L"\\", 0);
- } else {
- if ((StrStr (PathName, L":") == NULL) && (gEfiShellProtocol->GetCurDir (NULL) == NULL)) {
+ ASSERT ((FullPath == NULL && Size == 0) || (FullPath != NULL));
+ if (StrStr (PathName, L":") == NULL) {
+ StrnCatGrow (&FullPath, &Size, gEfiShellProtocol->GetCurDir (NULL), 0);
+ if (FullPath == NULL) {
+ ShellCommandLineFreeVarList (Package);
+ return SHELL_OUT_OF_RESOURCES;
+ }
+
+ Size = FullPath != NULL ? StrSize (FullPath) : 0;
+ StrnCatGrow (&FullPath, &Size, L"\\", 0);
+ }
+
+ StrnCatGrow (&FullPath, &Size, PathName, 0);
+ if (FullPath == NULL) {
+ ShellCommandLineFreeVarList (Package);
+ return SHELL_OUT_OF_RESOURCES;
+ }
+
+ if (ShellIsDirectory (PathName) == EFI_SUCCESS) {
//
- // If we got something and it doesnt have a fully qualified path, then we needed to have a CWD.
+ // is listing ends with a directory, then we list all files in that directory
//
- ShellStatus = SHELL_NOT_FOUND;
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_NO_CWD), gShellLevel2HiiHandle, L"ls");
+ ListUnfiltered = TRUE;
+ StrnCatGrow (&SearchString, NULL, L"*", 0);
} else {
//
- // We got a valid fully qualified path or we have a CWD
+ // must split off the search part that applies to files from the end of the directory part
//
- ASSERT ((FullPath == NULL && Size == 0) || (FullPath != NULL));
- if (StrStr (PathName, L":") == NULL) {
- StrnCatGrow (&FullPath, &Size, gEfiShellProtocol->GetCurDir (NULL), 0);
- if (FullPath == NULL) {
- ShellCommandLineFreeVarList (Package);
- return SHELL_OUT_OF_RESOURCES;
- }
-
- Size = FullPath != NULL ? StrSize (FullPath) : 0;
- StrnCatGrow (&FullPath, &Size, L"\\", 0);
- }
-
- StrnCatGrow (&FullPath, &Size, PathName, 0);
- if (FullPath == NULL) {
+ StrnCatGrow (&SearchString, NULL, FullPath, 0);
+ if (SearchString == NULL) {
+ FreePool (FullPath);
ShellCommandLineFreeVarList (Package);
return SHELL_OUT_OF_RESOURCES;
}
- if (ShellIsDirectory (PathName) == EFI_SUCCESS) {
- //
- // is listing ends with a directory, then we list all files in that directory
- //
- ListUnfiltered = TRUE;
- StrnCatGrow (&SearchString, NULL, L"*", 0);
- } else {
- //
- // must split off the search part that applies to files from the end of the directory part
- //
- StrnCatGrow (&SearchString, NULL, FullPath, 0);
- if (SearchString == NULL) {
- FreePool (FullPath);
- ShellCommandLineFreeVarList (Package);
- return SHELL_OUT_OF_RESOURCES;
- }
-
- PathRemoveLastItem (FullPath);
- CopyMem (SearchString, SearchString + StrLen (FullPath), StrSize (SearchString + StrLen (FullPath)));
- }
+ PathRemoveLastItem (FullPath);
+ CopyMem (SearchString, SearchString + StrLen (FullPath), StrSize (SearchString + StrLen (FullPath)));
}
}
+ }
- Status = gRT->GetTime (&TheTime, NULL);
- if (EFI_ERROR (Status)) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_UEFI_FUNC_WARN), gShellLevel2HiiHandle, L"ls", L"gRT->GetTime", Status);
- TheTime.TimeZone = EFI_UNSPECIFIED_TIMEZONE;
- }
+ Status = gRT->GetTime (&TheTime, NULL);
+ if (EFI_ERROR (Status)) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_UEFI_FUNC_WARN), gShellLevel2HiiHandle, L"ls", L"gRT->GetTime", Status);
+ TheTime.TimeZone = EFI_UNSPECIFIED_TIMEZONE;
+ }
- if (ShellStatus == SHELL_SUCCESS) {
- ShellStatus = PrintLsOutput (
- ShellCommandLineGetFlag (Package, L"-r"),
- RequiredAttributes,
- ShellCommandLineGetFlag (Package, L"-sfo"),
- FullPath,
- SearchString,
- NULL,
- Count,
- TheTime.TimeZone,
- ListUnfiltered
- );
- if (ShellStatus == SHELL_NOT_FOUND) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_LS_FILE_NOT_FOUND), gShellLevel2HiiHandle, L"ls", FullPath);
- } else if (ShellStatus == SHELL_INVALID_PARAMETER) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel2HiiHandle, L"ls", FullPath);
- } else if (ShellStatus == SHELL_ABORTED) {
- //
- // Ignore aborting.
- //
- } else if (ShellStatus != SHELL_SUCCESS) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel2HiiHandle, L"ls", FullPath);
- }
+ if (ShellStatus == SHELL_SUCCESS) {
+ ShellStatus = PrintLsOutput (
+ ShellCommandLineGetFlag (Package, L"-r"),
+ RequiredAttributes,
+ ShellCommandLineGetFlag (Package, L"-sfo"),
+ FullPath,
+ SearchString,
+ NULL,
+ Count,
+ TheTime.TimeZone,
+ ListUnfiltered
+ );
+ if (ShellStatus == SHELL_NOT_FOUND) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_LS_FILE_NOT_FOUND), gShellLevel2HiiHandle, L"ls", FullPath);
+ } else if (ShellStatus == SHELL_INVALID_PARAMETER) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel2HiiHandle, L"ls", FullPath);
+ } else if (ShellStatus == SHELL_ABORTED) {
+ //
+ // Ignore aborting.
+ //
+ } else if (ShellStatus != SHELL_SUCCESS) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel2HiiHandle, L"ls", FullPath);
}
}
}
diff --git a/ShellPkg/Library/UefiShellLevel2CommandsLib/Map.c b/ShellPkg/Library/UefiShellLevel2CommandsLib/Map.c
index 780a737791..98f5ac9294 100644
--- a/ShellPkg/Library/UefiShellLevel2CommandsLib/Map.c
+++ b/ShellPkg/Library/UefiShellLevel2CommandsLib/Map.c
@@ -1147,131 +1147,98 @@ ShellCommandRunMap (
} else {
ASSERT (FALSE);
}
+
+ return ShellStatus;
+ }
+
+ //
+ // check for "-?"
+ //
+ SfoMode = ShellCommandLineGetFlag (Package, L"-sfo");
+ ConstMode = ShellCommandLineGetFlag (Package, L"-c");
+ NormlMode = ShellCommandLineGetFlag (Package, L"-f");
+ if (ShellCommandLineGetFlag (Package, L"-?")) {
+ ASSERT (FALSE);
+ } else if (ShellCommandLineGetRawValue (Package, 3) != NULL) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel2HiiHandle, L"map");
+ ShellStatus = SHELL_INVALID_PARAMETER;
} else {
//
- // check for "-?"
+ // Deleting a map name...
//
- SfoMode = ShellCommandLineGetFlag (Package, L"-sfo");
- ConstMode = ShellCommandLineGetFlag (Package, L"-c");
- NormlMode = ShellCommandLineGetFlag (Package, L"-f");
- if (ShellCommandLineGetFlag (Package, L"-?")) {
- ASSERT (FALSE);
- } else if (ShellCommandLineGetRawValue (Package, 3) != NULL) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel2HiiHandle, L"map");
- ShellStatus = SHELL_INVALID_PARAMETER;
- } else {
- //
- // Deleting a map name...
- //
- if (ShellCommandLineGetFlag (Package, L"-d")) {
- if ( ShellCommandLineGetFlag (Package, L"-r")
- || ShellCommandLineGetFlag (Package, L"-v")
- || ConstMode
- || NormlMode
- || ShellCommandLineGetFlag (Package, L"-u")
- || ShellCommandLineGetFlag (Package, L"-t")
- )
- {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_CON), gShellLevel2HiiHandle, L"map");
- ShellStatus = SHELL_INVALID_PARAMETER;
- } else {
- SName = ShellCommandLineGetValue (Package, L"-d");
- if (SName != NULL) {
- Status = PerformMappingDelete (SName);
- if (EFI_ERROR (Status)) {
- if (Status == EFI_ACCESS_DENIED) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_ERR_AD), gShellLevel2HiiHandle, L"map");
- ShellStatus = SHELL_ACCESS_DENIED;
- } else if (Status == EFI_NOT_FOUND) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_MAP_NF), gShellLevel2HiiHandle, L"map", SName);
- ShellStatus = SHELL_INVALID_PARAMETER;
- } else {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_ERR_UK), gShellLevel2HiiHandle, L"map", Status);
- ShellStatus = SHELL_UNSUPPORTED;
- }
- }
- } else {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_FEW), gShellLevel2HiiHandle, L"map");
- ShellStatus = SHELL_INVALID_PARAMETER;
- }
- }
- } else if ( ShellCommandLineGetFlag (Package, L"-r")
- // || ShellCommandLineGetFlag(Package, L"-v")
- || ConstMode
- || NormlMode
- || ShellCommandLineGetFlag (Package, L"-u")
- || ShellCommandLineGetFlag (Package, L"-t")
- )
+ if (ShellCommandLineGetFlag (Package, L"-d")) {
+ if ( ShellCommandLineGetFlag (Package, L"-r")
+ || ShellCommandLineGetFlag (Package, L"-v")
+ || ConstMode
+ || NormlMode
+ || ShellCommandLineGetFlag (Package, L"-u")
+ || ShellCommandLineGetFlag (Package, L"-t")
+ )
{
- ProbeForMediaChange ();
- if ( ShellCommandLineGetFlag (Package, L"-r")) {
- //
- // Do the reset
- //
- Status = ShellCommandCreateInitialMappingsAndPaths ();
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_CON), gShellLevel2HiiHandle, L"map");
+ ShellStatus = SHELL_INVALID_PARAMETER;
+ } else {
+ SName = ShellCommandLineGetValue (Package, L"-d");
+ if (SName != NULL) {
+ Status = PerformMappingDelete (SName);
if (EFI_ERROR (Status)) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_ERR_UK), gShellLevel2HiiHandle, L"map", Status);
- ShellStatus = SHELL_UNSUPPORTED;
+ if (Status == EFI_ACCESS_DENIED) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_ERR_AD), gShellLevel2HiiHandle, L"map");
+ ShellStatus = SHELL_ACCESS_DENIED;
+ } else if (Status == EFI_NOT_FOUND) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_MAP_NF), gShellLevel2HiiHandle, L"map", SName);
+ ShellStatus = SHELL_INVALID_PARAMETER;
+ } else {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_ERR_UK), gShellLevel2HiiHandle, L"map", Status);
+ ShellStatus = SHELL_UNSUPPORTED;
+ }
}
+ } else {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_FEW), gShellLevel2HiiHandle, L"map");
+ ShellStatus = SHELL_INVALID_PARAMETER;
}
-
- if ((ShellStatus == SHELL_SUCCESS) && ShellCommandLineGetFlag (Package, L"-u")) {
- //
- // Do the Update
- //
- Status = ShellCommandUpdateMapping ();
- if (EFI_ERROR (Status)) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_ERR_UK), gShellLevel2HiiHandle, L"map", Status);
- ShellStatus = SHELL_UNSUPPORTED;
- }
+ }
+ } else if ( ShellCommandLineGetFlag (Package, L"-r")
+ // || ShellCommandLineGetFlag(Package, L"-v")
+ || ConstMode
+ || NormlMode
+ || ShellCommandLineGetFlag (Package, L"-u")
+ || ShellCommandLineGetFlag (Package, L"-t")
+ )
+ {
+ ProbeForMediaChange ();
+ if ( ShellCommandLineGetFlag (Package, L"-r")) {
+ //
+ // Do the reset
+ //
+ Status = ShellCommandCreateInitialMappingsAndPaths ();
+ if (EFI_ERROR (Status)) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_ERR_UK), gShellLevel2HiiHandle, L"map", Status);
+ ShellStatus = SHELL_UNSUPPORTED;
}
+ }
- if (ShellStatus == SHELL_SUCCESS) {
- Param1 = ShellCommandLineGetRawValue (Package, 1);
- TypeString = ShellCommandLineGetValue (Package, L"-t");
- if ( !ConstMode
- && !NormlMode
- && (TypeString == NULL)
- )
- {
- //
- // now do the display...
- //
- ShellStatus = PerformMappingDisplay (
- ShellCommandLineGetFlag (Package, L"-v"),
- TRUE,
- TRUE,
- NULL,
- SfoMode,
- Param1,
- TRUE
- );
- } else {
- //
- // now do the display...
- //
- ShellStatus = PerformMappingDisplay2 (
- ShellCommandLineGetFlag (Package, L"-v"),
- ConstMode,
- NormlMode,
- TypeString,
- SfoMode,
- Param1
- );
- }
- }
- } else {
+ if ((ShellStatus == SHELL_SUCCESS) && ShellCommandLineGetFlag (Package, L"-u")) {
//
- // adding or displaying (there were no flags)
+ // Do the Update
//
- SName = ShellCommandLineGetRawValue (Package, 1);
- Mapping = ShellCommandLineGetRawValue (Package, 2);
- if ( (SName == NULL)
- && (Mapping == NULL)
+ Status = ShellCommandUpdateMapping ();
+ if (EFI_ERROR (Status)) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_ERR_UK), gShellLevel2HiiHandle, L"map", Status);
+ ShellStatus = SHELL_UNSUPPORTED;
+ }
+ }
+
+ if (ShellStatus == SHELL_SUCCESS) {
+ Param1 = ShellCommandLineGetRawValue (Package, 1);
+ TypeString = ShellCommandLineGetValue (Package, L"-t");
+ if ( !ConstMode
+ && !NormlMode
+ && (TypeString == NULL)
)
{
//
- // display only since no flags
+ // now do the display...
//
ShellStatus = PerformMappingDisplay (
ShellCommandLineGetFlag (Package, L"-v"),
@@ -1279,83 +1246,118 @@ ShellCommandRunMap (
TRUE,
NULL,
SfoMode,
- NULL,
+ Param1,
TRUE
);
- } else if ( (SName == NULL)
- || (Mapping == NULL)
- )
- {
+ } else {
//
- // Display only the one specified
+ // now do the display...
//
- ShellStatus = PerformMappingDisplay (
- FALSE,
- FALSE,
- FALSE,
- NULL,
+ ShellStatus = PerformMappingDisplay2 (
+ ShellCommandLineGetFlag (Package, L"-v"),
+ ConstMode,
+ NormlMode,
+ TypeString,
SfoMode,
- SName, // note the variable here...
- TRUE
+ Param1
);
+ }
+ }
+ } else {
+ //
+ // adding or displaying (there were no flags)
+ //
+ SName = ShellCommandLineGetRawValue (Package, 1);
+ Mapping = ShellCommandLineGetRawValue (Package, 2);
+ if ( (SName == NULL)
+ && (Mapping == NULL)
+ )
+ {
+ //
+ // display only since no flags
+ //
+ ShellStatus = PerformMappingDisplay (
+ ShellCommandLineGetFlag (Package, L"-v"),
+ TRUE,
+ TRUE,
+ NULL,
+ SfoMode,
+ NULL,
+ TRUE
+ );
+ } else if ( (SName == NULL)
+ || (Mapping == NULL)
+ )
+ {
+ //
+ // Display only the one specified
+ //
+ ShellStatus = PerformMappingDisplay (
+ FALSE,
+ FALSE,
+ FALSE,
+ NULL,
+ SfoMode,
+ SName, // note the variable here...
+ TRUE
+ );
+ } else {
+ if (ShellIsHexOrDecimalNumber (Mapping, TRUE, FALSE)) {
+ MapAsHandle = ConvertHandleIndexToHandle (ShellStrToUintn (Mapping));
} else {
- if (ShellIsHexOrDecimalNumber (Mapping, TRUE, FALSE)) {
- MapAsHandle = ConvertHandleIndexToHandle (ShellStrToUintn (Mapping));
- } else {
- MapAsHandle = NULL;
- }
+ MapAsHandle = NULL;
+ }
- if ((MapAsHandle == NULL) && (Mapping[StrLen (Mapping)-1] != L':')) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel2HiiHandle, L"map", Mapping);
+ if ((MapAsHandle == NULL) && (Mapping[StrLen (Mapping)-1] != L':')) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel2HiiHandle, L"map", Mapping);
+ ShellStatus = SHELL_INVALID_PARAMETER;
+ } else {
+ TempStringLength = StrLen (SName);
+ if (!IsNumberLetterOnly (SName, TempStringLength-((SName[TempStringLength-1] == L':') ? 1 : 0))) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel2HiiHandle, L"map", SName);
ShellStatus = SHELL_INVALID_PARAMETER;
- } else {
- TempStringLength = StrLen (SName);
- if (!IsNumberLetterOnly (SName, TempStringLength-((SName[TempStringLength-1] == L':') ? 1 : 0))) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel2HiiHandle, L"map", SName);
- ShellStatus = SHELL_INVALID_PARAMETER;
+ }
+
+ if (ShellStatus == SHELL_SUCCESS) {
+ if (MapAsHandle != NULL) {
+ ShellStatus = AddMappingFromHandle (MapAsHandle, SName);
+ } else {
+ ShellStatus = AddMappingFromMapping (Mapping, SName);
}
- if (ShellStatus == SHELL_SUCCESS) {
- if (MapAsHandle != NULL) {
- ShellStatus = AddMappingFromHandle (MapAsHandle, SName);
- } else {
- ShellStatus = AddMappingFromMapping (Mapping, SName);
+ if (ShellStatus != SHELL_SUCCESS) {
+ switch (ShellStatus) {
+ case SHELL_ACCESS_DENIED:
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_ERR_AD), gShellLevel2HiiHandle, L"map");
+ break;
+ case SHELL_INVALID_PARAMETER:
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel2HiiHandle, L"map", Mapping);
+ break;
+ case SHELL_DEVICE_ERROR:
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_MAP_NOF), gShellLevel2HiiHandle, L"map", Mapping);
+ break;
+ default:
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_ERR_UK), gShellLevel2HiiHandle, L"map", ShellStatus|MAX_BIT);
}
-
- if (ShellStatus != SHELL_SUCCESS) {
- switch (ShellStatus) {
- case SHELL_ACCESS_DENIED:
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_ERR_AD), gShellLevel2HiiHandle, L"map");
- break;
- case SHELL_INVALID_PARAMETER:
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel2HiiHandle, L"map", Mapping);
- break;
- case SHELL_DEVICE_ERROR:
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_MAP_NOF), gShellLevel2HiiHandle, L"map", Mapping);
- break;
- default:
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_ERR_UK), gShellLevel2HiiHandle, L"map", ShellStatus|MAX_BIT);
- }
- } else {
- //
- // now do the display...
- //
- ShellStatus = PerformMappingDisplay (
- FALSE,
- FALSE,
- FALSE,
- NULL,
- SfoMode,
- SName,
- TRUE
- );
- } // we were successful so do an output
- }
- } // got a valid map target
- } // got 2 variables
- } // we are adding a mapping
- } // got valid parameters
- }
+ } else {
+ //
+ // now do the display...
+ //
+ ShellStatus = PerformMappingDisplay (
+ FALSE,
+ FALSE,
+ FALSE,
+ NULL,
+ SfoMode,
+ SName,
+ TRUE
+ );
+ } // we were successful so do an output
+ }
+ } // got a valid map target
+ } // got 2 variables
+ } // we are adding a mapping
+ } // got valid parameters
//
// free the command line package
diff --git a/ShellPkg/Library/UefiShellLevel2CommandsLib/MkDir.c b/ShellPkg/Library/UefiShellLevel2CommandsLib/MkDir.c
index fe55ca10c0..37ad2327d9 100644
--- a/ShellPkg/Library/UefiShellLevel2CommandsLib/MkDir.c
+++ b/ShellPkg/Library/UefiShellLevel2CommandsLib/MkDir.c
@@ -55,108 +55,110 @@ ShellCommandRunMkDir (
} else {
ASSERT (FALSE);
}
- } else {
- //
- // check for "-?"
- //
- if (ShellCommandLineGetFlag (Package, L"-?")) {
- ASSERT (FALSE);
- }
+ return ShellStatus;
+ }
+
+ //
+ // check for "-?"
+ //
+ if (ShellCommandLineGetFlag (Package, L"-?")) {
+ ASSERT (FALSE);
+ }
+
+ //
+ // create a set of directories
+ //
+ if (ShellCommandLineGetRawValue (Package, 1) == NULL) {
//
- // create a set of directories
+ // we didnt get a single parameter
//
- if (ShellCommandLineGetRawValue (Package, 1) == NULL) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_FEW), gShellLevel2HiiHandle, L"mkdir");
+ ShellStatus = SHELL_INVALID_PARAMETER;
+ } else {
+ for ( DirCreateCount = 1
+ ;
+ ; DirCreateCount++
+ )
+ {
//
- // we didnt get a single parameter
+ // loop through each directory specified
//
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_FEW), gShellLevel2HiiHandle, L"mkdir");
- ShellStatus = SHELL_INVALID_PARAMETER;
- } else {
- for ( DirCreateCount = 1
- ;
- ; DirCreateCount++
- )
- {
+
+ NewDirName = ShellCommandLineGetRawValue (Package, DirCreateCount);
+ if (NewDirName == NULL) {
+ break;
+ }
+
+ //
+ // check if that already exists... if yes fail
+ //
+ FileHandle = NULL;
+ Status = ShellOpenFileByName (
+ NewDirName,
+ &FileHandle,
+ EFI_FILE_MODE_READ | EFI_FILE_MODE_WRITE,
+ EFI_FILE_DIRECTORY
+ );
+ if (!EFI_ERROR (Status)) {
+ ShellCloseFile (&FileHandle);
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_MKDIR_ALREADY), gShellLevel2HiiHandle, NewDirName);
+ ShellStatus = SHELL_INVALID_PARAMETER;
+ } else {
+ ASSERT (FileHandle == NULL);
//
- // loop through each directory specified
+ // create the nested directory from parent to child.
+ // if NewDirName = test1\test2\test3, first create "test1\" directory, then "test1\test2\", finally "test1\test2\test3".
//
-
- NewDirName = ShellCommandLineGetRawValue (Package, DirCreateCount);
- if (NewDirName == NULL) {
+ NewDirNameCopy = AllocateCopyPool (StrSize (NewDirName), NewDirName);
+ NewDirNameCopy = PathCleanUpDirectories (NewDirNameCopy);
+ if (NewDirNameCopy == NULL) {
+ ShellStatus = SHELL_OUT_OF_RESOURCES;
break;
}
- //
- // check if that already exists... if yes fail
- //
- FileHandle = NULL;
- Status = ShellOpenFileByName (
- NewDirName,
- &FileHandle,
- EFI_FILE_MODE_READ | EFI_FILE_MODE_WRITE,
- EFI_FILE_DIRECTORY
- );
- if (!EFI_ERROR (Status)) {
- ShellCloseFile (&FileHandle);
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_MKDIR_ALREADY), gShellLevel2HiiHandle, NewDirName);
- ShellStatus = SHELL_INVALID_PARAMETER;
- } else {
- ASSERT (FileHandle == NULL);
- //
- // create the nested directory from parent to child.
- // if NewDirName = test1\test2\test3, first create "test1\" directory, then "test1\test2\", finally "test1\test2\test3".
- //
- NewDirNameCopy = AllocateCopyPool (StrSize (NewDirName), NewDirName);
- NewDirNameCopy = PathCleanUpDirectories (NewDirNameCopy);
- if (NewDirNameCopy == NULL) {
- ShellStatus = SHELL_OUT_OF_RESOURCES;
- break;
+ SplitName = NewDirNameCopy;
+ while (SplitName != NULL) {
+ SplitName = StrStr (SplitName + 1, L"\\");
+ if (SplitName != NULL) {
+ SaveSplitChar = *(SplitName + 1);
+ *(SplitName + 1) = '\0';
}
- SplitName = NewDirNameCopy;
- while (SplitName != NULL) {
- SplitName = StrStr (SplitName + 1, L"\\");
- if (SplitName != NULL) {
- SaveSplitChar = *(SplitName + 1);
- *(SplitName + 1) = '\0';
- }
-
- //
- // check if current nested directory already exists... continue to create the child directory.
- //
- Status = ShellOpenFileByName (
- NewDirNameCopy,
- &FileHandle,
- EFI_FILE_MODE_READ,
- EFI_FILE_DIRECTORY
- );
- if (!EFI_ERROR (Status)) {
- ShellCloseFile (&FileHandle);
- } else {
- Status = ShellCreateDirectory (NewDirNameCopy, &FileHandle);
- if (EFI_ERROR (Status)) {
- break;
- }
-
- if (FileHandle != NULL) {
- gEfiShellProtocol->CloseFile (FileHandle);
- }
+ //
+ // check if current nested directory already exists... continue to create the child directory.
+ //
+ Status = ShellOpenFileByName (
+ NewDirNameCopy,
+ &FileHandle,
+ EFI_FILE_MODE_READ,
+ EFI_FILE_DIRECTORY
+ );
+ if (!EFI_ERROR (Status)) {
+ ShellCloseFile (&FileHandle);
+ } else {
+ Status = ShellCreateDirectory (NewDirNameCopy, &FileHandle);
+ if (EFI_ERROR (Status)) {
+ break;
}
- if (SplitName != NULL) {
- *(SplitName + 1) = SaveSplitChar;
+ if (FileHandle != NULL) {
+ gEfiShellProtocol->CloseFile (FileHandle);
}
}
- if (EFI_ERROR (Status)) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_MKDIR_CREATEFAIL), gShellLevel2HiiHandle, NewDirName);
- ShellStatus = SHELL_ACCESS_DENIED;
- break;
+ if (SplitName != NULL) {
+ *(SplitName + 1) = SaveSplitChar;
}
+ }
- SHELL_FREE_NON_NULL (NewDirNameCopy);
+ if (EFI_ERROR (Status)) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_MKDIR_CREATEFAIL), gShellLevel2HiiHandle, NewDirName);
+ ShellStatus = SHELL_ACCESS_DENIED;
+ break;
}
+
+ SHELL_FREE_NON_NULL (NewDirNameCopy);
}
}
}
diff --git a/ShellPkg/Library/UefiShellLevel2CommandsLib/Mv.c b/ShellPkg/Library/UefiShellLevel2CommandsLib/Mv.c
index 79632a2a03..76a31efaa5 100644
--- a/ShellPkg/Library/UefiShellLevel2CommandsLib/Mv.c
+++ b/ShellPkg/Library/UefiShellLevel2CommandsLib/Mv.c
@@ -788,99 +788,101 @@ ShellCommandRunMv (
} else {
ASSERT (FALSE);
}
- } else {
- //
- // check for "-?"
- //
- if (ShellCommandLineGetFlag (Package, L"-?")) {
- ASSERT (FALSE);
- }
- switch (ParamCount = ShellCommandLineGetCount (Package)) {
- case 0:
- case 1:
- //
- // we have insufficient parameters
- //
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_FEW), gShellLevel2HiiHandle, L"mv");
+ return ShellStatus;
+ }
+
+ //
+ // check for "-?"
+ //
+ if (ShellCommandLineGetFlag (Package, L"-?")) {
+ ASSERT (FALSE);
+ }
+
+ switch (ParamCount = ShellCommandLineGetCount (Package)) {
+ case 0:
+ case 1:
+ //
+ // we have insufficient parameters
+ //
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_FEW), gShellLevel2HiiHandle, L"mv");
+ ShellStatus = SHELL_INVALID_PARAMETER;
+ break;
+ case 2:
+ //
+ // must have valid CWD for single parameter...
+ //
+ if (ShellGetCurrentDir (NULL) == NULL) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_NO_CWD), gShellLevel2HiiHandle, L"mv");
ShellStatus = SHELL_INVALID_PARAMETER;
- break;
- case 2:
- //
- // must have valid CWD for single parameter...
- //
- if (ShellGetCurrentDir (NULL) == NULL) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_NO_CWD), gShellLevel2HiiHandle, L"mv");
- ShellStatus = SHELL_INVALID_PARAMETER;
+ } else {
+ Status = ShellOpenFileMetaArg ((CHAR16 *)ShellCommandLineGetRawValue (Package, 1), EFI_FILE_MODE_WRITE|EFI_FILE_MODE_READ, &FileList);
+ if ((FileList == NULL) || IsListEmpty (&FileList->Link) || EFI_ERROR (Status)) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_FILE_NF), gShellLevel2HiiHandle, L"mv", ShellCommandLineGetRawValue (Package, 1));
+ ShellStatus = SHELL_NOT_FOUND;
} else {
- Status = ShellOpenFileMetaArg ((CHAR16 *)ShellCommandLineGetRawValue (Package, 1), EFI_FILE_MODE_WRITE|EFI_FILE_MODE_READ, &FileList);
- if ((FileList == NULL) || IsListEmpty (&FileList->Link) || EFI_ERROR (Status)) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_FILE_NF), gShellLevel2HiiHandle, L"mv", ShellCommandLineGetRawValue (Package, 1));
- ShellStatus = SHELL_NOT_FOUND;
+ //
+ // ValidateAndMoveFiles will report errors to the screen itself
+ //
+ CwdSize = StrSize (ShellGetCurrentDir (NULL)) + sizeof (CHAR16);
+ Cwd = AllocateZeroPool (CwdSize);
+ if (Cwd == NULL) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_OUT_MEM), gShellLevel2HiiHandle, L"mv");
+ ShellStatus = SHELL_OUT_OF_RESOURCES;
} else {
- //
- // ValidateAndMoveFiles will report errors to the screen itself
- //
- CwdSize = StrSize (ShellGetCurrentDir (NULL)) + sizeof (CHAR16);
- Cwd = AllocateZeroPool (CwdSize);
- if (Cwd == NULL) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_OUT_MEM), gShellLevel2HiiHandle, L"mv");
- ShellStatus = SHELL_OUT_OF_RESOURCES;
- } else {
- StrCpyS (Cwd, CwdSize / sizeof (CHAR16), ShellGetCurrentDir (NULL));
- StrCatS (Cwd, CwdSize / sizeof (CHAR16), L"\\");
- ShellStatus = ValidateAndMoveFiles (FileList, &Response, Cwd);
- FreePool (Cwd);
- }
+ StrCpyS (Cwd, CwdSize / sizeof (CHAR16), ShellGetCurrentDir (NULL));
+ StrCatS (Cwd, CwdSize / sizeof (CHAR16), L"\\");
+ ShellStatus = ValidateAndMoveFiles (FileList, &Response, Cwd);
+ FreePool (Cwd);
}
}
+ }
- break;
- default:
- /// @todo make sure this works with error half way through and continues...
- for (ParamCount--, LoopCounter = 1; LoopCounter < ParamCount; LoopCounter++) {
- if (ShellGetExecutionBreakFlag ()) {
- break;
- }
+ break;
+ default:
+ /// @todo make sure this works with error half way through and continues...
+ for (ParamCount--, LoopCounter = 1; LoopCounter < ParamCount; LoopCounter++) {
+ if (ShellGetExecutionBreakFlag ()) {
+ break;
+ }
- Status = ShellOpenFileMetaArg ((CHAR16 *)ShellCommandLineGetRawValue (Package, LoopCounter), EFI_FILE_MODE_WRITE|EFI_FILE_MODE_READ, &FileList);
- if ((FileList == NULL) || IsListEmpty (&FileList->Link) || EFI_ERROR (Status)) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_FILE_NF), gShellLevel2HiiHandle, L"mv", ShellCommandLineGetRawValue (Package, LoopCounter));
- ShellStatus = SHELL_NOT_FOUND;
+ Status = ShellOpenFileMetaArg ((CHAR16 *)ShellCommandLineGetRawValue (Package, LoopCounter), EFI_FILE_MODE_WRITE|EFI_FILE_MODE_READ, &FileList);
+ if ((FileList == NULL) || IsListEmpty (&FileList->Link) || EFI_ERROR (Status)) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_FILE_NF), gShellLevel2HiiHandle, L"mv", ShellCommandLineGetRawValue (Package, LoopCounter));
+ ShellStatus = SHELL_NOT_FOUND;
+ } else {
+ //
+ // ValidateAndMoveFiles will report errors to the screen itself
+ // Only change ShellStatus if it's successful
+ //
+ if (ShellStatus == SHELL_SUCCESS) {
+ ShellStatus = ValidateAndMoveFiles (FileList, &Response, ShellCommandLineGetRawValue (Package, ParamCount));
} else {
- //
- // ValidateAndMoveFiles will report errors to the screen itself
- // Only change ShellStatus if it's successful
- //
- if (ShellStatus == SHELL_SUCCESS) {
- ShellStatus = ValidateAndMoveFiles (FileList, &Response, ShellCommandLineGetRawValue (Package, ParamCount));
- } else {
- ValidateAndMoveFiles (FileList, &Response, ShellCommandLineGetRawValue (Package, ParamCount));
- }
+ ValidateAndMoveFiles (FileList, &Response, ShellCommandLineGetRawValue (Package, ParamCount));
}
+ }
- if ((FileList != NULL) && !IsListEmpty (&FileList->Link)) {
- Status = ShellCloseFileMetaArg (&FileList);
- if (EFI_ERROR (Status) && (ShellStatus == SHELL_SUCCESS)) {
- ShellStatus = SHELL_ACCESS_DENIED;
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_ERR_FILE), gShellLevel2HiiHandle, L"mv", ShellCommandLineGetRawValue (Package, 1), ShellStatus|MAX_BIT);
- }
+ if ((FileList != NULL) && !IsListEmpty (&FileList->Link)) {
+ Status = ShellCloseFileMetaArg (&FileList);
+ if (EFI_ERROR (Status) && (ShellStatus == SHELL_SUCCESS)) {
+ ShellStatus = SHELL_ACCESS_DENIED;
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_ERR_FILE), gShellLevel2HiiHandle, L"mv", ShellCommandLineGetRawValue (Package, 1), ShellStatus|MAX_BIT);
}
}
+ }
- break;
- } // switch on parameter count
-
- if (FileList != NULL) {
- ShellCloseFileMetaArg (&FileList);
- }
+ break;
+ } // switch on parameter count
- //
- // free the command line package
- //
- ShellCommandLineFreeVarList (Package);
+ if (FileList != NULL) {
+ ShellCloseFileMetaArg (&FileList);
}
+ //
+ // free the command line package
+ //
+ ShellCommandLineFreeVarList (Package);
+
SHELL_FREE_NON_NULL (Response);
if (ShellGetExecutionBreakFlag ()) {
diff --git a/ShellPkg/Library/UefiShellLevel2CommandsLib/Parse.c b/ShellPkg/Library/UefiShellLevel2CommandsLib/Parse.c
index 75b93184b0..a91e75a05d 100644
--- a/ShellPkg/Library/UefiShellLevel2CommandsLib/Parse.c
+++ b/ShellPkg/Library/UefiShellLevel2CommandsLib/Parse.c
@@ -280,46 +280,48 @@ ShellCommandRunParse (
} else {
ASSERT (FALSE);
}
+
+ return ShellStatus;
+ }
+
+ StreamingUnicode = IsStdInDataAvailable ();
+ if ((!StreamingUnicode && (ShellCommandLineGetCount (Package) < 4)) ||
+ (ShellCommandLineGetCount (Package) < 3))
+ {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_FEW), gShellLevel2HiiHandle, L"parse");
+ ShellStatus = SHELL_INVALID_PARAMETER;
+ } else if ((StreamingUnicode && (ShellCommandLineGetCount (Package) > 3)) ||
+ (ShellCommandLineGetCount (Package) > 4))
+ {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel2HiiHandle, L"parse");
+ ShellStatus = SHELL_INVALID_PARAMETER;
} else {
- StreamingUnicode = IsStdInDataAvailable ();
- if ((!StreamingUnicode && (ShellCommandLineGetCount (Package) < 4)) ||
- (ShellCommandLineGetCount (Package) < 3))
- {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_FEW), gShellLevel2HiiHandle, L"parse");
- ShellStatus = SHELL_INVALID_PARAMETER;
- } else if ((StreamingUnicode && (ShellCommandLineGetCount (Package) > 3)) ||
- (ShellCommandLineGetCount (Package) > 4))
- {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel2HiiHandle, L"parse");
- ShellStatus = SHELL_INVALID_PARAMETER;
+ if (StreamingUnicode) {
+ FileName = L">i";
+ TableName = ShellCommandLineGetRawValue (Package, 1);
+ ColumnString = ShellCommandLineGetRawValue (Package, 2);
} else {
- if (StreamingUnicode) {
- FileName = L">i";
- TableName = ShellCommandLineGetRawValue (Package, 1);
- ColumnString = ShellCommandLineGetRawValue (Package, 2);
- } else {
- FileName = ShellCommandLineGetRawValue (Package, 1);
- TableName = ShellCommandLineGetRawValue (Package, 2);
- ColumnString = ShellCommandLineGetRawValue (Package, 3);
- }
+ FileName = ShellCommandLineGetRawValue (Package, 1);
+ TableName = ShellCommandLineGetRawValue (Package, 2);
+ ColumnString = ShellCommandLineGetRawValue (Package, 3);
+ }
- if (ShellCommandLineGetValue (Package, L"-i") == NULL) {
- TableNameInstance = (UINTN)-1;
- } else {
- TableNameInstance = ShellStrToUintn (ShellCommandLineGetValue (Package, L"-i"));
- }
+ if (ShellCommandLineGetValue (Package, L"-i") == NULL) {
+ TableNameInstance = (UINTN)-1;
+ } else {
+ TableNameInstance = ShellStrToUintn (ShellCommandLineGetValue (Package, L"-i"));
+ }
- if (ShellCommandLineGetValue (Package, L"-s") == NULL) {
- ShellCommandInstance = 1;
- } else {
- ShellCommandInstance = ShellStrToUintn (ShellCommandLineGetValue (Package, L"-s"));
- }
+ if (ShellCommandLineGetValue (Package, L"-s") == NULL) {
+ ShellCommandInstance = 1;
+ } else {
+ ShellCommandInstance = ShellStrToUintn (ShellCommandLineGetValue (Package, L"-s"));
+ }
- if ((FileName != NULL) && (TableName != NULL) && (ColumnString != NULL)) {
- ShellStatus = PerformParsing (FileName, TableName, ShellStrToUintn (ColumnString), TableNameInstance, ShellCommandInstance, StreamingUnicode);
- } else {
- ShellStatus = SHELL_INVALID_PARAMETER;
- }
+ if ((FileName != NULL) && (TableName != NULL) && (ColumnString != NULL)) {
+ ShellStatus = PerformParsing (FileName, TableName, ShellStrToUintn (ColumnString), TableNameInstance, ShellCommandInstance, StreamingUnicode);
+ } else {
+ ShellStatus = SHELL_INVALID_PARAMETER;
}
}
diff --git a/ShellPkg/Library/UefiShellLevel2CommandsLib/Reset.c b/ShellPkg/Library/UefiShellLevel2CommandsLib/Reset.c
index a89fcccbc7..13f3bfa275 100644
--- a/ShellPkg/Library/UefiShellLevel2CommandsLib/Reset.c
+++ b/ShellPkg/Library/UefiShellLevel2CommandsLib/Reset.c
@@ -60,20 +60,38 @@ ShellCommandRunReset (
} else {
ASSERT (FALSE);
}
+
+ return ShellStatus;
+ }
+
+ //
+ // check for "-?"
+ //
+ if (ShellCommandLineGetFlag (Package, L"-?")) {
+ ASSERT (FALSE);
+ } else if (ShellCommandLineGetRawValue (Package, 1) != NULL) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel2HiiHandle, L"reset");
+ ShellStatus = SHELL_INVALID_PARAMETER;
} else {
- //
- // check for "-?"
- //
- if (ShellCommandLineGetFlag (Package, L"-?")) {
- ASSERT (FALSE);
- } else if (ShellCommandLineGetRawValue (Package, 1) != NULL) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel2HiiHandle, L"reset");
- ShellStatus = SHELL_INVALID_PARAMETER;
- } else {
- if (ShellCommandLineGetFlag (Package, L"-fwui")) {
+ if (ShellCommandLineGetFlag (Package, L"-fwui")) {
+ DataSize = sizeof (OsIndications);
+ Status = gRT->GetVariable (
+ EFI_OS_INDICATIONS_SUPPORT_VARIABLE_NAME,
+ &gEfiGlobalVariableGuid,
+ &Attr,
+ &DataSize,
+ &OsIndications
+ );
+
+ if (EFI_ERROR (Status)) {
+ ShellStatus = SHELL_UNSUPPORTED;
+ goto Error;
+ }
+
+ if ((OsIndications & EFI_OS_INDICATIONS_BOOT_TO_FW_UI) != 0) {
DataSize = sizeof (OsIndications);
Status = gRT->GetVariable (
- EFI_OS_INDICATIONS_SUPPORT_VARIABLE_NAME,
+ EFI_OS_INDICATIONS_VARIABLE_NAME,
&gEfiGlobalVariableGuid,
&Attr,
&DataSize,
@@ -81,82 +99,66 @@ ShellCommandRunReset (
);
if (EFI_ERROR (Status)) {
- ShellStatus = SHELL_UNSUPPORTED;
- goto Error;
+ OsIndications = EFI_OS_INDICATIONS_BOOT_TO_FW_UI;
+ } else {
+ OsIndications |= EFI_OS_INDICATIONS_BOOT_TO_FW_UI;
}
- if ((OsIndications & EFI_OS_INDICATIONS_BOOT_TO_FW_UI) != 0) {
- DataSize = sizeof (OsIndications);
- Status = gRT->GetVariable (
- EFI_OS_INDICATIONS_VARIABLE_NAME,
- &gEfiGlobalVariableGuid,
- &Attr,
- &DataSize,
- &OsIndications
- );
-
- if (EFI_ERROR (Status)) {
- OsIndications = EFI_OS_INDICATIONS_BOOT_TO_FW_UI;
- } else {
- OsIndications |= EFI_OS_INDICATIONS_BOOT_TO_FW_UI;
- }
-
- Status = gRT->SetVariable (
- EFI_OS_INDICATIONS_VARIABLE_NAME,
- &gEfiGlobalVariableGuid,
- EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS,
- sizeof (OsIndications),
- &OsIndications
- );
- }
+ Status = gRT->SetVariable (
+ EFI_OS_INDICATIONS_VARIABLE_NAME,
+ &gEfiGlobalVariableGuid,
+ EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS,
+ sizeof (OsIndications),
+ &OsIndications
+ );
+ }
- if (EFI_ERROR (Status)) {
- ShellStatus = SHELL_UNSUPPORTED;
- goto Error;
- }
+ if (EFI_ERROR (Status)) {
+ ShellStatus = SHELL_UNSUPPORTED;
+ goto Error;
}
+ }
- //
- // check for warm reset flag, then shutdown reset flag, then cold (default) reset flag
- //
- if (ShellCommandLineGetFlag (Package, L"-w")) {
- if (ShellCommandLineGetFlag (Package, L"-s") || ShellCommandLineGetFlag (Package, L"-c")) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel2HiiHandle, L"reset");
- ShellStatus = SHELL_INVALID_PARAMETER;
- } else {
- String = ShellCommandLineGetValue (Package, L"-w");
- if (String != NULL) {
- gRT->ResetSystem (EfiResetWarm, EFI_SUCCESS, StrSize (String), (VOID *)String);
- } else {
- gRT->ResetSystem (EfiResetWarm, EFI_SUCCESS, 0, NULL);
- }
- }
- } else if (ShellCommandLineGetFlag (Package, L"-s")) {
- if (ShellCommandLineGetFlag (Package, L"-c")) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel2HiiHandle, L"reset");
- ShellStatus = SHELL_INVALID_PARAMETER;
+ //
+ // check for warm reset flag, then shutdown reset flag, then cold (default) reset flag
+ //
+ if (ShellCommandLineGetFlag (Package, L"-w")) {
+ if (ShellCommandLineGetFlag (Package, L"-s") || ShellCommandLineGetFlag (Package, L"-c")) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel2HiiHandle, L"reset");
+ ShellStatus = SHELL_INVALID_PARAMETER;
+ } else {
+ String = ShellCommandLineGetValue (Package, L"-w");
+ if (String != NULL) {
+ gRT->ResetSystem (EfiResetWarm, EFI_SUCCESS, StrSize (String), (VOID *)String);
} else {
- String = ShellCommandLineGetValue (Package, L"-s");
- DEBUG_CODE (
- ShellPrintDefaultEx (L"Reset with %s (%d bytes)\n", String, String != NULL ? StrSize (String) : 0);
- );
- if (String != NULL) {
- gRT->ResetSystem (EfiResetShutdown, EFI_SUCCESS, StrSize (String), (VOID *)String);
- } else {
- gRT->ResetSystem (EfiResetShutdown, EFI_SUCCESS, 0, NULL);
- }
+ gRT->ResetSystem (EfiResetWarm, EFI_SUCCESS, 0, NULL);
}
+ }
+ } else if (ShellCommandLineGetFlag (Package, L"-s")) {
+ if (ShellCommandLineGetFlag (Package, L"-c")) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel2HiiHandle, L"reset");
+ ShellStatus = SHELL_INVALID_PARAMETER;
} else {
- //
- // this is default so dont worry about flag...
- //
- String = ShellCommandLineGetValue (Package, L"-c");
+ String = ShellCommandLineGetValue (Package, L"-s");
+ DEBUG_CODE (
+ ShellPrintDefaultEx (L"Reset with %s (%d bytes)\n", String, String != NULL ? StrSize (String) : 0);
+ );
if (String != NULL) {
- gRT->ResetSystem (EfiResetCold, EFI_SUCCESS, StrSize (String), (VOID *)String);
+ gRT->ResetSystem (EfiResetShutdown, EFI_SUCCESS, StrSize (String), (VOID *)String);
} else {
- gRT->ResetSystem (EfiResetCold, EFI_SUCCESS, 0, NULL);
+ gRT->ResetSystem (EfiResetShutdown, EFI_SUCCESS, 0, NULL);
}
}
+ } else {
+ //
+ // this is default so dont worry about flag...
+ //
+ String = ShellCommandLineGetValue (Package, L"-c");
+ if (String != NULL) {
+ gRT->ResetSystem (EfiResetCold, EFI_SUCCESS, StrSize (String), (VOID *)String);
+ } else {
+ gRT->ResetSystem (EfiResetCold, EFI_SUCCESS, 0, NULL);
+ }
}
}
diff --git a/ShellPkg/Library/UefiShellLevel2CommandsLib/Rm.c b/ShellPkg/Library/UefiShellLevel2CommandsLib/Rm.c
index edf31d6b4a..e1105a4ecc 100644
--- a/ShellPkg/Library/UefiShellLevel2CommandsLib/Rm.c
+++ b/ShellPkg/Library/UefiShellLevel2CommandsLib/Rm.c
@@ -313,88 +313,90 @@ ShellCommandRunRm (
} else {
ASSERT (FALSE);
}
+
+ return ShellStatus;
+ }
+
+ //
+ // check for "-?"
+ //
+ if (ShellCommandLineGetFlag (Package, L"-?")) {
+ ASSERT (FALSE);
+ }
+
+ if (ShellCommandLineGetRawValue (Package, 1) == NULL) {
+ //
+ // we insufficient parameters
+ //
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_FEW), gShellLevel2HiiHandle, L"rm");
+ ShellStatus = SHELL_INVALID_PARAMETER;
} else {
//
- // check for "-?"
+ // get a list with each file specified by parameters
+ // if parameter is a directory then add all the files below it to the list
//
- if (ShellCommandLineGetFlag (Package, L"-?")) {
- ASSERT (FALSE);
+ for ( ParamCount = 1, Param = ShellCommandLineGetRawValue (Package, ParamCount)
+ ; Param != NULL
+ ; ParamCount++, Param = ShellCommandLineGetRawValue (Package, ParamCount)
+ )
+ {
+ Status = ShellOpenFileMetaArg ((CHAR16 *)Param, EFI_FILE_MODE_WRITE|EFI_FILE_MODE_READ, &FileList);
+ if (EFI_ERROR (Status) || (FileList == NULL) || IsListEmpty (&FileList->Link)) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_FILE_NF), gShellLevel2HiiHandle, L"rm", (CHAR16 *)Param);
+ ShellStatus = SHELL_NOT_FOUND;
+ break;
+ }
}
- if (ShellCommandLineGetRawValue (Package, 1) == NULL) {
- //
- // we insufficient parameters
- //
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_FEW), gShellLevel2HiiHandle, L"rm");
- ShellStatus = SHELL_INVALID_PARAMETER;
- } else {
+ if (ShellStatus == SHELL_SUCCESS) {
//
- // get a list with each file specified by parameters
- // if parameter is a directory then add all the files below it to the list
+ // loop through the list and make sure we are not aborting...
//
- for ( ParamCount = 1, Param = ShellCommandLineGetRawValue (Package, ParamCount)
- ; Param != NULL
- ; ParamCount++, Param = ShellCommandLineGetRawValue (Package, ParamCount)
+ for ( Node = (EFI_SHELL_FILE_INFO *)GetFirstNode (&FileList->Link)
+ ; !IsNull (&FileList->Link, &Node->Link) && !ShellGetExecutionBreakFlag ()
+ ; Node = (EFI_SHELL_FILE_INFO *)GetNextNode (&FileList->Link, &Node->Link)
)
{
- Status = ShellOpenFileMetaArg ((CHAR16 *)Param, EFI_FILE_MODE_WRITE|EFI_FILE_MODE_READ, &FileList);
- if (EFI_ERROR (Status) || (FileList == NULL) || IsListEmpty (&FileList->Link)) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_FILE_NF), gShellLevel2HiiHandle, L"rm", (CHAR16 *)Param);
- ShellStatus = SHELL_NOT_FOUND;
- break;
+ //
+ // skip the directory traversing stuff...
+ //
+ if ((StrCmp (Node->FileName, L".") == 0) || (StrCmp (Node->FileName, L"..") == 0)) {
+ continue;
}
- }
- if (ShellStatus == SHELL_SUCCESS) {
//
- // loop through the list and make sure we are not aborting...
+ // do the deleting of nodes
//
- for ( Node = (EFI_SHELL_FILE_INFO *)GetFirstNode (&FileList->Link)
- ; !IsNull (&FileList->Link, &Node->Link) && !ShellGetExecutionBreakFlag ()
- ; Node = (EFI_SHELL_FILE_INFO *)GetNextNode (&FileList->Link, &Node->Link)
- )
- {
- //
- // skip the directory traversing stuff...
- //
- if ((StrCmp (Node->FileName, L".") == 0) || (StrCmp (Node->FileName, L"..") == 0)) {
- continue;
- }
-
- //
- // do the deleting of nodes
- //
- if (EFI_ERROR (Node->Status)) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_RM_LOG_DELETE_ERR2), gShellLevel2HiiHandle, Node->Status);
- ShellStatus = SHELL_ACCESS_DENIED;
- break;
- }
-
- if (!IsValidDeleteTarget (FileList, Node, Package)) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_RM_LOG_DELETE_ERR3), gShellLevel2HiiHandle, Node->FullName);
- ShellStatus = SHELL_INVALID_PARAMETER;
- break;
- }
+ if (EFI_ERROR (Node->Status)) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_RM_LOG_DELETE_ERR2), gShellLevel2HiiHandle, Node->Status);
+ ShellStatus = SHELL_ACCESS_DENIED;
+ break;
+ }
- ShellStatus = CascadeDelete (Node, ShellCommandLineGetFlag (Package, L"-q"));
+ if (!IsValidDeleteTarget (FileList, Node, Package)) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_RM_LOG_DELETE_ERR3), gShellLevel2HiiHandle, Node->FullName);
+ ShellStatus = SHELL_INVALID_PARAMETER;
+ break;
}
- }
- //
- // Free the fileList
- //
- if (FileList != NULL) {
- Status = ShellCloseFileMetaArg (&FileList);
+ ShellStatus = CascadeDelete (Node, ShellCommandLineGetFlag (Package, L"-q"));
}
-
- FileList = NULL;
}
//
- // free the command line package
+ // Free the fileList
//
- ShellCommandLineFreeVarList (Package);
+ if (FileList != NULL) {
+ Status = ShellCloseFileMetaArg (&FileList);
+ }
+
+ FileList = NULL;
}
+ //
+ // free the command line package
+ //
+ ShellCommandLineFreeVarList (Package);
+
return (ShellStatus);
}
diff --git a/ShellPkg/Library/UefiShellLevel2CommandsLib/Set.c b/ShellPkg/Library/UefiShellLevel2CommandsLib/Set.c
index c2a6ec4484..1f907a50ce 100644
--- a/ShellPkg/Library/UefiShellLevel2CommandsLib/Set.c
+++ b/ShellPkg/Library/UefiShellLevel2CommandsLib/Set.c
@@ -92,69 +92,71 @@ ShellCommandRunSet (
} else {
ASSERT (FALSE);
}
- } else {
+
+ return ShellStatus;
+ }
+
+ //
+ // check for "-?"
+ //
+ if (ShellCommandLineGetFlag (Package, L"-?")) {
+ ASSERT (FALSE);
+ } else if (ShellCommandLineGetRawValue (Package, 3) != NULL) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel2HiiHandle, L"set");
+ ShellStatus = SHELL_INVALID_PARAMETER;
+ } else if ((ShellCommandLineGetRawValue (Package, 1) != NULL) && ShellCommandLineGetFlag (Package, L"-d")) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel2HiiHandle, L"set");
+ ShellStatus = SHELL_INVALID_PARAMETER;
+ } else if (ShellCommandLineGetFlag (Package, L"-d")) {
//
- // check for "-?"
+ // delete a environment variable
//
- if (ShellCommandLineGetFlag (Package, L"-?")) {
- ASSERT (FALSE);
- } else if (ShellCommandLineGetRawValue (Package, 3) != NULL) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel2HiiHandle, L"set");
+ KeyName = ShellCommandLineGetValue (Package, L"-d");
+ if (KeyName == NULL) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_NO_VALUE), gShellLevel2HiiHandle, L"set", L"-d");
ShellStatus = SHELL_INVALID_PARAMETER;
- } else if ((ShellCommandLineGetRawValue (Package, 1) != NULL) && ShellCommandLineGetFlag (Package, L"-d")) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel2HiiHandle, L"set");
- ShellStatus = SHELL_INVALID_PARAMETER;
- } else if (ShellCommandLineGetFlag (Package, L"-d")) {
- //
- // delete a environment variable
- //
- KeyName = ShellCommandLineGetValue (Package, L"-d");
- if (KeyName == NULL) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_NO_VALUE), gShellLevel2HiiHandle, L"set", L"-d");
- ShellStatus = SHELL_INVALID_PARAMETER;
- } else {
- Status = ShellSetEnvironmentVariable (KeyName, L"", ShellCommandLineGetFlag (Package, L"-v"));
- if (EFI_ERROR (Status)) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_SET_ND), gShellLevel2HiiHandle, L"set", KeyName);
- ShellStatus = SHELL_DEVICE_ERROR;
- }
+ } else {
+ Status = ShellSetEnvironmentVariable (KeyName, L"", ShellCommandLineGetFlag (Package, L"-v"));
+ if (EFI_ERROR (Status)) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_SET_ND), gShellLevel2HiiHandle, L"set", KeyName);
+ ShellStatus = SHELL_DEVICE_ERROR;
}
- } else if (ShellCommandLineGetRawValue (Package, 1) == NULL) {
+ }
+ } else if (ShellCommandLineGetRawValue (Package, 1) == NULL) {
+ //
+ // print out all current environment variables
+ //
+ return (PrintAllShellEnvVars ());
+ } else {
+ //
+ // we are either printing one or assigning one
+ //
+ KeyName = ShellCommandLineGetRawValue (Package, 1);
+ Value = ShellCommandLineGetRawValue (Package, 2);
+ if ((KeyName != NULL) && (Value != NULL)) {
//
- // print out all current environment variables
+ // assigning one
//
- return (PrintAllShellEnvVars ());
+ Status = ShellSetEnvironmentVariable (KeyName, Value, ShellCommandLineGetFlag (Package, L"-v"));
+ if (EFI_ERROR (Status)) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_SET_ERROR_SET), gShellLevel2HiiHandle, L"set", KeyName);
+ ShellStatus = (SHELL_STATUS)(Status & (~MAX_BIT));
+ }
} else {
- //
- // we are either printing one or assigning one
- //
- KeyName = ShellCommandLineGetRawValue (Package, 1);
- Value = ShellCommandLineGetRawValue (Package, 2);
- if ((KeyName != NULL) && (Value != NULL)) {
+ if (KeyName != NULL) {
//
- // assigning one
+ // print out value for this one only.
//
- Status = ShellSetEnvironmentVariable (KeyName, Value, ShellCommandLineGetFlag (Package, L"-v"));
- if (EFI_ERROR (Status)) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_SET_ERROR_SET), gShellLevel2HiiHandle, L"set", KeyName);
- ShellStatus = (SHELL_STATUS)(Status & (~MAX_BIT));
- }
- } else {
- if (KeyName != NULL) {
- //
- // print out value for this one only.
- //
- Value = ShellGetEnvironmentVariable (KeyName);
- if (Value == NULL) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_SET_NF), gShellLevel2HiiHandle, L"set", KeyName);
- ShellStatus = SHELL_SUCCESS;
- } else {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_SET_DISP), gShellLevel2HiiHandle, KeyName, Value);
- ShellStatus = SHELL_SUCCESS;
- }
+ Value = ShellGetEnvironmentVariable (KeyName);
+ if (Value == NULL) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_SET_NF), gShellLevel2HiiHandle, L"set", KeyName);
+ ShellStatus = SHELL_SUCCESS;
} else {
- ASSERT (FALSE);
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_SET_DISP), gShellLevel2HiiHandle, KeyName, Value);
+ ShellStatus = SHELL_SUCCESS;
}
+ } else {
+ ASSERT (FALSE);
}
}
}
diff --git a/ShellPkg/Library/UefiShellLevel2CommandsLib/TimeDate.c b/ShellPkg/Library/UefiShellLevel2CommandsLib/TimeDate.c
index f0c3a5516e..761d88f9a3 100644
--- a/ShellPkg/Library/UefiShellLevel2CommandsLib/TimeDate.c
+++ b/ShellPkg/Library/UefiShellLevel2CommandsLib/TimeDate.c
@@ -207,63 +207,65 @@ ShellCommandRunDate (
} else {
ASSERT (FALSE);
}
+
+ return ShellStatus;
+ }
+
+ //
+ // check for "-?"
+ //
+ if (ShellCommandLineGetFlag (Package, L"-?")) {
+ ASSERT (FALSE);
+ } else if (ShellCommandLineGetRawValue (Package, 2) != NULL) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel2HiiHandle, L"date");
+ ShellStatus = SHELL_INVALID_PARAMETER;
} else {
//
- // check for "-?"
+ // If there are 0 value parameters, then print the current date
+ // else If there are any value paramerers, then print error
//
- if (ShellCommandLineGetFlag (Package, L"-?")) {
- ASSERT (FALSE);
- } else if (ShellCommandLineGetRawValue (Package, 2) != NULL) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel2HiiHandle, L"date");
- ShellStatus = SHELL_INVALID_PARAMETER;
- } else {
+ if (ShellCommandLineGetRawValue (Package, 1) == NULL) {
//
- // If there are 0 value parameters, then print the current date
- // else If there are any value paramerers, then print error
+ // get the current date
//
- if (ShellCommandLineGetRawValue (Package, 1) == NULL) {
- //
- // get the current date
- //
- Status = gRT->GetTime (&TheTime, NULL);
- if (EFI_ERROR (Status)) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_UEFI_FUNC_WARN), gShellLevel2HiiHandle, L"date", L"gRT->GetTime", Status);
- return (SHELL_DEVICE_ERROR);
- }
+ Status = gRT->GetTime (&TheTime, NULL);
+ if (EFI_ERROR (Status)) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_UEFI_FUNC_WARN), gShellLevel2HiiHandle, L"date", L"gRT->GetTime", Status);
+ return (SHELL_DEVICE_ERROR);
+ }
+ //
+ // ShellPrintEx the date in SFO or regular format
+ //
+ if (ShellCommandLineGetFlag (Package, L"-sfo")) {
//
- // ShellPrintEx the date in SFO or regular format
+ // Match UEFI Shell spec:
+ // ShellCommand,"date"
+ // Date,"DD","MM","YYYY"
//
- if (ShellCommandLineGetFlag (Package, L"-sfo")) {
- //
- // Match UEFI Shell spec:
- // ShellCommand,"date"
- // Date,"DD","MM","YYYY"
- //
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_SFO_HEADER), gShellLevel2HiiHandle, L"date");
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_DATE_SFO_FORMAT), gShellLevel2HiiHandle, TheTime.Day, TheTime.Month, TheTime.Year);
- } else {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_DATE_FORMAT), gShellLevel2HiiHandle, TheTime.Month, TheTime.Day, TheTime.Year);
- }
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_SFO_HEADER), gShellLevel2HiiHandle, L"date");
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_DATE_SFO_FORMAT), gShellLevel2HiiHandle, TheTime.Day, TheTime.Month, TheTime.Year);
+ } else {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_DATE_FORMAT), gShellLevel2HiiHandle, TheTime.Month, TheTime.Day, TheTime.Year);
+ }
+ } else {
+ if (PcdGet8 (PcdShellSupportLevel) == 2) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel2HiiHandle, L"date");
+ ShellStatus = SHELL_INVALID_PARAMETER;
} else {
- if (PcdGet8 (PcdShellSupportLevel) == 2) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel2HiiHandle, L"date");
+ //
+ // perform level 3 operation here.
+ //
+ Param1 = ShellCommandLineGetRawValue (Package, 1);
+ if (Param1 == NULL) {
ShellStatus = SHELL_INVALID_PARAMETER;
} else {
- //
- // perform level 3 operation here.
- //
- Param1 = ShellCommandLineGetRawValue (Package, 1);
- if (Param1 == NULL) {
- ShellStatus = SHELL_INVALID_PARAMETER;
- } else {
- ShellStatus = CheckAndSetDate (Param1);
- }
+ ShellStatus = CheckAndSetDate (Param1);
+ }
- if (ShellStatus != SHELL_SUCCESS) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel2HiiHandle, L"date", Param1);
- ShellStatus = SHELL_INVALID_PARAMETER;
- }
+ if (ShellStatus != SHELL_SUCCESS) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel2HiiHandle, L"date", Param1);
+ ShellStatus = SHELL_INVALID_PARAMETER;
}
}
}
@@ -451,176 +453,178 @@ ShellCommandRunTime (
} else {
ASSERT (FALSE);
}
+
+ return ShellStatus;
+ }
+
+ //
+ // check for "-?"
+ //
+ Status = gRT->GetTime (&TheTime, NULL);
+ if (EFI_ERROR (Status)) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_UEFI_FUNC_WARN), gShellLevel2HiiHandle, L"time", L"gRT->GetTime", Status);
+ return (SHELL_DEVICE_ERROR);
+ }
+
+ if (ShellCommandLineGetFlag (Package, L"-?")) {
+ ASSERT (FALSE);
+ } else if (ShellCommandLineGetRawValue (Package, 2) != NULL) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel2HiiHandle, L"time");
+ ShellStatus = SHELL_INVALID_PARAMETER;
} else {
//
- // check for "-?"
+ // If there are no parameters, then print the current time
//
- Status = gRT->GetTime (&TheTime, NULL);
- if (EFI_ERROR (Status)) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_UEFI_FUNC_WARN), gShellLevel2HiiHandle, L"time", L"gRT->GetTime", Status);
- return (SHELL_DEVICE_ERROR);
- }
-
- if (ShellCommandLineGetFlag (Package, L"-?")) {
- ASSERT (FALSE);
- } else if (ShellCommandLineGetRawValue (Package, 2) != NULL) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel2HiiHandle, L"time");
- ShellStatus = SHELL_INVALID_PARAMETER;
- } else {
+ if ( (ShellCommandLineGetRawValue (Package, 1) == NULL)
+ && !ShellCommandLineGetFlag (Package, L"-d")
+ && !ShellCommandLineGetFlag (Package, L"-tz"))
+ {
//
- // If there are no parameters, then print the current time
+ // ShellPrintEx the current time
//
- if ( (ShellCommandLineGetRawValue (Package, 1) == NULL)
- && !ShellCommandLineGetFlag (Package, L"-d")
- && !ShellCommandLineGetFlag (Package, L"-tz"))
- {
- //
- // ShellPrintEx the current time
- //
- if (TheTime.TimeZone == EFI_UNSPECIFIED_TIMEZONE) {
- TzMinutes = 0;
- } else {
- TzMinutes = (ABS (TheTime.TimeZone)) % 60;
- }
+ if (TheTime.TimeZone == EFI_UNSPECIFIED_TIMEZONE) {
+ TzMinutes = 0;
+ } else {
+ TzMinutes = (ABS (TheTime.TimeZone)) % 60;
+ }
- if (TheTime.TimeZone != EFI_UNSPECIFIED_TIMEZONE) {
- ShellPrintHiiDefaultEx (
- STRING_TOKEN (STR_TIME_FORMAT),
- gShellLevel2HiiHandle,
- TheTime.Hour,
- TheTime.Minute,
- TheTime.Second,
- (TheTime.TimeZone > 0 ? L"-" : L"+"),
- ((ABS (TheTime.TimeZone)) / 60),
- TzMinutes
- );
- } else {
- ShellPrintHiiDefaultEx (
- STRING_TOKEN (STR_TIME_FORMAT_LOCAL),
- gShellLevel2HiiHandle,
- TheTime.Hour,
- TheTime.Minute,
- TheTime.Second
- );
- }
+ if (TheTime.TimeZone != EFI_UNSPECIFIED_TIMEZONE) {
+ ShellPrintHiiDefaultEx (
+ STRING_TOKEN (STR_TIME_FORMAT),
+ gShellLevel2HiiHandle,
+ TheTime.Hour,
+ TheTime.Minute,
+ TheTime.Second,
+ (TheTime.TimeZone > 0 ? L"-" : L"+"),
+ ((ABS (TheTime.TimeZone)) / 60),
+ TzMinutes
+ );
+ } else {
+ ShellPrintHiiDefaultEx (
+ STRING_TOKEN (STR_TIME_FORMAT_LOCAL),
+ gShellLevel2HiiHandle,
+ TheTime.Hour,
+ TheTime.Minute,
+ TheTime.Second
+ );
+ }
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_CRLF), gShellLevel2HiiHandle);
- } else if (ShellCommandLineGetFlag (Package, L"-d") && (ShellCommandLineGetValue (Package, L"-d") == NULL)) {
- if (TheTime.TimeZone == EFI_UNSPECIFIED_TIMEZONE) {
- ShellPrintHiiDefaultEx (
- STRING_TOKEN (STR_TIME_FORMAT_LOCAL),
- gShellLevel2HiiHandle,
- TheTime.Hour,
- TheTime.Minute,
- TheTime.Second
- );
- } else {
- TzMinutes = (ABS (TheTime.TimeZone)) % 60;
- ShellPrintHiiDefaultEx (
- STRING_TOKEN (STR_TIME_FORMAT),
- gShellLevel2HiiHandle,
- TheTime.Hour,
- TheTime.Minute,
- TheTime.Second,
- (TheTime.TimeZone > 0 ? L"-" : L"+"),
- ((ABS (TheTime.TimeZone)) / 60),
- TzMinutes
- );
- }
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_CRLF), gShellLevel2HiiHandle);
+ } else if (ShellCommandLineGetFlag (Package, L"-d") && (ShellCommandLineGetValue (Package, L"-d") == NULL)) {
+ if (TheTime.TimeZone == EFI_UNSPECIFIED_TIMEZONE) {
+ ShellPrintHiiDefaultEx (
+ STRING_TOKEN (STR_TIME_FORMAT_LOCAL),
+ gShellLevel2HiiHandle,
+ TheTime.Hour,
+ TheTime.Minute,
+ TheTime.Second
+ );
+ } else {
+ TzMinutes = (ABS (TheTime.TimeZone)) % 60;
+ ShellPrintHiiDefaultEx (
+ STRING_TOKEN (STR_TIME_FORMAT),
+ gShellLevel2HiiHandle,
+ TheTime.Hour,
+ TheTime.Minute,
+ TheTime.Second,
+ (TheTime.TimeZone > 0 ? L"-" : L"+"),
+ ((ABS (TheTime.TimeZone)) / 60),
+ TzMinutes
+ );
+ }
- switch (TheTime.Daylight) {
- case 0:
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_TIME_DST0), gShellLevel2HiiHandle);
- break;
- case EFI_TIME_ADJUST_DAYLIGHT:
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_TIME_DST1), gShellLevel2HiiHandle);
- break;
- case EFI_TIME_IN_DAYLIGHT:
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_TIME_DST2), gShellLevel2HiiHandle);
- break;
- case EFI_TIME_IN_DAYLIGHT|EFI_TIME_ADJUST_DAYLIGHT:
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_TIME_DST3), gShellLevel2HiiHandle);
- break;
- default:
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_UEFI_FUNC_ERROR), gShellLevel2HiiHandle, L"time", L"gRT->GetTime", L"TheTime.Daylight", TheTime.Daylight);
- }
+ switch (TheTime.Daylight) {
+ case 0:
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_TIME_DST0), gShellLevel2HiiHandle);
+ break;
+ case EFI_TIME_ADJUST_DAYLIGHT:
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_TIME_DST1), gShellLevel2HiiHandle);
+ break;
+ case EFI_TIME_IN_DAYLIGHT:
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_TIME_DST2), gShellLevel2HiiHandle);
+ break;
+ case EFI_TIME_IN_DAYLIGHT|EFI_TIME_ADJUST_DAYLIGHT:
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_TIME_DST3), gShellLevel2HiiHandle);
+ break;
+ default:
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_UEFI_FUNC_ERROR), gShellLevel2HiiHandle, L"time", L"gRT->GetTime", L"TheTime.Daylight", TheTime.Daylight);
+ }
+ } else {
+ if (PcdGet8 (PcdShellSupportLevel) == 2) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel2HiiHandle, L"time");
+ ShellStatus = SHELL_INVALID_PARAMETER;
} else {
- if (PcdGet8 (PcdShellSupportLevel) == 2) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel2HiiHandle, L"time");
- ShellStatus = SHELL_INVALID_PARAMETER;
- } else {
- //
- // perform level 3 operation here.
- //
- if ((TempLocation = ShellCommandLineGetValue (Package, L"-tz")) != NULL) {
- if (gUnicodeCollation->StriColl (gUnicodeCollation, (CHAR16 *)TempLocation, L"_local") == 0) {
- Tz = EFI_UNSPECIFIED_TIMEZONE;
- } else if (TempLocation[0] == L'-') {
+ //
+ // perform level 3 operation here.
+ //
+ if ((TempLocation = ShellCommandLineGetValue (Package, L"-tz")) != NULL) {
+ if (gUnicodeCollation->StriColl (gUnicodeCollation, (CHAR16 *)TempLocation, L"_local") == 0) {
+ Tz = EFI_UNSPECIFIED_TIMEZONE;
+ } else if (TempLocation[0] == L'-') {
+ Tz = (INT16)ShellStrToUintn (++TempLocation);
+ //
+ // When the argument of "time [-tz tz]" is not numeric, ShellStrToUintn() returns "-1".
+ // Here we can detect the argument error by checking the return of ShellStrToUintn().
+ //
+ if (Tz == -1) {
+ Tz = 1441; // make it to be out of bounds value
+ } else {
+ Tz *= (-1); // sign convert
+ }
+ } else {
+ if (TempLocation[0] == L'+') {
Tz = (INT16)ShellStrToUintn (++TempLocation);
- //
- // When the argument of "time [-tz tz]" is not numeric, ShellStrToUintn() returns "-1".
- // Here we can detect the argument error by checking the return of ShellStrToUintn().
- //
- if (Tz == -1) {
- Tz = 1441; // make it to be out of bounds value
- } else {
- Tz *= (-1); // sign convert
- }
} else {
- if (TempLocation[0] == L'+') {
- Tz = (INT16)ShellStrToUintn (++TempLocation);
- } else {
- Tz = (INT16)ShellStrToUintn (TempLocation);
- }
-
- //
- // Detect the return of ShellStrToUintn() to make sure the argument is valid.
- //
- if (Tz == -1) {
- Tz = 1441; // make it to be out of bounds value
- }
+ Tz = (INT16)ShellStrToUintn (TempLocation);
}
- if (!((Tz >= -1440) && (Tz <= 1440)) && (Tz != EFI_UNSPECIFIED_TIMEZONE)) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PROBLEM_VAL), gShellLevel2HiiHandle, L"time", TempLocation, L"-tz");
- ShellStatus = SHELL_INVALID_PARAMETER;
- }
- } else {
//
- // intentionally out of bounds value will prevent changing it...
+ // Detect the return of ShellStrToUintn() to make sure the argument is valid.
//
- Tz = 1441;
+ if (Tz == -1) {
+ Tz = 1441; // make it to be out of bounds value
+ }
}
- TempLocation = ShellCommandLineGetValue (Package, L"-d");
- if (TempLocation != NULL) {
- Daylight = (UINT8)ShellStrToUintn (TempLocation);
- //
- // The argument of "time [-d dl]" is unsigned, if the first character is '-',
- // the argument is incorrect. That's because ShellStrToUintn() will skip past
- // any '-' sign and convert what's next, forgetting the sign is here.
- //
- if (TempLocation[0] == '-') {
- Daylight = 0xff; // make it invalid = will not use
- }
+ if (!((Tz >= -1440) && (Tz <= 1440)) && (Tz != EFI_UNSPECIFIED_TIMEZONE)) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PROBLEM_VAL), gShellLevel2HiiHandle, L"time", TempLocation, L"-tz");
+ ShellStatus = SHELL_INVALID_PARAMETER;
+ }
+ } else {
+ //
+ // intentionally out of bounds value will prevent changing it...
+ //
+ Tz = 1441;
+ }
- if ((Daylight != 0) && (Daylight != 1) && (Daylight != 3)) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PROBLEM_VAL), gShellLevel2HiiHandle, L"time", TempLocation, L"-d");
- ShellStatus = SHELL_INVALID_PARAMETER;
- }
- } else {
- //
- // invalid = will not use
- //
- Daylight = 0xFF;
+ TempLocation = ShellCommandLineGetValue (Package, L"-d");
+ if (TempLocation != NULL) {
+ Daylight = (UINT8)ShellStrToUintn (TempLocation);
+ //
+ // The argument of "time [-d dl]" is unsigned, if the first character is '-',
+ // the argument is incorrect. That's because ShellStrToUintn() will skip past
+ // any '-' sign and convert what's next, forgetting the sign is here.
+ //
+ if (TempLocation[0] == '-') {
+ Daylight = 0xff; // make it invalid = will not use
}
- if (ShellStatus == SHELL_SUCCESS) {
- ShellStatus = CheckAndSetTime (ShellCommandLineGetRawValue (Package, 1), Tz, Daylight);
- if (ShellStatus != SHELL_SUCCESS) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel2HiiHandle, L"time", ShellCommandLineGetRawValue (Package, 1));
- ShellStatus = SHELL_INVALID_PARAMETER;
- }
+ if ((Daylight != 0) && (Daylight != 1) && (Daylight != 3)) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PROBLEM_VAL), gShellLevel2HiiHandle, L"time", TempLocation, L"-d");
+ ShellStatus = SHELL_INVALID_PARAMETER;
+ }
+ } else {
+ //
+ // invalid = will not use
+ //
+ Daylight = 0xFF;
+ }
+
+ if (ShellStatus == SHELL_SUCCESS) {
+ ShellStatus = CheckAndSetTime (ShellCommandLineGetRawValue (Package, 1), Tz, Daylight);
+ if (ShellStatus != SHELL_SUCCESS) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel2HiiHandle, L"time", ShellCommandLineGetRawValue (Package, 1));
+ ShellStatus = SHELL_INVALID_PARAMETER;
}
}
}
@@ -850,131 +854,133 @@ ShellCommandRunTimeZone (
} else {
ASSERT (FALSE);
}
- } else {
- //
- // check for "-?"
- //
- if (ShellCommandLineGetCount (Package) > 1) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel2HiiHandle, L"timezone");
+
+ return ShellStatus;
+ }
+
+ //
+ // check for "-?"
+ //
+ if (ShellCommandLineGetCount (Package) > 1) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel2HiiHandle, L"timezone");
+ ShellStatus = SHELL_INVALID_PARAMETER;
+ } else if (ShellCommandLineGetFlag (Package, L"-?")) {
+ ASSERT (FALSE);
+ } else if (ShellCommandLineGetFlag (Package, L"-s")) {
+ if ((ShellCommandLineGetFlag (Package, L"-l")) || (ShellCommandLineGetFlag (Package, L"-f"))) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel2HiiHandle, L"timezone", L"-l or -f");
ShellStatus = SHELL_INVALID_PARAMETER;
- } else if (ShellCommandLineGetFlag (Package, L"-?")) {
- ASSERT (FALSE);
- } else if (ShellCommandLineGetFlag (Package, L"-s")) {
- if ((ShellCommandLineGetFlag (Package, L"-l")) || (ShellCommandLineGetFlag (Package, L"-f"))) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel2HiiHandle, L"timezone", L"-l or -f");
+ } else {
+ ASSERT (PcdGet8 (PcdShellSupportLevel) == 3);
+ if (ShellCommandLineGetValue (Package, L"-s") == NULL) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_NO_VALUE), gShellLevel2HiiHandle, L"timezone", L"-s");
ShellStatus = SHELL_INVALID_PARAMETER;
} else {
- ASSERT (PcdGet8 (PcdShellSupportLevel) == 3);
- if (ShellCommandLineGetValue (Package, L"-s") == NULL) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_NO_VALUE), gShellLevel2HiiHandle, L"timezone", L"-s");
+ //
+ // Set the time zone
+ //
+ ShellStatus = CheckAndSetTimeZone (ShellCommandLineGetValue (Package, L"-s"));
+ if (ShellStatus != SHELL_SUCCESS) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel2HiiHandle, L"timezone", ShellCommandLineGetValue (Package, L"-s"));
ShellStatus = SHELL_INVALID_PARAMETER;
- } else {
- //
- // Set the time zone
- //
- ShellStatus = CheckAndSetTimeZone (ShellCommandLineGetValue (Package, L"-s"));
- if (ShellStatus != SHELL_SUCCESS) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel2HiiHandle, L"timezone", ShellCommandLineGetValue (Package, L"-s"));
- ShellStatus = SHELL_INVALID_PARAMETER;
- }
}
}
- } else if (ShellCommandLineGetFlag (Package, L"-l")) {
- //
- // Print a list of all time zones
- //
+ }
+ } else if (ShellCommandLineGetFlag (Package, L"-l")) {
+ //
+ // Print a list of all time zones
+ //
+ for ( LoopVar = 0
+ ; LoopVar < sizeof (TimeZoneList) / sizeof (TimeZoneList[0])
+ ; LoopVar++
+ )
+ {
+ ShellPrintHiiDefaultEx (TimeZoneList[LoopVar].StringId, gShellLevel2HiiHandle);
+ }
+ } else {
+ //
+ // Get Current Time Zone Info
+ //
+ Status = gRT->GetTime (&TheTime, NULL);
+ if (EFI_ERROR (Status)) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_UEFI_FUNC_WARN), gShellLevel2HiiHandle, L"timezone", L"gRT->GetTime", Status);
+ return (SHELL_DEVICE_ERROR);
+ }
+
+ if (TheTime.TimeZone != EFI_UNSPECIFIED_TIMEZONE) {
+ Found = FALSE;
for ( LoopVar = 0
; LoopVar < sizeof (TimeZoneList) / sizeof (TimeZoneList[0])
; LoopVar++
)
{
- ShellPrintHiiDefaultEx (TimeZoneList[LoopVar].StringId, gShellLevel2HiiHandle);
+ if (TheTime.TimeZone == TimeZoneList[LoopVar].TimeZone) {
+ if (ShellCommandLineGetFlag (Package, L"-f")) {
+ //
+ // Print all info about current time zone
+ //
+ ShellPrintHiiDefaultEx (TimeZoneList[LoopVar].StringId, gShellLevel2HiiHandle);
+ } else {
+ //
+ // Print basic info only
+ //
+ TzMinutes = (ABS (TheTime.TimeZone)) % 60;
+
+ ShellPrintHiiDefaultEx (
+ STRING_TOKEN (STR_TIMEZONE_SIMPLE),
+ gShellLevel2HiiHandle,
+ (TheTime.TimeZone > 0 ? L"-" : L"+"),
+ (ABS (TheTime.TimeZone)) / 60,
+ TzMinutes
+ );
+ }
+
+ Found = TRUE;
+ break;
+ }
+ }
+
+ if (!Found) {
+ //
+ // Print basic info only
+ //
+ TzMinutes = (ABS (TheTime.TimeZone)) % 60;
+
+ ShellPrintHiiDefaultEx (
+ STRING_TOKEN (STR_TIMEZONE_SIMPLE),
+ gShellLevel2HiiHandle,
+ (TheTime.TimeZone > 0 ? L"-" : L"+"),
+ (ABS (TheTime.TimeZone)) / 60,
+ TzMinutes
+ );
+
+ if (ShellCommandLineGetFlag (Package, L"-f")) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_TIMEZONE_NI), gShellLevel2HiiHandle);
+ }
}
} else {
//
- // Get Current Time Zone Info
+ // TimeZone was EFI_UNSPECIFIED_TIMEZONE (local) from GetTime()
//
- Status = gRT->GetTime (&TheTime, NULL);
- if (EFI_ERROR (Status)) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_UEFI_FUNC_WARN), gShellLevel2HiiHandle, L"timezone", L"gRT->GetTime", Status);
- return (SHELL_DEVICE_ERROR);
- }
-
- if (TheTime.TimeZone != EFI_UNSPECIFIED_TIMEZONE) {
- Found = FALSE;
+ if (ShellCommandLineGetFlag (Package, L"-f")) {
for ( LoopVar = 0
- ; LoopVar < sizeof (TimeZoneList) / sizeof (TimeZoneList[0])
+ ; LoopVar < ARRAY_SIZE (TimeZoneList)
; LoopVar++
)
{
if (TheTime.TimeZone == TimeZoneList[LoopVar].TimeZone) {
- if (ShellCommandLineGetFlag (Package, L"-f")) {
- //
- // Print all info about current time zone
- //
- ShellPrintHiiDefaultEx (TimeZoneList[LoopVar].StringId, gShellLevel2HiiHandle);
- } else {
- //
- // Print basic info only
- //
- TzMinutes = (ABS (TheTime.TimeZone)) % 60;
-
- ShellPrintHiiDefaultEx (
- STRING_TOKEN (STR_TIMEZONE_SIMPLE),
- gShellLevel2HiiHandle,
- (TheTime.TimeZone > 0 ? L"-" : L"+"),
- (ABS (TheTime.TimeZone)) / 60,
- TzMinutes
- );
- }
-
- Found = TRUE;
+ //
+ // Print all info about current time zone
+ //
+ ShellPrintHiiDefaultEx (TimeZoneList[LoopVar].StringId, gShellLevel2HiiHandle);
break;
}
}
-
- if (!Found) {
- //
- // Print basic info only
- //
- TzMinutes = (ABS (TheTime.TimeZone)) % 60;
-
- ShellPrintHiiDefaultEx (
- STRING_TOKEN (STR_TIMEZONE_SIMPLE),
- gShellLevel2HiiHandle,
- (TheTime.TimeZone > 0 ? L"-" : L"+"),
- (ABS (TheTime.TimeZone)) / 60,
- TzMinutes
- );
-
- if (ShellCommandLineGetFlag (Package, L"-f")) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_TIMEZONE_NI), gShellLevel2HiiHandle);
- }
- }
} else {
//
- // TimeZone was EFI_UNSPECIFIED_TIMEZONE (local) from GetTime()
+ // Print basic info only
//
- if (ShellCommandLineGetFlag (Package, L"-f")) {
- for ( LoopVar = 0
- ; LoopVar < ARRAY_SIZE (TimeZoneList)
- ; LoopVar++
- )
- {
- if (TheTime.TimeZone == TimeZoneList[LoopVar].TimeZone) {
- //
- // Print all info about current time zone
- //
- ShellPrintHiiDefaultEx (TimeZoneList[LoopVar].StringId, gShellLevel2HiiHandle);
- break;
- }
- }
- } else {
- //
- // Print basic info only
- //
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_TIMEZONE_SIMPLE_LOCAL), gShellLevel2HiiHandle);
- }
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_TIMEZONE_SIMPLE_LOCAL), gShellLevel2HiiHandle);
}
}
}
diff --git a/ShellPkg/Library/UefiShellLevel2CommandsLib/Vol.c b/ShellPkg/Library/UefiShellLevel2CommandsLib/Vol.c
index 0279c42b95..c2d61f1964 100644
--- a/ShellPkg/Library/UefiShellLevel2CommandsLib/Vol.c
+++ b/ShellPkg/Library/UefiShellLevel2CommandsLib/Vol.c
@@ -260,60 +260,62 @@ ShellCommandRunVol (
} else {
ASSERT (FALSE);
}
+
+ return ShellStatus;
+ }
+
+ //
+ // check for "-?"
+ //
+ if (ShellCommandLineGetFlag (Package, L"-?")) {
+ ASSERT (FALSE);
+ }
+
+ if (ShellCommandLineGetCount (Package) > 2) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel2HiiHandle, L"vol");
+ ShellStatus = SHELL_INVALID_PARAMETER;
} else {
- //
- // check for "-?"
- //
- if (ShellCommandLineGetFlag (Package, L"-?")) {
- ASSERT (FALSE);
+ PathName = ShellCommandLineGetRawValue (Package, 1);
+ if (PathName == NULL) {
+ CurDir = gEfiShellProtocol->GetCurDir (NULL);
+ if (CurDir == NULL) {
+ ShellStatus = SHELL_NOT_FOUND;
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_NO_CWD), gShellLevel2HiiHandle, L"vol");
+ } else {
+ PathName = CurDir;
+ }
}
- if (ShellCommandLineGetCount (Package) > 2) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel2HiiHandle, L"vol");
- ShellStatus = SHELL_INVALID_PARAMETER;
- } else {
- PathName = ShellCommandLineGetRawValue (Package, 1);
- if (PathName == NULL) {
- CurDir = gEfiShellProtocol->GetCurDir (NULL);
- if (CurDir == NULL) {
- ShellStatus = SHELL_NOT_FOUND;
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_NO_CWD), gShellLevel2HiiHandle, L"vol");
- } else {
- PathName = CurDir;
- }
+ if (PathName != NULL) {
+ TempSpot = StrStr (PathName, L":");
+ if (TempSpot != NULL) {
+ *TempSpot = CHAR_NULL;
}
- if (PathName != NULL) {
- TempSpot = StrStr (PathName, L":");
- if (TempSpot != NULL) {
- *TempSpot = CHAR_NULL;
- }
-
- TempSpot = StrStr (PathName, L"\\");
- if (TempSpot != NULL) {
- *TempSpot = CHAR_NULL;
- }
-
- StrnCatGrow (&FullPath, &Length, PathName, 0);
- StrnCatGrow (&FullPath, &Length, L":\\", 0);
- DeleteMode = ShellCommandLineGetFlag (Package, L"-d");
- NewName = ShellCommandLineGetValue (Package, L"-n");
- if (DeleteMode && ShellCommandLineGetFlag (Package, L"-n")) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_CONFLICT), gShellLevel2HiiHandle, L"vol", L"-d", L"-n");
- ShellStatus = SHELL_INVALID_PARAMETER;
- } else if (ShellCommandLineGetFlag (Package, L"-n") && (NewName == NULL)) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_NO_VALUE), gShellLevel2HiiHandle, L"vol", L"-n");
- ShellStatus = SHELL_INVALID_PARAMETER;
- } else if ((NewName != NULL) && (StrLen (NewName) > 11)) {
- ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PROBLEM_VAL), gShellLevel2HiiHandle, L"vol", NewName, L"-n");
- ShellStatus = SHELL_INVALID_PARAMETER;
- } else if (ShellStatus == SHELL_SUCCESS) {
- ShellStatus = HandleVol (
- FullPath,
- DeleteMode,
- NewName
- );
- }
+ TempSpot = StrStr (PathName, L"\\");
+ if (TempSpot != NULL) {
+ *TempSpot = CHAR_NULL;
+ }
+
+ StrnCatGrow (&FullPath, &Length, PathName, 0);
+ StrnCatGrow (&FullPath, &Length, L":\\", 0);
+ DeleteMode = ShellCommandLineGetFlag (Package, L"-d");
+ NewName = ShellCommandLineGetValue (Package, L"-n");
+ if (DeleteMode && ShellCommandLineGetFlag (Package, L"-n")) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PARAM_CONFLICT), gShellLevel2HiiHandle, L"vol", L"-d", L"-n");
+ ShellStatus = SHELL_INVALID_PARAMETER;
+ } else if (ShellCommandLineGetFlag (Package, L"-n") && (NewName == NULL)) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_NO_VALUE), gShellLevel2HiiHandle, L"vol", L"-n");
+ ShellStatus = SHELL_INVALID_PARAMETER;
+ } else if ((NewName != NULL) && (StrLen (NewName) > 11)) {
+ ShellPrintHiiDefaultEx (STRING_TOKEN (STR_GEN_PROBLEM_VAL), gShellLevel2HiiHandle, L"vol", NewName, L"-n");
+ ShellStatus = SHELL_INVALID_PARAMETER;
+ } else if (ShellStatus == SHELL_SUCCESS) {
+ ShellStatus = HandleVol (
+ FullPath,
+ DeleteMode,
+ NewName
+ );
}
}
}