\r
#include "UefiShellLevel2CommandsLib.h"\r
\r
-STATIC CONST SHELL_PARAM_ITEM ParamList[] = {\r
- {L"-q", TypeFlag},\r
- {NULL, TypeMax}\r
- };\r
+STATIC CONST SHELL_PARAM_ITEM ParamList[] = {\r
+ { L"-q", TypeFlag },\r
+ { NULL, TypeMax }\r
+};\r
\r
/**\r
Determine if a directory has no files in it.\r
**/\r
BOOLEAN\r
IsDirectoryEmpty (\r
- IN SHELL_FILE_HANDLE FileHandle\r
+ IN SHELL_FILE_HANDLE FileHandle\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_FILE_INFO *FileInfo;\r
- BOOLEAN NoFile;\r
- BOOLEAN RetVal;\r
+ EFI_STATUS Status;\r
+ EFI_FILE_INFO *FileInfo;\r
+ BOOLEAN NoFile;\r
+ BOOLEAN RetVal;\r
\r
- RetVal = TRUE;\r
- NoFile = FALSE;\r
+ RetVal = TRUE;\r
+ NoFile = FALSE;\r
FileInfo = NULL;\r
\r
- for (Status = FileHandleFindFirstFile(FileHandle, &FileInfo)\r
- ; !NoFile && !EFI_ERROR (Status)\r
- ; FileHandleFindNextFile(FileHandle, FileInfo, &NoFile)\r
- ){\r
- if (StrStr(FileInfo->FileName, L".") != FileInfo->FileName\r
- &&StrStr(FileInfo->FileName, L"..") != FileInfo->FileName) {\r
+ for (Status = FileHandleFindFirstFile (FileHandle, &FileInfo)\r
+ ; !NoFile && !EFI_ERROR (Status)\r
+ ; FileHandleFindNextFile (FileHandle, FileInfo, &NoFile)\r
+ )\r
+ {\r
+ if ( (StrStr (FileInfo->FileName, L".") != FileInfo->FileName)\r
+ && (StrStr (FileInfo->FileName, L"..") != FileInfo->FileName))\r
+ {\r
RetVal = FALSE;\r
}\r
}\r
+\r
return (RetVal);\r
}\r
\r
@retval SHELL_DEVICE_ERROR A device error occurred reading this Node.\r
**/\r
SHELL_STATUS\r
-CascadeDelete(\r
+CascadeDelete (\r
IN EFI_SHELL_FILE_INFO *Node,\r
IN CONST BOOLEAN Quiet\r
)\r
{\r
- SHELL_STATUS ShellStatus;\r
- EFI_SHELL_FILE_INFO *List;\r
- EFI_SHELL_FILE_INFO *Node2;\r
- EFI_STATUS Status;\r
- SHELL_PROMPT_RESPONSE *Resp;\r
- CHAR16 *TempName;\r
- UINTN NewSize;\r
-\r
- Resp = NULL;\r
- ShellStatus = SHELL_SUCCESS;\r
- List = NULL;\r
- Status = EFI_SUCCESS;\r
+ SHELL_STATUS ShellStatus;\r
+ EFI_SHELL_FILE_INFO *List;\r
+ EFI_SHELL_FILE_INFO *Node2;\r
+ EFI_STATUS Status;\r
+ SHELL_PROMPT_RESPONSE *Resp;\r
+ CHAR16 *TempName;\r
+ UINTN NewSize;\r
+\r
+ Resp = NULL;\r
+ ShellStatus = SHELL_SUCCESS;\r
+ List = NULL;\r
+ Status = EFI_SUCCESS;\r
\r
if ((Node->Info->Attribute & EFI_FILE_READ_ONLY) == EFI_FILE_READ_ONLY) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_RM_LOG_DETELE_RO), gShellLevel2HiiHandle, L"rm", Node->FullName);\r
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_RM_LOG_DETELE_RO), gShellLevel2HiiHandle, L"rm", Node->FullName);\r
return (SHELL_ACCESS_DENIED);\r
}\r
\r
if ((Node->Info->Attribute & EFI_FILE_DIRECTORY) == EFI_FILE_DIRECTORY) {\r
- if (!IsDirectoryEmpty(Node->Handle)) {\r
+ if (!IsDirectoryEmpty (Node->Handle)) {\r
if (!Quiet) {\r
- Status = ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN(STR_RM_LOG_DELETE_CONF), gShellLevel2HiiHandle, Node->FullName);\r
- Status = ShellPromptForResponse(ShellPromptResponseTypeYesNo, NULL, (VOID**)&Resp);\r
- ASSERT(Resp != NULL);\r
- if (EFI_ERROR(Status) || *Resp != ShellPromptResponseYes) {\r
- SHELL_FREE_NON_NULL(Resp);\r
+ Status = ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_RM_LOG_DELETE_CONF), gShellLevel2HiiHandle, Node->FullName);\r
+ Status = ShellPromptForResponse (ShellPromptResponseTypeYesNo, NULL, (VOID **)&Resp);\r
+ ASSERT (Resp != NULL);\r
+ if (EFI_ERROR (Status) || (*Resp != ShellPromptResponseYes)) {\r
+ SHELL_FREE_NON_NULL (Resp);\r
return (SHELL_ABORTED);\r
}\r
- SHELL_FREE_NON_NULL(Resp);\r
+\r
+ SHELL_FREE_NON_NULL (Resp);\r
}\r
+\r
//\r
// empty out the directory\r
//\r
- Status = gEfiShellProtocol->FindFilesInDir(Node->Handle, &List);\r
- if (EFI_ERROR(Status)) {\r
- if (List!=NULL) {\r
- gEfiShellProtocol->FreeFileList(&List);\r
+ Status = gEfiShellProtocol->FindFilesInDir (Node->Handle, &List);\r
+ if (EFI_ERROR (Status)) {\r
+ if (List != NULL) {\r
+ gEfiShellProtocol->FreeFileList (&List);\r
}\r
+\r
return (SHELL_DEVICE_ERROR);\r
}\r
- for (Node2 = (EFI_SHELL_FILE_INFO *)GetFirstNode(&List->Link)\r
- ; !IsNull(&List->Link, &Node2->Link)\r
- ; Node2 = (EFI_SHELL_FILE_INFO *)GetNextNode(&List->Link, &Node2->Link)\r
- ){\r
+\r
+ for (Node2 = (EFI_SHELL_FILE_INFO *)GetFirstNode (&List->Link)\r
+ ; !IsNull (&List->Link, &Node2->Link)\r
+ ; Node2 = (EFI_SHELL_FILE_INFO *)GetNextNode (&List->Link, &Node2->Link)\r
+ )\r
+ {\r
//\r
// skip the directory traversing stuff...\r
//\r
- if (StrCmp(Node2->FileName, L".") == 0 || StrCmp(Node2->FileName, L"..") == 0) {\r
+ if ((StrCmp (Node2->FileName, L".") == 0) || (StrCmp (Node2->FileName, L"..") == 0)) {\r
continue;\r
}\r
+\r
Node2->Status = gEfiShellProtocol->OpenFileByName (Node2->FullName, &Node2->Handle, EFI_FILE_MODE_READ|EFI_FILE_MODE_WRITE);\r
- if (EFI_ERROR(Node2->Status) && StrStr(Node2->FileName, L":") == NULL) {\r
+ if (EFI_ERROR (Node2->Status) && (StrStr (Node2->FileName, L":") == NULL)) {\r
//\r
// Update the node filename to have full path with file system identifier\r
//\r
- NewSize = StrSize(Node->FullName) + StrSize(Node2->FullName);\r
- TempName = AllocateZeroPool(NewSize);\r
+ NewSize = StrSize (Node->FullName) + StrSize (Node2->FullName);\r
+ TempName = AllocateZeroPool (NewSize);\r
if (TempName == NULL) {\r
ShellStatus = SHELL_OUT_OF_RESOURCES;\r
} else {\r
- StrCpyS(TempName, NewSize/sizeof(CHAR16), Node->FullName);\r
- TempName[StrStr(TempName, L":")+1-TempName] = CHAR_NULL;\r
- StrCatS(TempName, NewSize/sizeof(CHAR16), Node2->FullName);\r
- FreePool((VOID*)Node2->FullName);\r
+ StrCpyS (TempName, NewSize/sizeof (CHAR16), Node->FullName);\r
+ TempName[StrStr (TempName, L":")+1-TempName] = CHAR_NULL;\r
+ StrCatS (TempName, NewSize/sizeof (CHAR16), Node2->FullName);\r
+ FreePool ((VOID *)Node2->FullName);\r
Node2->FullName = TempName;\r
\r
//\r
Node2->Status = gEfiShellProtocol->OpenFileByName (Node2->FullName, &Node2->Handle, EFI_FILE_MODE_READ|EFI_FILE_MODE_WRITE);\r
}\r
}\r
- if (!EFI_ERROR(Node2->Status)) {\r
- ShellStatus = CascadeDelete(Node2, Quiet);\r
+\r
+ if (!EFI_ERROR (Node2->Status)) {\r
+ ShellStatus = CascadeDelete (Node2, Quiet);\r
} else if (ShellStatus == SHELL_SUCCESS) {\r
ShellStatus = (SHELL_STATUS)(Node2->Status&(~0x80000000));\r
}\r
+\r
if (ShellStatus != SHELL_SUCCESS) {\r
- if (List!=NULL) {\r
- gEfiShellProtocol->FreeFileList(&List);\r
+ if (List != NULL) {\r
+ gEfiShellProtocol->FreeFileList (&List);\r
}\r
+\r
return (ShellStatus);\r
}\r
}\r
- if (List!=NULL) {\r
- gEfiShellProtocol->FreeFileList(&List);\r
+\r
+ if (List != NULL) {\r
+ gEfiShellProtocol->FreeFileList (&List);\r
}\r
}\r
}\r
\r
- if (!(StrCmp(Node->FileName, L".") == 0 || StrCmp(Node->FileName, L"..") == 0)) {\r
+ if (!((StrCmp (Node->FileName, L".") == 0) || (StrCmp (Node->FileName, L"..") == 0))) {\r
//\r
// now delete the current node...\r
//\r
if (!Quiet) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_RM_LOG_DELETE), gShellLevel2HiiHandle, Node->FullName);\r
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_RM_LOG_DELETE), gShellLevel2HiiHandle, Node->FullName);\r
}\r
- Status = gEfiShellProtocol->DeleteFile(Node->Handle);\r
+\r
+ Status = gEfiShellProtocol->DeleteFile (Node->Handle);\r
Node->Handle = NULL;\r
}\r
\r
//\r
// We cant allow for the warning here! (Dont use EFI_ERROR Macro).\r
//\r
- if (Status != EFI_SUCCESS){\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_RM_LOG_DELETE_ERR), gShellLevel2HiiHandle, Status);\r
+ if (Status != EFI_SUCCESS) {\r
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_RM_LOG_DELETE_ERR), gShellLevel2HiiHandle, Status);\r
return (SHELL_ACCESS_DENIED);\r
} else {\r
if (!Quiet) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_RM_LOG_DELETE_COMP), gShellLevel2HiiHandle);\r
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_RM_LOG_DELETE_COMP), gShellLevel2HiiHandle);\r
}\r
+\r
return (SHELL_SUCCESS);\r
}\r
}\r
@param[in] Package RESERVED. Not used.\r
**/\r
BOOLEAN\r
-IsValidDeleteTarget(\r
+IsValidDeleteTarget (\r
IN CONST EFI_SHELL_FILE_INFO *List,\r
IN CONST EFI_SHELL_FILE_INFO *Node,\r
IN CONST LIST_ENTRY *Package\r
)\r
{\r
- CONST CHAR16 *TempLocation;\r
- BOOLEAN RetVal;\r
- CHAR16 *SearchString;\r
- CHAR16 *Pattern;\r
- UINTN Size;\r
+ CONST CHAR16 *TempLocation;\r
+ BOOLEAN RetVal;\r
+ CHAR16 *SearchString;\r
+ CHAR16 *Pattern;\r
+ UINTN Size;\r
\r
- if (Node == NULL || Node->FullName == NULL) {\r
+ if ((Node == NULL) || (Node->FullName == NULL)) {\r
return (FALSE);\r
}\r
\r
- TempLocation = StrStr(Node->FullName, L":");\r
- if (StrLen(TempLocation) <= 2) {\r
+ TempLocation = StrStr (Node->FullName, L":");\r
+ if (StrLen (TempLocation) <= 2) {\r
//\r
// Deleting the root directory is invalid.\r
//\r
return (FALSE);\r
}\r
\r
- TempLocation = ShellGetCurrentDir(NULL);\r
+ TempLocation = ShellGetCurrentDir (NULL);\r
if (TempLocation == NULL) {\r
//\r
// No working directory is specified so whatever is left is ok.\r
return (TRUE);\r
}\r
\r
- Pattern = NULL;\r
- SearchString = NULL;\r
- Size = 0;\r
- Pattern = StrnCatGrow(&Pattern, &Size, TempLocation , 0);\r
- Pattern = StrnCatGrow(&Pattern, &Size, L"\\" , 0);\r
- Size = 0;\r
- SearchString = StrnCatGrow(&SearchString, &Size, Node->FullName, 0);\r
- if (!EFI_ERROR(ShellIsDirectory(SearchString))) {\r
- SearchString = StrnCatGrow(&SearchString, &Size, L"\\", 0);\r
- SearchString = StrnCatGrow(&SearchString, &Size, L"*", 0);\r
+ Pattern = NULL;\r
+ SearchString = NULL;\r
+ Size = 0;\r
+ Pattern = StrnCatGrow (&Pattern, &Size, TempLocation, 0);\r
+ Pattern = StrnCatGrow (&Pattern, &Size, L"\\", 0);\r
+ Size = 0;\r
+ SearchString = StrnCatGrow (&SearchString, &Size, Node->FullName, 0);\r
+ if (!EFI_ERROR (ShellIsDirectory (SearchString))) {\r
+ SearchString = StrnCatGrow (&SearchString, &Size, L"\\", 0);\r
+ SearchString = StrnCatGrow (&SearchString, &Size, L"*", 0);\r
}\r
\r
- if (Pattern == NULL || SearchString == NULL) {\r
+ if ((Pattern == NULL) || (SearchString == NULL)) {\r
RetVal = FALSE;\r
} else {\r
RetVal = TRUE;\r
- if (gUnicodeCollation->MetaiMatch(gUnicodeCollation, Pattern, SearchString)) {\r
+ if (gUnicodeCollation->MetaiMatch (gUnicodeCollation, Pattern, SearchString)) {\r
RetVal = FALSE;\r
}\r
}\r
\r
- SHELL_FREE_NON_NULL(Pattern );\r
- SHELL_FREE_NON_NULL(SearchString);\r
+ SHELL_FREE_NON_NULL (Pattern);\r
+ SHELL_FREE_NON_NULL (SearchString);\r
\r
return (RetVal);\r
}\r
IN EFI_SYSTEM_TABLE *SystemTable\r
)\r
{\r
- EFI_STATUS Status;\r
- LIST_ENTRY *Package;\r
- CHAR16 *ProblemParam;\r
- CONST CHAR16 *Param;\r
- SHELL_STATUS ShellStatus;\r
- UINTN ParamCount;\r
- EFI_SHELL_FILE_INFO *FileList;\r
- EFI_SHELL_FILE_INFO *Node;\r
-\r
- ProblemParam = NULL;\r
- ShellStatus = SHELL_SUCCESS;\r
- ParamCount = 0;\r
- FileList = NULL;\r
+ EFI_STATUS Status;\r
+ LIST_ENTRY *Package;\r
+ CHAR16 *ProblemParam;\r
+ CONST CHAR16 *Param;\r
+ SHELL_STATUS ShellStatus;\r
+ UINTN ParamCount;\r
+ EFI_SHELL_FILE_INFO *FileList;\r
+ EFI_SHELL_FILE_INFO *Node;\r
+\r
+ ProblemParam = NULL;\r
+ ShellStatus = SHELL_SUCCESS;\r
+ ParamCount = 0;\r
+ FileList = NULL;\r
\r
//\r
// initialize the shell lib (we must be in non-auto-init...)\r
//\r
- Status = ShellInitialize();\r
- ASSERT_EFI_ERROR(Status);\r
+ Status = ShellInitialize ();\r
+ ASSERT_EFI_ERROR (Status);\r
\r
//\r
// parse the command line\r
//\r
Status = ShellCommandLineParse (ParamList, &Package, &ProblemParam, TRUE);\r
- if (EFI_ERROR(Status)) {\r
- if (Status == EFI_VOLUME_CORRUPTED && ProblemParam != NULL) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellLevel2HiiHandle, L"rm", ProblemParam);\r
- FreePool(ProblemParam);\r
+ if (EFI_ERROR (Status)) {\r
+ if ((Status == EFI_VOLUME_CORRUPTED) && (ProblemParam != NULL)) {\r
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellLevel2HiiHandle, L"rm", ProblemParam);\r
+ FreePool (ProblemParam);\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
} else {\r
- ASSERT(FALSE);\r
+ ASSERT (FALSE);\r
}\r
} else {\r
//\r
// check for "-?"\r
//\r
- if (ShellCommandLineGetFlag(Package, L"-?")) {\r
- ASSERT(FALSE);\r
+ if (ShellCommandLineGetFlag (Package, L"-?")) {\r
+ ASSERT (FALSE);\r
}\r
- if (ShellCommandLineGetRawValue(Package, 1) == NULL) {\r
+\r
+ if (ShellCommandLineGetRawValue (Package, 1) == NULL) {\r
//\r
// we insufficient parameters\r
//\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_FEW), gShellLevel2HiiHandle, L"rm");\r
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_FEW), gShellLevel2HiiHandle, L"rm");\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
} else {\r
//\r
// get a list with each file specified by parameters\r
// if parameter is a directory then add all the files below it to the list\r
//\r
- for ( ParamCount = 1, Param = ShellCommandLineGetRawValue(Package, ParamCount)\r
- ; Param != NULL\r
- ; ParamCount++, Param = ShellCommandLineGetRawValue(Package, ParamCount)\r
- ){\r
- Status = ShellOpenFileMetaArg((CHAR16*)Param, EFI_FILE_MODE_WRITE|EFI_FILE_MODE_READ, &FileList);\r
- if (EFI_ERROR(Status) || FileList == NULL || IsListEmpty(&FileList->Link)) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_NF), gShellLevel2HiiHandle, L"rm", (CHAR16*)Param);\r
+ for ( ParamCount = 1, Param = ShellCommandLineGetRawValue (Package, ParamCount)\r
+ ; Param != NULL\r
+ ; ParamCount++, Param = ShellCommandLineGetRawValue (Package, ParamCount)\r
+ )\r
+ {\r
+ Status = ShellOpenFileMetaArg ((CHAR16 *)Param, EFI_FILE_MODE_WRITE|EFI_FILE_MODE_READ, &FileList);\r
+ if (EFI_ERROR (Status) || (FileList == NULL) || IsListEmpty (&FileList->Link)) {\r
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_NF), gShellLevel2HiiHandle, L"rm", (CHAR16 *)Param);\r
ShellStatus = SHELL_NOT_FOUND;\r
break;\r
}\r
}\r
\r
- if (ShellStatus == SHELL_SUCCESS){\r
+ if (ShellStatus == SHELL_SUCCESS) {\r
//\r
// loop through the list and make sure we are not aborting...\r
//\r
- for ( Node = (EFI_SHELL_FILE_INFO*)GetFirstNode(&FileList->Link)\r
- ; !IsNull(&FileList->Link, &Node->Link) && !ShellGetExecutionBreakFlag()\r
- ; Node = (EFI_SHELL_FILE_INFO*)GetNextNode(&FileList->Link, &Node->Link)\r
- ){\r
+ for ( Node = (EFI_SHELL_FILE_INFO *)GetFirstNode (&FileList->Link)\r
+ ; !IsNull (&FileList->Link, &Node->Link) && !ShellGetExecutionBreakFlag ()\r
+ ; Node = (EFI_SHELL_FILE_INFO *)GetNextNode (&FileList->Link, &Node->Link)\r
+ )\r
+ {\r
//\r
// skip the directory traversing stuff...\r
//\r
- if (StrCmp(Node->FileName, L".") == 0 || StrCmp(Node->FileName, L"..") == 0) {\r
+ if ((StrCmp (Node->FileName, L".") == 0) || (StrCmp (Node->FileName, L"..") == 0)) {\r
continue;\r
}\r
\r
//\r
// do the deleting of nodes\r
//\r
- if (EFI_ERROR(Node->Status)){\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_RM_LOG_DELETE_ERR2), gShellLevel2HiiHandle, Node->Status);\r
+ if (EFI_ERROR (Node->Status)) {\r
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_RM_LOG_DELETE_ERR2), gShellLevel2HiiHandle, Node->Status);\r
ShellStatus = SHELL_ACCESS_DENIED;\r
break;\r
}\r
- if (!IsValidDeleteTarget(FileList, Node, Package)) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_RM_LOG_DELETE_ERR3), gShellLevel2HiiHandle, Node->FullName);\r
+\r
+ if (!IsValidDeleteTarget (FileList, Node, Package)) {\r
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_RM_LOG_DELETE_ERR3), gShellLevel2HiiHandle, Node->FullName);\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
break;\r
}\r
\r
- ShellStatus = CascadeDelete(Node, ShellCommandLineGetFlag(Package, L"-q"));\r
+ ShellStatus = CascadeDelete (Node, ShellCommandLineGetFlag (Package, L"-q"));\r
}\r
}\r
+\r
//\r
// Free the fileList\r
//\r
if (FileList != NULL) {\r
- Status = ShellCloseFileMetaArg(&FileList);\r
+ Status = ShellCloseFileMetaArg (&FileList);\r
}\r
+\r
FileList = NULL;\r
}\r
\r
\r
return (ShellStatus);\r
}\r
-\r