In the expression for unicode string and general string compare, it
should check whether it startswith "L'" or 'L"', but not "L".

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Yonghong Zhu <[email protected]>
---
 BaseTools/Source/Python/Common/Expression.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/BaseTools/Source/Python/Common/Expression.py 
b/BaseTools/Source/Python/Common/Expression.py
index e398f7a..05459b9 100644
--- a/BaseTools/Source/Python/Common/Expression.py
+++ b/BaseTools/Source/Python/Common/Expression.py
@@ -295,12 +295,12 @@ class ValueExpression(BaseExpression):
                     # bitwise and logical operation between number and boolean 
is allowed
                     pass
                 else:
                     raise BadExpression(ERR_EXPR_TYPE)
             if isinstance(Oprand1, type('')) and isinstance(Oprand2, type('')):
-                if ((Oprand1.startswith('L"') or Oprand1.startswith('L')) and 
(not Oprand2.startswith('L"')) and (not Oprand2.startswith("L'"))) or \
-                        (((not Oprand1.startswith('L"')) and (not 
Oprand1.startswith("L'"))) and (Oprand2.startswith('L"') or 
Oprand2.startswith('L'))):
+                if ((Oprand1.startswith('L"') or Oprand1.startswith("L'")) and 
(not Oprand2.startswith('L"')) and (not Oprand2.startswith("L'"))) or \
+                        (((not Oprand1.startswith('L"')) and (not 
Oprand1.startswith("L'"))) and (Oprand2.startswith('L"') or 
Oprand2.startswith("L'"))):
                     raise BadExpression(ERR_STRING_CMP % (Oprand1, Operator, 
Oprand2))
             if 'in' in Operator and isinstance(Oprand2, type('')):
                 Oprand2 = Oprand2.split()
             EvalStr = 'Oprand1 ' + Operator + ' Oprand2'
 
-- 
2.6.1.windows.1

_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to