From 1590d12315b0dd1f348554149257b09ad23f3e67 Mon Sep 17 00:00:00 2001 From: Zhijux Fan Date: Sun, 16 Dec 2018 15:19:42 +0800 Subject: BaseTools:Similar to octal data rectification In python3, if Value is octal data, the int(Value, 0) report an error Cc: Bob Feng Cc: Liming Gao Cc: Yonghong Zhu Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Zhiju.Fan Tested-by: Laszlo Ersek Tested-by: Ard Biesheuvel Reviewed-by: Liming Gao Reviewed-by: Bob Feng --- BaseTools/Source/Python/Common/Misc.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'BaseTools/Source/Python/Common/Misc.py') diff --git a/BaseTools/Source/Python/Common/Misc.py b/BaseTools/Source/Python/Common/Misc.py index 1b8a4bef2e..d23a075f43 100644 --- a/BaseTools/Source/Python/Common/Misc.py +++ b/BaseTools/Source/Python/Common/Misc.py @@ -1310,9 +1310,11 @@ def CheckPcdDatum(Type, Value): return False, "Invalid value [%s] of type [%s]; must be one of TRUE, True, true, 0x1, 0x01, 1"\ ", FALSE, False, false, 0x0, 0x00, 0" % (Value, Type) elif Type in [TAB_UINT8, TAB_UINT16, TAB_UINT32, TAB_UINT64]: - if Value and int(Value, 0) < 0: - return False, "PCD can't be set to negative value[%s] for datum type [%s]" % (Value, Type) + if Value.startswith('0') and not Value.lower().startswith('0x') and len(Value) > 2: + Value = Value.lstrip('0') try: + if Value and int(Value, 0) < 0: + return False, "PCD can't be set to negative value[%s] for datum type [%s]" % (Value, Type) Value = int(Value, 0) if Value > MAX_VAL_TYPE[Type]: return False, "Too large PCD value[%s] for datum type [%s]" % (Value, Type) -- cgit v1.2.3