@param[in] Dest pointer to destination file name\r
@param[out] Resp pointer to response from question. Pass back on looped calling\r
@param[in] SilentMode whether to run in quiet mode or not\r
+ @param[in] CmdName Source command name requesting single file copy\r
\r
@retval SHELL_SUCCESS The source file was copied to the destination\r
**/\r
IN CONST CHAR16 *Source,\r
IN CONST CHAR16 *Dest,\r
OUT VOID **Resp,\r
- IN BOOLEAN SilentMode\r
+ IN BOOLEAN SilentMode,\r
+ IN CONST CHAR16 *CmdName\r
)\r
{\r
VOID *Response;\r
if (ShellIsDirectory(Source) == EFI_SUCCESS) {\r
Status = ShellCreateDirectory(Dest, &DestHandle);\r
if (EFI_ERROR(Status)) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_CP_DEST_DIR_FAIL), gShellLevel2HiiHandle, L"cp", Dest); \r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_CP_DEST_DIR_FAIL), gShellLevel2HiiHandle, CmdName, Dest); \r
return (SHELL_ACCESS_DENIED);\r
}\r
\r
//\r
Status = ShellOpenFileByName(Dest, &DestHandle, EFI_FILE_MODE_READ|EFI_FILE_MODE_WRITE|EFI_FILE_MODE_CREATE, 0);\r
if (EFI_ERROR(Status)) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_CP_DEST_OPEN_FAIL), gShellLevel2HiiHandle, L"cp", Dest); \r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_CP_DEST_OPEN_FAIL), gShellLevel2HiiHandle, CmdName, Dest); \r
return (SHELL_ACCESS_DENIED);\r
}\r
\r
//not enough space on destination directory to copy file\r
//\r
SHELL_FREE_NON_NULL(DestVolumeInfo);\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_CPY_FAIL), gShellLevel2HiiHandle, L"cp"); \r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_CPY_FAIL), gShellLevel2HiiHandle, CmdName); \r
return(SHELL_VOLUME_FULL);\r
} else {\r
//\r
Status = ShellWriteFile(DestHandle, &ReadSize, Buffer);\r
if (EFI_ERROR(Status)) {\r
ShellStatus = (SHELL_STATUS) (Status & (~MAX_BIT));\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_CPY_WRITE_ERROR), gShellLevel2HiiHandle, L"cp", Dest); \r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_CPY_WRITE_ERROR), gShellLevel2HiiHandle, CmdName, Dest); \r
break;\r
}\r
} else {\r
ShellStatus = (SHELL_STATUS) (Status & (~MAX_BIT));\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_CPY_READ_ERROR), gShellLevel2HiiHandle, L"cp", Source); \r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_CPY_READ_ERROR), gShellLevel2HiiHandle, CmdName, Source); \r
break;\r
}\r
}\r
//\r
// copy single file...\r
//\r
- ShellStatus = CopySingleFile(Node->FullName, DestPath, &Response, SilentMode);\r
+ ShellStatus = CopySingleFile(Node->FullName, DestPath, &Response, SilentMode, L"cp");\r
if (ShellStatus != SHELL_SUCCESS) {\r
break;\r
}\r
//\r
// If they're the same, or if source is "above" dest on file path tree\r
//\r
- if ( StrCmp(DestPathWalker, SourcePath) == 0 \r
+ if ( StringNoCaseCompare (&DestPathWalker, &SourcePath) == 0 \r
|| StrStr(DestPathWalker, SourcePath) == DestPathWalker \r
) {\r
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_MV_INV_SUB), gShellLevel2HiiHandle);\r
OUT VOID **Resp\r
)\r
{\r
- EFI_STATUS Status;\r
+ SHELL_STATUS ShellStatus;\r
\r
//\r
// First we copy the file\r
//\r
- Status = CopySingleFile(Node->FullName, DestPath, Resp, TRUE);\r
+ ShellStatus = CopySingleFile (Node->FullName, DestPath, Resp, TRUE, L"mv");\r
\r
//\r
// Check our result\r
//\r
- if (!EFI_ERROR(Status)) {\r
+ if (ShellStatus == SHELL_SUCCESS) {\r
//\r
// The copy was successful. delete the source file.\r
//\r
CascadeDelete(Node, TRUE);\r
Node->Handle = NULL;\r
+ } else if (ShellStatus == SHELL_ABORTED) {\r
+ return EFI_ABORTED;\r
+ } else if (ShellStatus == SHELL_ACCESS_DENIED) {\r
+ return EFI_ACCESS_DENIED;\r
+ } else if (ShellStatus == SHELL_VOLUME_FULL) {\r
+ return EFI_VOLUME_FULL;\r
+ } else {\r
+ return EFI_UNSUPPORTED;\r
}\r
\r
- return (Status);\r
+ return (EFI_SUCCESS);\r
}\r
\r
/**\r
Status = MoveBetweenFileSystems(Node, FullDestPath!=NULL? FullDestPath:DestPath, &Response);\r
} else {\r
Status = MoveWithinFileSystems(Node, DestPath, &Response);\r
+ //\r
+ // Display error status\r
+ //\r
+ if (EFI_ERROR(Status)) {\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_ERR_UK), gShellLevel2HiiHandle, L"mv", Status);\r
+ }\r
}\r
\r
//\r
// Check our result\r
//\r
if (EFI_ERROR(Status)) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_ERR_UK), gShellLevel2HiiHandle, Status);\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
if (Status == EFI_SECURITY_VIOLATION) {\r
ShellStatus = SHELL_SECURITY_VIOLATION;\r