Reviewed-by: Liming Gao <[email protected]> >-----Original Message----- >From: Zhu, Yonghong >Sent: Tuesday, June 20, 2017 4:05 PM >To: [email protected] >Cc: Feng, YunhuaX <[email protected]>; Gao, Liming ><[email protected]> >Subject: [Patch] BaseTools: Fix the bug that use '|' or '||' in DSC file's Pcd >value > >From: Yunhua Feng <[email protected]> > >Fix the bug to support use '|' or '||' in DSC file's Pcd value. > >Cc: Liming Gao <[email protected]> >Cc: Yonghong Zhu <[email protected]> >Contributed-under: TianoCore Contribution Agreement 1.0 >Signed-off-by: Yunhua Feng <[email protected]> >--- > BaseTools/Source/Python/Common/String.py | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > >diff --git a/BaseTools/Source/Python/Common/String.py >b/BaseTools/Source/Python/Common/String.py >index 5c8d1e0..81c053d 100644 >--- a/BaseTools/Source/Python/Common/String.py >+++ b/BaseTools/Source/Python/Common/String.py >@@ -44,16 +44,17 @@ gHumanReadableVerPatt = re.compile(r'([1-9][0- >9]*|0)\.[0-9]{1,2}$') > def GetSplitValueList(String, SplitTag=DataType.TAB_VALUE_SPLIT, MaxSplit= >-1): > ValueList = [] > Last = 0 > Escaped = False > InString = False >+ InParenthesis = 0 > for Index in range(0, len(String)): > Char = String[Index] > > if not Escaped: > # Found a splitter not in a string, split it >- if not InString and Char == SplitTag: >+ if not InString and InParenthesis == 0 and Char == SplitTag: > ValueList.append(String[Last:Index].strip()) > Last = Index + 1 > if MaxSplit > 0 and len(ValueList) >= MaxSplit: > break > >@@ -62,10 +63,14 @@ def GetSplitValueList(String, >SplitTag=DataType.TAB_VALUE_SPLIT, MaxSplit= -1): > elif Char == '"': > if not InString: > InString = True > else: > InString = False >+ elif Char == '(': >+ InParenthesis = InParenthesis + 1 >+ elif Char == ')': >+ InParenthesis = InParenthesis - 1 > else: > Escaped = False > > if Last < len(String): > ValueList.append(String[Last:].strip()) >-- >2.6.1.windows.1
_______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

