/** @file\r
Main entry point of editor\r
- \r
- Copyright (c) 2005 - 2011, Intel Corporation. All rights reserved. <BR>\r
+\r
+ (C) Copyright 2014-2015 Hewlett-Packard Development Company, L.P.<BR>\r
+ Copyright (c) 2005 - 2018, Intel Corporation. All rights reserved. <BR>\r
This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
which accompanies this distribution. The full text of the license may be found at\r
CHAR16 *ProblemParam;\r
SHELL_STATUS ShellStatus;\r
LIST_ENTRY *Package;\r
- CONST CHAR16 *Cwd;\r
CHAR16 *NewName;\r
- CHAR16 *Spot;\r
CONST CHAR16 *Name;\r
UINTN Offset;\r
UINTN Size;\r
- UINT64 LastOffset;\r
EDIT_FILE_TYPE WhatToDo;\r
\r
Buffer = NULL;\r
ShellStatus = SHELL_SUCCESS;\r
NewName = NULL;\r
- Cwd = NULL;\r
Buffer = NULL;\r
Name = NULL;\r
- Spot = NULL;\r
Offset = 0;\r
Size = 0;\r
- LastOffset = 0;\r
WhatToDo = FileTypeNone;\r
\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), gShellDebug1HiiHandle, ProblemParam);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellDebug1HiiHandle, L"hexedit", ProblemParam);\r
FreePool(ProblemParam);\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
} else {\r
//\r
if (ShellCommandLineGetFlag(Package, L"-d")){\r
if (ShellCommandLineGetCount(Package) < 4) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_FEW), gShellDebug1HiiHandle);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_FEW), gShellDebug1HiiHandle, L"hexedit");\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
} else if (ShellCommandLineGetCount(Package) > 4) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellDebug1HiiHandle);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellDebug1HiiHandle, L"hexedit");\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
} else {\r
WhatToDo = FileTypeDiskBuffer;\r
Size = ShellStrToUintn(ShellCommandLineGetRawValue(Package, 3));\r
}\r
if (Offset == (UINTN)-1 || Size == (UINTN)-1) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM_VAL), gShellDebug1HiiHandle, L"-d");\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_NO_VALUE), gShellDebug1HiiHandle, L"hexedit", L"-d");\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
}\r
}\r
//\r
if (ShellCommandLineGetFlag(Package, L"-f") && (WhatToDo == FileTypeNone)){\r
if (ShellCommandLineGetCount(Package) < 2) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_FEW), gShellDebug1HiiHandle);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_FEW), gShellDebug1HiiHandle, L"hexedit");\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
} else if (ShellCommandLineGetCount(Package) > 2) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellDebug1HiiHandle);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellDebug1HiiHandle, L"hexedit");\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
} else {\r
Name = ShellCommandLineGetRawValue(Package, 1);\r
if (Name == NULL || !IsValidFileName(Name)) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellDebug1HiiHandle, Name);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellDebug1HiiHandle, L"hexedit", Name);\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
} else {\r
WhatToDo = FileTypeFileBuffer;\r
//\r
if (ShellCommandLineGetFlag(Package, L"-m") && (WhatToDo == FileTypeNone)){\r
if (ShellCommandLineGetCount(Package) < 3) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_FEW), gShellDebug1HiiHandle);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_FEW), gShellDebug1HiiHandle, L"hexedit");\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
} else if (ShellCommandLineGetCount(Package) > 3) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellDebug1HiiHandle);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellDebug1HiiHandle, L"hexedit");\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
} else {\r
WhatToDo = FileTypeMemBuffer;\r
}\r
Name = ShellCommandLineGetRawValue(Package, 1);\r
if (WhatToDo == FileTypeNone && Name != NULL) {\r
- if (!IsValidFileName(Name)) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellDebug1HiiHandle, Name);\r
- ShellStatus = SHELL_INVALID_PARAMETER;\r
- } else {\r
- WhatToDo = FileTypeFileBuffer;\r
- }\r
+ if (ShellCommandLineGetCount(Package) > 2) {\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellDebug1HiiHandle, L"hexedit");\r
+ ShellStatus = SHELL_INVALID_PARAMETER;\r
+ } else if (!IsValidFileName(Name)) {\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellDebug1HiiHandle, L"hexedit", Name);\r
+ ShellStatus = SHELL_INVALID_PARAMETER;\r
+ } else {\r
+ WhatToDo = FileTypeFileBuffer;\r
+ }\r
} else if (WhatToDo == FileTypeNone) {\r
if (gEfiShellProtocol->GetCurDir(NULL) == NULL) {\r
ShellStatus = SHELL_NOT_FOUND;\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_NO_CWD), gShellDebug1HiiHandle);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_NO_CWD), gShellDebug1HiiHandle, L"hexedit");\r
} else {\r
NewName = EditGetDefaultFileName(L"bin");\r
Name = NewName;\r
}\r
\r
if (ShellStatus == SHELL_SUCCESS && WhatToDo == FileTypeNone) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_FEW), gShellDebug1HiiHandle);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_FEW), gShellDebug1HiiHandle, L"hexedit");\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
} else if (WhatToDo == FileTypeFileBuffer && ShellGetCurrentDir(NULL) == NULL) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_NO_CWD), gShellDebug1HiiHandle);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_NO_CWD), gShellDebug1HiiHandle, L"hexedit");\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
- } \r
+ }\r
\r
if (ShellStatus == SHELL_SUCCESS) {\r
//\r
switch (WhatToDo) {\r
case FileTypeFileBuffer:\r
Status = HBufferImageRead (\r
- Name,\r
+ Name==NULL?L"":Name,\r
NULL,\r
0,\r
0,\r
case FileTypeDiskBuffer:\r
Status = HBufferImageRead (\r
NULL,\r
- Name,\r
+ Name==NULL?L"":Name,\r
Offset,\r
Size,\r
0,\r
);\r
break;\r
\r
+ default:\r
+ Status = EFI_NOT_FOUND;\r
+ break;\r
}\r
if (!EFI_ERROR (Status)) {\r
HMainEditorRefresh ();\r
//\r
// back up the status string\r
//\r
- Buffer = CatSPrint (NULL, L"%s", StatusBarGetString());\r
+ Buffer = CatSPrint (NULL, L"%s\r\n", StatusBarGetString());\r
}\r
}\r
\r
//\r
HMainEditorCleanup ();\r
\r
- if (!EFI_ERROR (Status)) {\r
+ if (EFI_ERROR (Status)) {\r
if (ShellStatus == SHELL_SUCCESS) {\r
ShellStatus = SHELL_UNSUPPORTED;\r
}\r
// print editor exit code on screen\r
//\r
if (Status == EFI_OUT_OF_RESOURCES) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_OUT_MEM), gShellDebug1HiiHandle);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_OUT_MEM), gShellDebug1HiiHandle, L"hexedit");\r
} else if (EFI_ERROR(Status)){\r
if (Buffer != NULL) {\r
if (StrCmp (Buffer, L"") != 0) {\r
//\r
// print out the status string\r
//\r
- ShellPrintEx(-1, -1, L"%s", gShellDebug1HiiHandle, Buffer);\r
+ ShellPrintEx(-1, -1, L"%s", Buffer);\r
} else {\r
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_HEXEDIT_UNKNOWN_EDITOR), gShellDebug1HiiHandle);\r
}\r