mirror of https://github.com/acidanthera/audk.git
Revert "ShellPkg: Add Shell[Get|Set]RawCmdLine to ShellCommandLib"
This reverts commit 0fcf8d4df8
.
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 <ruiyu.ni@intel.com>
Cc: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Tapan Shah <tapandshah@hpe.com>
This commit is contained in:
parent
8e16ac3d74
commit
a747bc1eec
|
@ -670,29 +670,6 @@ ShellFileHandleEof(
|
||||||
IN SHELL_FILE_HANDLE Handle
|
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 {
|
typedef struct {
|
||||||
LIST_ENTRY Link;
|
LIST_ENTRY Link;
|
||||||
void *Buffer;
|
void *Buffer;
|
||||||
|
|
|
@ -30,7 +30,6 @@ STATIC UINTN mProfileListSize;
|
||||||
STATIC UINTN mFsMaxCount = 0;
|
STATIC UINTN mFsMaxCount = 0;
|
||||||
STATIC UINTN mBlkMaxCount = 0;
|
STATIC UINTN mBlkMaxCount = 0;
|
||||||
STATIC BUFFER_LIST mFileHandleList;
|
STATIC BUFFER_LIST mFileHandleList;
|
||||||
STATIC CHAR16 *mRawCmdLine = NULL;
|
|
||||||
|
|
||||||
STATIC CONST CHAR8 Hex[] = {
|
STATIC CONST CHAR8 Hex[] = {
|
||||||
'0',
|
'0',
|
||||||
|
@ -1869,50 +1868,6 @@ ShellFileHandleEof(
|
||||||
return (RetVal);
|
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.
|
Frees any BUFFER_LIST defined type.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue