\r
(C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>\r
(C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>\r
- Copyright (c) 2009 - 2016, 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
- http://opensource.org/licenses/bsd-license.php\r
-\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+ Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>\r
+ SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
\r
return (FALSE);\r
}\r
\r
-/**\r
- Internal worker debug helper function to print out maps as they are added.\r
-\r
- @param[in] Mapping string mapping that has been added\r
- @param[in] DevicePath pointer to device path that has been mapped.\r
-\r
- @retval EFI_SUCCESS the operation was successful.\r
- @return other an error ocurred\r
-\r
- @sa LocateHandle\r
- @sa OpenProtocol\r
-**/\r
-EFI_STATUS\r
-InternalShellProtocolDebugPrintMessage (\r
- IN CONST CHAR16 *Mapping,\r
- IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath\r
- )\r
-{\r
- EFI_STATUS Status;\r
- CHAR16 *Temp;\r
-\r
- Status = EFI_SUCCESS;\r
- DEBUG_CODE_BEGIN();\r
-\r
- if (Mapping != NULL) {\r
- DEBUG((EFI_D_INFO, "Added new map item:\"%S\"\r\n", Mapping));\r
- }\r
- Temp = ConvertDevicePathToText(DevicePath, TRUE, TRUE);\r
- DEBUG((EFI_D_INFO, "DevicePath: %S\r\n", Temp));\r
- FreePool(Temp);\r
-\r
- DEBUG_CODE_END();\r
- return (Status);\r
-}\r
\r
/**\r
This function creates a mapping for a device path.\r
\r
- If both DeviecPath and Mapping are NULL, this will reset the mapping to default values.\r
+ If both DevicePath and Mapping are NULL, this will reset the mapping to default values.\r
\r
@param DevicePath Points to the device path. If this is NULL and Mapping points to a valid mapping,\r
then the mapping will be deleted.\r
} // for loop\r
\r
//\r
- // We didnt find one to delete\r
+ // We didn't find one to delete\r
//\r
return (EFI_NOT_FOUND);\r
}\r
device path. If there is an exact match, the mapping is returned and *DevicePath\r
points to the end-of-device-path node.\r
\r
- If there are multiple map names they will be semi-colon seperated in the\r
+ If there are multiple map names they will be semi-colon separated in the\r
NULL-terminated string.\r
\r
@param DevicePath On entry, points to a device path pointer. On\r
// UEFI Shell spec section 3.7)\r
if ((PathSize != 0) &&\r
(PathForReturn != NULL) &&\r
- (PathForReturn[PathSize - 1] != L'\\') &&\r
+ (PathForReturn[PathSize / sizeof (CHAR16) - 1] != L'\\') &&\r
(AlignedNode->PathName[0] != L'\\')) {\r
PathForReturn = StrnCatGrow (&PathForReturn, &PathSize, L"\\", 1);\r
}\r
//\r
// build the full device path\r
//\r
- if (*(Path+StrLen(MapName)+1) == CHAR_NULL) {\r
+ if ((*(Path+StrLen(MapName)) != CHAR_NULL) &&\r
+ (*(Path+StrLen(MapName)+1) == CHAR_NULL)) {\r
DevicePathForReturn = FileDevicePath(Handle, L"\\");\r
} else {\r
DevicePathForReturn = FileDevicePath(Handle, Path+StrLen(MapName));\r
@retval EFI_NOT_FOUND EFI_SIMPLE_FILE_SYSTEM could not be found or the root directory\r
could not be opened.\r
@retval EFI_VOLUME_CORRUPTED The data structures in the volume were corrupted.\r
- @retval EFI_DEVICE_ERROR The device had an error\r
+ @retval EFI_DEVICE_ERROR The device had an error.\r
+ @retval Others Error status returned from EFI_SIMPLE_FILE_SYSTEM_PROTOCOL->OpenVolume().\r
**/\r
EFI_STATUS\r
EFIAPI\r
// Open the root volume now...\r
//\r
Status = SimpleFileSystem->OpenVolume(SimpleFileSystem, &RealFileHandle);\r
+ if (EFI_ERROR(Status)) {\r
+ return Status;\r
+ }\r
+\r
*FileHandle = ConvertEfiFileProtocolToShellHandle(RealFileHandle, EfiShellGetMapFromDevicePath(&DevPath));\r
- return (Status);\r
+ return (EFI_SUCCESS);\r
}\r
\r
/**\r
@param Attributes the File Attributes to use when creating a new file.\r
\r
@retval EFI_SUCCESS the file is open and FileHandle is valid\r
- @retval EFI_UNSUPPORTED the device path cotained non-path elements\r
- @retval other an error ocurred.\r
+ @retval EFI_UNSUPPORTED the device path contained non-path elements\r
+ @retval other an error occurred.\r
**/\r
EFI_STATUS\r
InternalOpenFileDevicePath(\r
Handle1 = ConvertShellHandleToEfiFileProtocol(ShellHandle);\r
if (Handle1 != NULL) {\r
//\r
- // chop off the begining part before the file system part...\r
+ // chop off the beginning part before the file system part...\r
//\r
///@todo BlockIo?\r
Status = gBS->LocateDevicePath(&gEfiSimpleFileSystemProtocolGuid,\r
already exists and is non-volatile then EFI_INVALID_PARAMETER is returned.\r
\r
@param FileName Pointer to NULL-terminated file path\r
- @param FileAttribs The new file's attrbiutes. the different attributes are\r
+ @param FileAttribs The new file's attributes. the different attributes are\r
described in EFI_FILE_PROTOCOL.Open().\r
@param FileHandle On return, points to the created file handle or directory's handle\r
\r
@retval EFI_SUCCESS The file was opened. FileHandle points to the new file's handle.\r
@retval EFI_INVALID_PARAMETER One of the parameters has an invalid value.\r
@retval EFI_UNSUPPORTED could not open the file path\r
- @retval EFI_NOT_FOUND the specified file could not be found on the devide, or could not\r
+ @retval EFI_NOT_FOUND the specified file could not be found on the device, or could not\r
file the file system on the device.\r
@retval EFI_NO_MEDIA the device has no medium.\r
@retval EFI_MEDIA_CHANGED The device has a different medium in it or the medium is no\r
// We are opening a regular file.\r
//\r
DevicePath = EfiShellGetDevicePathFromFilePath(FileName);\r
-// DEBUG_CODE(InternalShellProtocolDebugPrintMessage (NULL, DevicePath););\r
+\r
if (DevicePath == NULL) {\r
return (EFI_NOT_FOUND);\r
}\r
variables with the format 'x=y', where x is the\r
environment variable name and y is the value. If this\r
is NULL, then the current shell environment is used.\r
- \r
+\r
@param[out] StartImageStatus Returned status from gBS->StartImage.\r
\r
@retval EFI_SUCCESS The command executed successfully. The status code\r
ZeroMem(&ShellParamsProtocol, sizeof(EFI_SHELL_PARAMETERS_PROTOCOL));\r
\r
NewHandle = NULL;\r
- \r
+\r
NewCmdLine = AllocateCopyPool (StrSize (CommandLine), CommandLine);\r
if (NewCmdLine == NULL) {\r
return EFI_OUT_OF_RESOURCES;\r
//\r
if (LoadedImage->ImageCodeType != EfiLoaderCode){\r
ShellPrintHiiEx(\r
- -1, \r
- -1, \r
+ -1,\r
+ -1,\r
NULL,\r
STRING_TOKEN (STR_SHELL_IMAGE_NOT_APP),\r
ShellInfoObject.HiiHandle\r
ShellParamsProtocol.StdOut = ShellInfoObject.NewShellParametersProtocol->StdOut;\r
ShellParamsProtocol.StdErr = ShellInfoObject.NewShellParametersProtocol->StdErr;\r
Status = UpdateArgcArgv(&ShellParamsProtocol, NewCmdLine, Efi_Application, NULL, NULL);\r
- ASSERT_EFI_ERROR(Status);\r
+ if (EFI_ERROR (Status)) {\r
+ goto UnloadImage;\r
+ }\r
+\r
//\r
// Replace Argv[0] with the full path of the binary we're executing:\r
// If the command line was "foo", the binary might be called "foo.efi".\r
variables with the format 'x=y', where x is the\r
environment variable name and y is the value. If this\r
is NULL, then the current shell environment is used.\r
- \r
+\r
@param[out] StartImageStatus Returned status from the command line.\r
\r
@retval EFI_SUCCESS The command executed successfully. The status code\r
STATIC\r
BOOLEAN\r
NestingEnabled(\r
+ VOID\r
)\r
{\r
EFI_STATUS Status;\r
Temp = NULL;\r
Size = 0;\r
ASSERT((Temp == NULL && Size == 0) || (Temp != NULL));\r
- StrnCatGrow(&Temp, &Size, L"Shell.efi -_exit ", 0);\r
+ StrnCatGrow(&Temp, &Size, L"Shell.efi -exit ", 0);\r
StrnCatGrow(&Temp, &Size, CommandLine, 0);\r
\r
Status = InternalShellExecuteDevicePath(\r
@param[in] Node The node to copy from.\r
@param[in] Save TRUE to set Node->Handle to NULL, FALSE otherwise.\r
\r
- @retval NULL a memory allocation error ocurred\r
+ @retval NULL a memory allocation error occurred\r
@return != NULL a pointer to the new node\r
**/\r
EFI_SHELL_FILE_INFO*\r
@param[in] Handle Handle member initial value.\r
@param[in] Info Info struct to copy.\r
\r
- @retval NULL An error ocurred.\r
+ @retval NULL An error occurred.\r
@return a pointer to the newly allocated structure.\r
**/\r
EFI_SHELL_FILE_INFO *\r
//\r
ShellFileListItem = CreateAndPopulateShellFileInfo(\r
BasePath,\r
- EFI_SUCCESS, // success since we didnt fail to open it...\r
+ EFI_SUCCESS, // success since we didn't fail to open it...\r
FileInfo->FileName,\r
NULL, // no handle since not open\r
FileInfo);\r
if (Guid == NULL || GuidName == NULL) {\r
return (EFI_INVALID_PARAMETER);\r
}\r
- \r
+\r
Status = GetGuidFromStringName(GuidName, NULL, &NewGuid);\r
\r
if (!EFI_ERROR(Status)) {\r
return (EFI_SUCCESS);\r
}\r
\r
-/**\r
- Updates a file name to be preceeded by the mapped drive name\r
-\r
- @param[in] BasePath the Mapped drive name to prepend\r
- @param[in, out] Path pointer to pointer to the file name to update.\r
-\r
- @retval EFI_SUCCESS\r
- @retval EFI_OUT_OF_RESOURCES\r
-**/\r
-EFI_STATUS\r
-UpdateFileName(\r
- IN CONST CHAR16 *BasePath,\r
- IN OUT CHAR16 **Path\r
- )\r
-{\r
- CHAR16 *Path2;\r
- UINTN Path2Size;\r
-\r
- Path2Size = 0;\r
- Path2 = NULL;\r
-\r
- ASSERT(Path != NULL);\r
- ASSERT(*Path != NULL);\r
- ASSERT(BasePath != NULL);\r
-\r
- //\r
- // convert a local path to an absolute path\r
- //\r
- if (StrStr(*Path, L":") == NULL) {\r
- ASSERT((Path2 == NULL && Path2Size == 0) || (Path2 != NULL));\r
- StrnCatGrow(&Path2, &Path2Size, BasePath, 0);\r
- if (Path2 == NULL) {\r
- return (EFI_OUT_OF_RESOURCES);\r
- }\r
- ASSERT((Path2 == NULL && Path2Size == 0) || (Path2 != NULL));\r
- StrnCatGrow(&Path2, &Path2Size, (*Path)[0] == L'\\'?(*Path) + 1 :*Path, 0);\r
- if (Path2 == NULL) {\r
- return (EFI_OUT_OF_RESOURCES);\r
- }\r
- }\r
-\r
- FreePool(*Path);\r
- (*Path) = Path2;\r
\r
- return (EFI_SUCCESS);\r
-}\r
\r
/**\r
If FileHandle is a directory then the function reads from FileHandle and reads in\r
; Node = (ENV_VAR_LIST*)GetNextNode(&gShellEnvVarList.Link, &Node->Link)\r
){\r
ASSERT(Node->Key != NULL);\r
- StrCpyS( CurrentWriteLocation, \r
- (Size)/sizeof(CHAR16) - (CurrentWriteLocation - ((CHAR16*)Buffer)), \r
+ StrCpyS( CurrentWriteLocation,\r
+ (Size)/sizeof(CHAR16) - (CurrentWriteLocation - ((CHAR16*)Buffer)),\r
Node->Key\r
);\r
CurrentWriteLocation += StrLen(CurrentWriteLocation) + 1;\r
Status = SHELL_GET_ENVIRONMENT_VARIABLE_AND_ATTRIBUTES(Name, Attributes, &Size, Buffer);\r
}\r
//\r
- // we didnt get it (might not exist)\r
+ // we didn't get it (might not exist)\r
// free the memory if we allocated any and return NULL\r
//\r
if (EFI_ERROR(Status)) {\r
);\r
if (!EFI_ERROR (Status)) {\r
Status = Volatile\r
- ? SHELL_SET_ENVIRONMENT_VARIABLE_V(Name, StrSize(Value), Value)\r
- : SHELL_SET_ENVIRONMENT_VARIABLE_NV(Name, StrSize(Value), Value);\r
+ ? SHELL_SET_ENVIRONMENT_VARIABLE_V (Name, StrSize (Value) - sizeof (CHAR16), Value)\r
+ : SHELL_SET_ENVIRONMENT_VARIABLE_NV (Name, StrSize (Value) - sizeof (CHAR16), Value);\r
if (EFI_ERROR (Status)) {\r
ShellRemvoeEnvVarFromList(Name);\r
}\r
//\r
// Make sure we dont 'set' a predefined read only variable\r
//\r
- if (gUnicodeCollation->StriColl(\r
- gUnicodeCollation,\r
- (CHAR16*)Name,\r
- L"cwd") == 0\r
- ||gUnicodeCollation->StriColl(\r
- gUnicodeCollation,\r
- (CHAR16*)Name,\r
- L"Lasterror") == 0\r
- ||gUnicodeCollation->StriColl(\r
- gUnicodeCollation,\r
- (CHAR16*)Name,\r
- L"profiles") == 0\r
- ||gUnicodeCollation->StriColl(\r
- gUnicodeCollation,\r
- (CHAR16*)Name,\r
- L"uefishellsupport") == 0\r
- ||gUnicodeCollation->StriColl(\r
- gUnicodeCollation,\r
- (CHAR16*)Name,\r
- L"uefishellversion") == 0\r
- ||gUnicodeCollation->StriColl(\r
- gUnicodeCollation,\r
- (CHAR16*)Name,\r
- L"uefiversion") == 0\r
- ||(!ShellInfoObject.ShellInitSettings.BitUnion.Bits.NoNest &&\r
- gUnicodeCollation->StriColl(\r
- gUnicodeCollation,\r
- (CHAR16*)Name,\r
- (CHAR16*)mNoNestingEnvVarName) == 0)\r
- ){\r
+ if ((StrCmp (Name, L"cwd") == 0) ||\r
+ (StrCmp (Name, L"lasterror") == 0) ||\r
+ (StrCmp (Name, L"profiles") == 0) ||\r
+ (StrCmp (Name, L"uefishellsupport") == 0) ||\r
+ (StrCmp (Name, L"uefishellversion") == 0) ||\r
+ (StrCmp (Name, L"uefiversion") == 0) ||\r
+ (!ShellInfoObject.ShellInitSettings.BitUnion.Bits.NoNest &&\r
+ StrCmp (Name, mNoNestingEnvVarName) == 0)\r
+ ) {\r
return (EFI_INVALID_PARAMETER);\r
}\r
return (InternalEfiShellSetEnv(Name, Value, Volatile));\r
directory is changed.\r
@param Dir Points to the NULL-terminated directory on the device specified by FileSystem.\r
\r
- @retval EFI_SUCCESS The operation was sucessful\r
+ @retval EFI_SUCCESS The operation was successful\r
@retval EFI_NOT_FOUND The file system could not be found\r
**/\r
EFI_STATUS\r
// make that the current file system mapping\r
//\r
if (MapListItem != NULL) {\r
- gShellCurDir = MapListItem;\r
+ gShellCurMapping = MapListItem;\r
}\r
} else {\r
- MapListItem = gShellCurDir;\r
+ MapListItem = gShellCurMapping;\r
}\r
\r
if (MapListItem == NULL) {\r
FreePool (DirectoryName);\r
return (EFI_INVALID_PARAMETER);\r
}\r
-// gShellCurDir = MapListItem;\r
+// gShellCurMapping = MapListItem;\r
if (DirectoryName != NULL) {\r
//\r
// change current dir on that file system\r
//\r
// if updated the current directory then update the environment variable\r
//\r
- if (MapListItem == gShellCurDir) {\r
+ if (MapListItem == gShellCurMapping) {\r
Size = 0;\r
ASSERT((TempString == NULL && Size == 0) || (TempString != NULL));\r
StrnCatGrow(&TempString, &Size, MapListItem->MapName, 0);\r
return EFI_OUT_OF_RESOURCES;\r
}\r
\r
- StrnCpyS( FixCommand, \r
- (StrSize(Command) - 4 * sizeof (CHAR16))/sizeof(CHAR16), \r
- Command, \r
+ StrnCpyS( FixCommand,\r
+ (StrSize(Command) - 4 * sizeof (CHAR16))/sizeof(CHAR16),\r
+ Command,\r
StrLen(Command)-4\r
);\r
Status = ProcessManFile(FixCommand, FixCommand, Sections, NULL, HelpText);\r
}\r
\r
/**\r
- function to return a semi-colon delimeted list of all alias' in the current shell\r
+ function to return a semi-colon delimited list of all alias' in the current shell\r
\r
up to caller to free the memory.\r
\r
@retval NULL No alias' were found\r
- @retval NULL An error ocurred getting alias'\r
+ @retval NULL An error occurred getting alias'\r
@return !NULL a list of all alias'\r
**/\r
CHAR16 *\r
InternalEfiShellGetListAlias(\r
+ VOID\r
)\r
{\r
- \r
+\r
EFI_STATUS Status;\r
EFI_GUID Guid;\r
CHAR16 *VariableName;\r
RetVal = NULL;\r
break;\r
}\r
- \r
+\r
NameSize = NameBufferSize;\r
Status = gRT->GetNextVariableName(&NameSize, VariableName, &Guid);\r
}\r
- \r
+\r
if (EFI_ERROR (Status)) {\r
SHELL_FREE_NON_NULL(RetVal);\r
RetVal = NULL;\r
break;\r
}\r
- \r
+\r
if (CompareGuid(&Guid, &gShellAliasGuid)){\r
ASSERT((RetVal == NULL && RetSize == 0) || (RetVal != NULL));\r
RetVal = StrnCatGrow(&RetVal, &RetSize, VariableName, 0);\r
/**\r
Convert a null-terminated unicode string, in-place, to all lowercase.\r
Then return it.\r
- \r
+\r
@param Str The null-terminated string to be converted to all lowercase.\r
- \r
- @return The null-terminated string converted into all lowercase. \r
+\r
+ @return The null-terminated string converted into all lowercase.\r
**/\r
CHAR16 *\r
ToLower (\r
@param[out] Volatile upon return of a single command if TRUE indicates\r
this is stored in a volatile fashion. FALSE otherwise.\r
\r
- @return If Alias is not NULL, it will return a pointer to\r
+ @return If Alias is not NULL, it will return a pointer to\r
the NULL-terminated command for that alias.\r
If Alias is NULL, ReturnedData points to a ';'\r
delimited list of alias (e.g.\r
ReturnedData = "dir;del;copy;mfp") that is NULL-terminated.\r
- @retval NULL an error ocurred\r
+ @retval NULL an error occurred\r
@retval NULL Alias was not a valid Alias\r
**/\r
CONST CHAR16 *\r
{\r
EFI_STATUS Status;\r
CHAR16 *AliasLower;\r
+ BOOLEAN DeleteAlias;\r
\r
- // Convert to lowercase to make aliases case-insensitive\r
- if (Alias != NULL) {\r
- AliasLower = AllocateCopyPool (StrSize (Alias), Alias);\r
- if (AliasLower == NULL) {\r
- return EFI_OUT_OF_RESOURCES;\r
- }\r
- ToLower (AliasLower);\r
- } else {\r
- AliasLower = NULL;\r
- }\r
-\r
- //\r
- // We must be trying to remove one if Alias is NULL\r
- //\r
+ DeleteAlias = FALSE;\r
if (Alias == NULL) {\r
//\r
+ // We must be trying to remove one if Alias is NULL\r
// remove an alias (but passed in COMMAND parameter)\r
//\r
- Status = (gRT->SetVariable((CHAR16*)Command, &gShellAliasGuid, 0, 0, NULL));\r
- } else {\r
- //\r
- // Add and replace are the same\r
- //\r
-\r
- // We dont check the error return on purpose since the variable may not exist.\r
- gRT->SetVariable((CHAR16*)Command, &gShellAliasGuid, 0, 0, NULL);\r
+ Alias = Command;\r
+ DeleteAlias = TRUE;\r
+ }\r
+ ASSERT (Alias != NULL);\r
\r
- Status = (gRT->SetVariable((CHAR16*)Alias, &gShellAliasGuid, EFI_VARIABLE_BOOTSERVICE_ACCESS|(Volatile?0:EFI_VARIABLE_NON_VOLATILE), StrSize(Command), (VOID*)Command));\r
+ //\r
+ // Convert to lowercase to make aliases case-insensitive\r
+ //\r
+ AliasLower = AllocateCopyPool (StrSize (Alias), Alias);\r
+ if (AliasLower == NULL) {\r
+ return EFI_OUT_OF_RESOURCES;\r
}\r
+ ToLower (AliasLower);\r
\r
- if (Alias != NULL) {\r
- FreePool (AliasLower);\r
+ if (DeleteAlias) {\r
+ Status = gRT->SetVariable (AliasLower, &gShellAliasGuid, 0, 0, NULL);\r
+ } else {\r
+ Status = gRT->SetVariable (\r
+ AliasLower, &gShellAliasGuid,\r
+ EFI_VARIABLE_BOOTSERVICE_ACCESS | (Volatile ? 0 : EFI_VARIABLE_NON_VOLATILE),\r
+ StrSize (Command), (VOID *) Command\r
+ );\r
}\r
+\r
+ FreePool (AliasLower);\r
+\r
return Status;\r
}\r
\r
(VOID*)(&mShellProtocol));\r
if (!EFI_ERROR(Status)) {\r
//\r
- // we reinstalled sucessfully. log this so we can reverse it later.\r
+ // we reinstalled successfully. log this so we can reverse it later.\r
//\r
\r
//\r
{\r
EFI_STATUS Status;\r
EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *SimpleEx;\r
- \r
+\r
CleanUpShellProtocol (NewShell);\r
\r
Status = gBS->CloseEvent(NewShell->ExecutionBreak);\r
if ( ((KeyData->Key.UnicodeChar == L'c') &&\r
(KeyData->KeyState.KeyShiftState == (EFI_SHIFT_STATE_VALID|EFI_LEFT_CONTROL_PRESSED) || KeyData->KeyState.KeyShiftState == (EFI_SHIFT_STATE_VALID|EFI_RIGHT_CONTROL_PRESSED))) ||\r
(KeyData->Key.UnicodeChar == 3)\r
- ){ \r
+ ){\r
if (ShellInfoObject.NewEfiShellProtocol->ExecutionBreak == NULL) {\r
return (EFI_UNSUPPORTED);\r
}\r
return (gBS->SignalEvent(ShellInfoObject.NewEfiShellProtocol->ExecutionBreak));\r
} else if ((KeyData->Key.UnicodeChar == L's') &&\r
(KeyData->KeyState.KeyShiftState == (EFI_SHIFT_STATE_VALID|EFI_LEFT_CONTROL_PRESSED) || KeyData->KeyState.KeyShiftState == (EFI_SHIFT_STATE_VALID|EFI_RIGHT_CONTROL_PRESSED))\r
- ){ \r
+ ){\r
ShellInfoObject.HaltOutput = TRUE;\r
}\r
return (EFI_SUCCESS);\r
}\r
\r
/**\r
- Function to start monitoring for CTRL-C using SimpleTextInputEx. This \r
+ Function to start monitoring for CTRL-C using SimpleTextInputEx. This\r
feature's enabled state was not known when the shell initially launched.\r
\r
@retval EFI_SUCCESS The feature is enabled.\r
- @retval EFI_OUT_OF_RESOURCES There is not enough mnemory available.\r
+ @retval EFI_OUT_OF_RESOURCES There is not enough memory available.\r
**/\r
EFI_STATUS\r
InernalEfiShellStartMonitor(\r
EFI_OPEN_PROTOCOL_GET_PROTOCOL);\r
if (EFI_ERROR(Status)) {\r
ShellPrintHiiEx(\r
- -1, \r
- -1, \r
+ -1,\r
+ -1,\r
NULL,\r
STRING_TOKEN (STR_SHELL_NO_IN_EX),\r
ShellInfoObject.HiiHandle);\r
&KeyData,\r
NotificationFunction,\r
&ShellInfoObject.CtrlCNotifyHandle1);\r
- \r
+\r
KeyData.KeyState.KeyShiftState = EFI_SHIFT_STATE_VALID|EFI_RIGHT_CONTROL_PRESSED;\r
if (!EFI_ERROR(Status)) {\r
Status = SimpleEx->RegisterKeyNotify(\r