From d3d97b378fe4d0bfbcbdb296d06bcf1d09165480 Mon Sep 17 00:00:00 2001 From: zhijufan Date: Wed, 17 Oct 2018 13:57:01 +0800 Subject: BaseTools: Add special handle for '\' use in Pcd Value V2: Follow PEP8 to not multiples import on one line Case: gEfiOzmosisPkgTokenSpaceGuid.PcdBootLogFolderPath|L"\\Logs\\"|VOID*|12 Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=1287 Cc: Liming Gao Cc: Yonghong Zhu Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Zhiju.Fan Reviewed-by: Jaben Carsey --- BaseTools/Source/Python/Common/Misc.py | 8 ++++++-- 1 file changed, 6 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 b32b7cdc5f..3b8efb2e71 100644 --- a/BaseTools/Source/Python/Common/Misc.py +++ b/BaseTools/Source/Python/Common/Misc.py @@ -24,6 +24,7 @@ import re import pickle import array import shutil +from random import sample from struct import pack from UserDict import IterableUserDict from UserList import UserList @@ -1236,7 +1237,8 @@ def IsFieldValueAnArray (Value): return False def AnalyzePcdExpression(Setting): - Setting = Setting.strip() + RanStr = ''.join(sample(string.ascii_letters + string.digits, 8)) + Setting = Setting.replace('\\\\', RanStr).strip() # There might be escaped quote in a string: \", \\\" , \', \\\' Data = Setting # There might be '|' in string and in ( ... | ... ), replace it with '-' @@ -1269,7 +1271,9 @@ def AnalyzePcdExpression(Setting): break FieldList.append(Setting[StartPos:Pos].strip()) StartPos = Pos + 1 - + for i, ch in enumerate(FieldList): + if RanStr in ch: + FieldList[i] = ch.replace(RanStr,'\\\\') return FieldList def ParseDevPathValue (Value): -- cgit v1.2.3