From a747bc1eecaff7c34afbc7a4acd81a8330e42d0a Mon Sep 17 00:00:00 2001 From: Ruiyu Ni Date: Tue, 23 Aug 2016 10:40:42 +0800 Subject: [PATCH] Revert "ShellPkg: Add Shell[Get|Set]RawCmdLine to ShellCommandLib" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 0fcf8d4df85d861b6e721bd1d8abb449f05e15ed. The above commit causes several regression of "echo" command: 1. Double quotes are not being stripped from the final text. UEFI Shell 2.2 section 3.4.5 chops out the quotes. 2. Output redirection is not working as expected. Text is being redirected, but the ‘> …’ text should not be. 3. Inconsistent special character handling. For example, comments with # seem to be parsed out correctly, but handing of ^ is incorrect. In summary, ‘echo “You are ^#1” > t.txt’ results in the below content in t.txt: “You are ^#1” > t.txt Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ruiyu Ni Cc: Jaben Carsey Reviewed-by: Tapan Shah --- ShellPkg/Include/Library/ShellCommandLib.h | 23 ---------- .../UefiShellCommandLib/UefiShellCommandLib.c | 45 ------------------- 2 files changed, 68 deletions(-) diff --git a/ShellPkg/Include/Library/ShellCommandLib.h b/ShellPkg/Include/Library/ShellCommandLib.h index 44eccc447c..5c5e241f15 100644 --- a/ShellPkg/Include/Library/ShellCommandLib.h +++ b/ShellPkg/Include/Library/ShellCommandLib.h @@ -670,29 +670,6 @@ ShellFileHandleEof( IN SHELL_FILE_HANDLE Handle ); -/** - Function to get the original CmdLine string for current command. - - @return A pointer to the buffer of the original command string. - It's the caller's responsibility to free the buffer. -**/ -CHAR16* -EFIAPI -ShellGetRawCmdLine ( - VOID - ); - -/** - Function to store the orgignal command string into mOriginalCmdLine. - - @param[in] CmdLine the command line string to store. -**/ -VOID -EFIAPI -ShellSetRawCmdLine ( - IN CONST CHAR16 *CmdLine - ); - typedef struct { LIST_ENTRY Link; void *Buffer; diff --git a/ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.c b/ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.c index 7fe908cb57..ac77111ef9 100644 --- a/ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.c +++ b/ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.c @@ -30,7 +30,6 @@ STATIC UINTN mProfileListSize; STATIC UINTN mFsMaxCount = 0; STATIC UINTN mBlkMaxCount = 0; STATIC BUFFER_LIST mFileHandleList; -STATIC CHAR16 *mRawCmdLine = NULL; STATIC CONST CHAR8 Hex[] = { '0', @@ -1869,50 +1868,6 @@ ShellFileHandleEof( return (RetVal); } -/** - Function to get the original CmdLine string for current command. - - @return A pointer to the buffer of the original command string. - It's the caller's responsibility to free the buffer. -**/ -CHAR16* -EFIAPI -ShellGetRawCmdLine ( - VOID - ) -{ - if (mRawCmdLine == NULL) { - return NULL; - } else { - return AllocateCopyPool(StrSize(mRawCmdLine), mRawCmdLine); - } -} - -/** - Function to store the raw command string. - - The alias and variables have been replaced and spaces are trimmed. - - @param[in] CmdLine the command line string to store. -**/ -VOID -EFIAPI -ShellSetRawCmdLine ( - IN CONST CHAR16 *CmdLine - ) -{ - SHELL_FREE_NON_NULL(mRawCmdLine); - - if (CmdLine != NULL) { - // - // The spaces in the beginning and end are trimmed. - // - ASSERT (*CmdLine != L' '); - ASSERT (CmdLine[StrLen (CmdLine) - 1] != L' '); - mRawCmdLine = AllocateCopyPool (StrSize(CmdLine), CmdLine); - } -} - /** Frees any BUFFER_LIST defined type.