0,\r
gST->ConOut->Mode->CursorRow,\r
NULL,\r
- STRING_TOKEN (STR_VER_OUTPUT_MAIN),\r
+ STRING_TOKEN (STR_VER_OUTPUT_MAIN_SHELL),\r
ShellInfoObject.HiiHandle,\r
SupportLevel[PcdGet8(PcdShellSupportLevel)],\r
gEfiShellProtocol->MajorVersion,\r
- gEfiShellProtocol->MinorVersion,\r
+ gEfiShellProtocol->MinorVersion\r
+ );\r
+\r
+ ShellPrintHiiEx (\r
+ -1,\r
+ -1,\r
+ NULL,\r
+ STRING_TOKEN (STR_VER_OUTPUT_MAIN_SUPPLIER),\r
+ ShellInfoObject.HiiHandle,\r
+ (CHAR16 *) PcdGetPtr (PcdShellSupplier)\r
+ );\r
+\r
+ ShellPrintHiiEx (\r
+ -1,\r
+ -1,\r
+ NULL,\r
+ STRING_TOKEN (STR_VER_OUTPUT_MAIN_UEFI),\r
+ ShellInfoObject.HiiHandle,\r
(gST->Hdr.Revision&0xffff0000)>>16,\r
(gST->Hdr.Revision&0x0000ffff),\r
gST->FirmwareVendor,\r
//\r
// print out our warning and see if they press a key\r
//\r
- for ( Status = EFI_UNSUPPORTED, Delay = ShellInfoObject.ShellInitSettings.Delay * 10\r
+ for ( Status = EFI_UNSUPPORTED, Delay = ShellInfoObject.ShellInitSettings.Delay\r
; Delay != 0 && EFI_ERROR(Status)\r
; Delay--\r
){\r
- ShellPrintHiiEx(0, gST->ConOut->Mode->CursorRow, NULL, STRING_TOKEN (STR_SHELL_STARTUP_QUESTION), ShellInfoObject.HiiHandle, Delay/10);\r
- gBS->Stall (100000);\r
+ ShellPrintHiiEx(0, gST->ConOut->Mode->CursorRow, NULL, STRING_TOKEN (STR_SHELL_STARTUP_QUESTION), ShellInfoObject.HiiHandle, Delay);\r
+ gBS->Stall (1000000);\r
if (!ShellInfoObject.ShellInitSettings.BitUnion.Bits.NoConsoleIn) {\r
Status = gST->ConIn->ReadKeyStroke (gST->ConIn, &Key);\r
}\r
if (CleanOriginal == NULL) {\r
return (EFI_OUT_OF_RESOURCES);\r
}\r
- while (CleanOriginal[StrLen(CleanOriginal)-1] == L' ') {\r
- CleanOriginal[StrLen(CleanOriginal)-1] = CHAR_NULL;\r
- }\r
+\r
+ //\r
+ // Remove any spaces at the beginning of the string.\r
+ //\r
while (CleanOriginal[0] == L' ') {\r
CopyMem(CleanOriginal, CleanOriginal+1, StrSize(CleanOriginal) - sizeof(CleanOriginal[0]));\r
}\r
\r
+ //\r
+ // Handle case that passed in command line is just 1 or more " " characters.\r
+ //\r
+ if (StrLen (CleanOriginal) == 0) {\r
+ if (CleanOriginal != NULL) {\r
+ FreePool(CleanOriginal);\r
+ CleanOriginal = NULL;\r
+ }\r
+ return (EFI_SUCCESS);\r
+ }\r
+\r
+ //\r
+ // Remove any spaces at the end of the string.\r
+ //\r
+ while (CleanOriginal[StrLen(CleanOriginal)-1] == L' ') {\r
+ CleanOriginal[StrLen(CleanOriginal)-1] = CHAR_NULL;\r
+ }\r
+\r
CommandName = NULL;\r
if (StrStr(CleanOriginal, L" ") == NULL){\r
StrnCatGrow(&CommandName, NULL, CleanOriginal, 0);\r
Status = RunCommand(CommandLine3+1);\r
\r
//\r
- // Now restore the pre-'@' echo state.\r
+ // If command was "@echo -off" or "@echo -on" then don't restore echo state\r
//\r
- ShellCommandSetEchoState(PreCommandEchoState);\r
+ if (StrCmp (L"@echo -off", CommandLine3) != 0 &&\r
+ StrCmp (L"@echo -on", CommandLine3) != 0) {\r
+ //\r
+ // Now restore the pre-'@' echo state.\r
+ //\r
+ ShellCommandSetEchoState(PreCommandEchoState);\r
+ }\r
} else {\r
if (ShellCommandGetEchoState()) {\r
CurDir = ShellInfoObject.NewEfiShellProtocol->GetEnv(L"cwd");\r
## @file\r
# This is the shell application\r
#\r
+# Copyright (c) 2013, Hewlett-Packard Development Company, L.P.\r
# Copyright (c) 2009 - 2013, Intel Corporation. All rights reserved.<BR>\r
#\r
# This program and the accompanying materials\r
gEfiShellPkgTokenSpaceGuid.PcdShellMapNameLength # ALWAYS_CONSUMED\r
gEfiShellPkgTokenSpaceGuid.PcdShellPrintBufferSize # ALWAYS_CONSUMED\r
gEfiShellPkgTokenSpaceGuid.PcdShellForceConsole # ALWAYS_CONSUMED\r
+ gEfiShellPkgTokenSpaceGuid.PcdShellSupplier # ALWAYS_CONSUMED\r
\r
# Provides shell level 3 functions\r
# Note that the interactive versions of the time, date, and timezone functions are handled in the level 2 library.\r
#\r
+# Copyright (c) 2013, Hewlett-Packard Development Company, L.P.\r
# Copyright (c) 2009-2011, Intel Corporation. All rights reserved. <BR>\r
#\r
# This program and the accompanying materials\r
[Pcd.common]\r
gEfiShellPkgTokenSpaceGuid.PcdShellSupportLevel\r
gEfiShellPkgTokenSpaceGuid.PcdShellFileOperationSize\r
+ gEfiShellPkgTokenSpaceGuid.PcdShellSupplier\r
\r
/** @file\r
Main file for Ver shell level 3 function.\r
\r
+ Copyright (c) 2013, Hewlett-Packard Development Company, L.P.\r
Copyright (c) 2009 - 2010, 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
-1,\r
-1,\r
NULL,\r
- STRING_TOKEN (STR_VER_EXTRA_STRING),\r
- gShellLevel3HiiHandle\r
+ STRING_TOKEN (STR_VER_OUTPUT_SUPPLIER),\r
+ gShellLevel3HiiHandle,\r
+ (CHAR16 *) PcdGetPtr (PcdShellSupplier)\r
);\r
\r
\r
#\r
# This Package provides all definitions for EFI and UEFI Shell\r
#\r
+# Copyright (c) 2013, Hewlett-Packard Development Company, L.P.\r
# Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>\r
#\r
# This program and the accompanying materials are licensed and made available under\r
\r
[Guids]\r
gEfiShellEnvironment2ExtGuid = {0xd2c18636, 0x40e5, 0x4eb5, {0xa3, 0x1b, 0x36, 0x69, 0x5f, 0xd4, 0x2c, 0x87}}\r
- gEfiShellPkgTokenSpaceGuid = {0x171e9188, 0x31d3, 0x40f5, {0xb1, 0x0c, 0x53, 0x9b, 0x2d, 0xb9, 0x40, 0xcd}}\r
+ gEfiShellPkgTokenSpaceGuid = {0x171e9188, 0x31d3, 0x40f5, {0xb1, 0x0c, 0x53, 0x9b, 0x2d, 0xb9, 0x40, 0xcd}}\r
gShellVariableGuid = {0x158def5a, 0xf656, 0x419c, {0xb0, 0x27, 0x7a, 0x31, 0x92, 0xc0, 0x79, 0xd2}}\r
gShellMapGuid = {0x51271e13, 0x7de3, 0x43af, {0x8b, 0xc2, 0x71, 0xad, 0x3b, 0x82, 0x43, 0x25}}\r
gShellAliasGuid = {0x0053d9d6, 0x2659, 0x4599, {0xa2, 0x6b, 0xef, 0x45, 0x36, 0xe6, 0x31, 0xa9}}\r
\r
## this flag determins the default number of screens kept for history log.\r
# the spec defines 3 as the minimum\r
- gEfiShellPkgTokenSpaceGuid.PcdShellScreenLogCount|3|UINT8|0x00000008
\ No newline at end of file
+ gEfiShellPkgTokenSpaceGuid.PcdShellScreenLogCount|3|UINT8|0x00000008\r
+\r
+ ## Unicode string of the shell supplier\r
+ gEfiShellPkgTokenSpaceGuid.PcdShellSupplier|L"EDK II"|VOID*|0x00000010\r