From 063aa89bef89e035fc0ed285ace8f2fff106d37a Mon Sep 17 00:00:00 2001 From: Jaben Carsey Date: Tue, 10 May 2016 13:35:14 -0700 Subject: [PATCH] report line number for command errors in a script. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jaben Carsey Reviewed-by: Qiu Shumin --- ShellPkg/Application/Shell/Shell.c | 6 +++++- ShellPkg/Application/Shell/Shell.uni | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ShellPkg/Application/Shell/Shell.c b/ShellPkg/Application/Shell/Shell.c index 12daff9191..b06c1efb42 100644 --- a/ShellPkg/Application/Shell/Shell.c +++ b/ShellPkg/Application/Shell/Shell.c @@ -2518,7 +2518,11 @@ SetupAndRunCommandOrFile( // Now print errors // if (EFI_ERROR(Status)) { - ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_SHELL_ERROR), ShellInfoObject.HiiHandle, (VOID*)(Status)); + if (ShellCommandGetCurrentScriptFile() == NULL || ShellCommandGetCurrentScriptFile()->CurrentCommand == NULL) { + ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_SHELL_ERROR), ShellInfoObject.HiiHandle, (VOID*)(Status)); + } else { + ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_SHELL_ERROR_SCRIPT), ShellInfoObject.HiiHandle, (VOID*)(Status), ShellCommandGetCurrentScriptFile()->CurrentCommand->Line); + } } // diff --git a/ShellPkg/Application/Shell/Shell.uni b/ShellPkg/Application/Shell/Shell.uni index 3947d01b53..ef69f891d2 100644 --- a/ShellPkg/Application/Shell/Shell.uni +++ b/ShellPkg/Application/Shell/Shell.uni @@ -40,6 +40,7 @@ #string STR_SHELL_CRLF #language en-US "\r\n" #string STR_SHELL_ERROR #language en-US "%NCommand Error Status: %r\r\n" +#string STR_SHELL_ERROR_SCRIPT #language en-US "%NScript Error Status: %r (line number %d)\r\n" #string STR_SHELL_INVALID_MAPPING #language en-US "%N'%B%s%N' is not a valid mapping.\r\n" #string STR_SHELL_INVALID_SPLIT #language en-US "Invalid use of pipe (%B|%N).\r\n" -- 2.39.2