// install our console logger. This will keep a log of the output for back-browsing\r
//\r
Status = ConsoleLoggerInstall(ShellInfoObject.LogScreenCount, &ShellInfoObject.ConsoleInfo);\r
+ if(EFI_ERROR (Status)) {\r
+ ExitStatus = (SHELL_STATUS) (Status & (~MAX_BIT));\r
+ } else {\r
+ ExitStatus = SHELL_SUCCESS;\r
+ }\r
+ \r
if (!EFI_ERROR(Status)) {\r
//\r
// Enable the cursor to be visible\r
Status = EFI_SUCCESS;\r
CommandWithPath = NULL;\r
DevPath = NULL;\r
+ CalleeExitStatus = SHELL_INVALID_PARAMETER;\r
\r
switch (Type) {\r
case Internal_Command:\r
\r
SHELL_FREE_NON_NULL(DevPath);\r
\r
+ if(EFI_ERROR (Status)) {\r
+ CalleeExitStatus = (SHELL_STATUS) (Status & (~MAX_BIT));\r
+ } else {\r
+ CalleeExitStatus = SHELL_SUCCESS;\r
+ }\r
+\r
//\r
// Update last error status.\r
//\r
// Status is an EFI_STATUS. Clear top bit to convert to SHELL_STATUS\r
- SetLastError((SHELL_STATUS) (Status & (~MAX_BIT)));\r
+ SetLastError(CalleeExitStatus);\r
break;\r
default:\r
//\r
CONST CHAR16 *CurDir;\r
UINTN LineCount;\r
CHAR16 LeString[50];\r
- SHELL_STATUS CalleeExitStatus = SHELL_SUCCESS;\r
+ SHELL_STATUS CalleeExitStatus;\r
\r
ASSERT(!ShellCommandGetScriptExit());\r
+ \r
+ CalleeExitStatus = SHELL_SUCCESS;\r
\r
PreScriptEchoState = ShellCommandGetEchoState();\r
\r