From b8f3601daae5c8b50ca6f7da74bb150f2eef9453 Mon Sep 17 00:00:00 2001 From: Pedroa Liu Date: Mon, 16 May 2016 20:48:41 +0800 Subject: ShellPkg: Fix the incorrect behavior when pressing 'shift' key. If 'ReadKeyStroke' function return EFI_NOT_READY then skip it. If the return value is EFI_DEVICE_ERROR clean the currentString buffer. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Pedroa Liu Reviewed-by: Qiu Shumin --- ShellPkg/Application/Shell/FileHandleWrappers.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'ShellPkg/Application/Shell/FileHandleWrappers.c') diff --git a/ShellPkg/Application/Shell/FileHandleWrappers.c b/ShellPkg/Application/Shell/FileHandleWrappers.c index 0e5efe3025..f64915d9ed 100644 --- a/ShellPkg/Application/Shell/FileHandleWrappers.c +++ b/ShellPkg/Application/Shell/FileHandleWrappers.c @@ -422,6 +422,12 @@ FileInterfaceStdInRead( gBS->WaitForEvent (1, &gST->ConIn->WaitForKey, &EventIndex); Status = gST->ConIn->ReadKeyStroke (gST->ConIn, &Key); if (EFI_ERROR (Status)) { + + if (Status == EFI_NOT_READY) + continue; + + ZeroMem (CurrentString, MaxStr * sizeof(CHAR16)); + StringLen = 0; break; } -- cgit v1.2.3