- CmdLineArg = ShellCommandLineGetValue (ParamPackage, L"-n");\r
- if (CmdLineArg == NULL) {\r
- Number2Display = DEFAULT_DISPLAYCOUNT;\r
- } else {\r
- Number2Display = StrDecimalToUintn(CmdLineArg);\r
- if (Number2Display == 0) {\r
- Number2Display = MAXIMUM_DISPLAYCOUNT;\r
+ if (ShellCommandLineGetFlag (ParamPackage, L"-n")) {\r
+ CmdLineArg = ShellCommandLineGetValue (ParamPackage, L"-n");\r
+ if (CmdLineArg == NULL) {\r
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_TOO_FEW), mDpHiiHandle);\r
+ return SHELL_INVALID_PARAMETER;\r
+ } else {\r
+ if (!(RawMode || AllMode)) {\r
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_NO_RAW_ALL), mDpHiiHandle);\r
+ return SHELL_INVALID_PARAMETER;\r
+ }\r
+ Status = ShellConvertStringToUint64(CmdLineArg, &Intermediate, FALSE, TRUE);\r
+ if (EFI_ERROR (Status)) {\r
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_INVALID_NUM_ARG), mDpHiiHandle, L"-n");\r
+ return SHELL_INVALID_PARAMETER;\r
+ } else {\r
+ Number2Display = (UINTN)Intermediate;\r
+ if (Number2Display == 0 || Number2Display > MAXIMUM_DISPLAYCOUNT) {\r
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_DP_INVALID_RANGE), mDpHiiHandle, L"-n", 0, MAXIMUM_DISPLAYCOUNT);\r
+ return SHELL_INVALID_PARAMETER;\r
+ }\r
+ }\r