mirror of https://github.com/acidanthera/audk.git
ShellPkg: Fix the bug that handling Ctrl-C improperly
Current implementation resets the CTRL-C event early when printing the shell prompt, when user types "<CTRL-C>ls<ENTER>", "ls" command is terminated immediately when starts. It's not an expected behavior from users' perspective. Correct way is to reset the CTRL-C event just before running the command, which is a bit later than current point. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com> Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
This commit is contained in:
parent
df076c7bab
commit
0c83ac57f5
|
@ -620,11 +620,6 @@ UefiMain (
|
|||
ShellInfoObject.ConsoleInfo->Enabled = TRUE;
|
||||
ShellInfoObject.ConsoleInfo->RowCounter = 0;
|
||||
|
||||
//
|
||||
// Reset the CTRL-C event (yes we ignore the return values)
|
||||
//
|
||||
Status = gBS->CheckEvent (ShellInfoObject.NewEfiShellProtocol->ExecutionBreak);
|
||||
|
||||
//
|
||||
// Display Prompt
|
||||
//
|
||||
|
@ -1346,9 +1341,14 @@ DoShellPrompt (
|
|||
// Null terminate the string and parse it
|
||||
//
|
||||
if (!EFI_ERROR (Status)) {
|
||||
//
|
||||
// Reset the CTRL-C event just before running the command (yes we ignore the return values)
|
||||
//
|
||||
Status = gBS->CheckEvent (ShellInfoObject.NewEfiShellProtocol->ExecutionBreak);
|
||||
|
||||
CmdLine[BufferSize / sizeof (CHAR16)] = CHAR_NULL;
|
||||
Status = RunCommand(CmdLine);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Done with this command
|
||||
|
|
Loading…
Reference in New Issue