ShellPkg: print only valid characters for file overwrite prompt

When copy command prompts to overwrite an existing file, pressing
backspace continuously removes everything including the shell prompt.
So print only valid characters for file overwrite prompt.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Tapan Shah <tapandshah@hpe.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
diff --git a/ShellPkg/Library/UefiShellLib/UefiShellLib.c b/ShellPkg/Library/UefiShellLib/UefiShellLib.c
index 2389207..536db3c 100644
--- a/ShellPkg/Library/UefiShellLib/UefiShellLib.c
+++ b/ShellPkg/Library/UefiShellLib/UefiShellLib.c
@@ -3403,7 +3403,8 @@
             break;

         }

       }

-      break;    case ShellPromptResponseTypeYesNoAllCancel:

+      break;

+      case ShellPromptResponseTypeYesNoAllCancel:

        if (Prompt != NULL) {

         ShellPrintEx(-1, -1, L"%s", Prompt);

       }

@@ -3421,7 +3422,11 @@
         if (EFI_ERROR(Status)) {

           break;

         }

-        ShellPrintEx(-1, -1, L"%c", Key.UnicodeChar);

+

+        if (Key.UnicodeChar <= 127 && Key.UnicodeChar >= 32) {

+          ShellPrintEx (-1, -1, L"%c", Key.UnicodeChar);

+        }

+

         switch (Key.UnicodeChar) {

           case L'Y':

           case L'y':