for TokenSpaceGuid, PcdCName, Setting, Dummy1, Dummy2, Dummy3, Dummy4,Dummy5 in RecordList:\r
TokenList = GetSplitValueList(Setting)\r
DefaultValue = TokenList[0]\r
- if len(TokenList) > 1:\r
- MaxDatumSize = TokenList[1]\r
+ # the format is PcdName| Value | VOID* | MaxDatumSize\r
+ if len(TokenList) > 2:\r
+ MaxDatumSize = TokenList[2]\r
else:\r
MaxDatumSize = ''\r
TypeString = self._PCD_TYPE_STRING_[Type]\r
NewValue = self.GetFieldValueFromComm(pcdvalue, TokenSpaceGuidCName, TokenCName, FieldName)\r
GlobalData.BuildOptionPcd[i] = (TokenSpaceGuidCName, TokenCName, FieldName,NewValue,("build command options",1))\r
else:\r
+ # Replace \' to ', \\\' to \'\r
+ pcdvalue = pcdvalue.replace("\\\\\\'", '\\\\\\"').replace('\\\'', '\'').replace('\\\\\\"', "\\'")\r
for key in self.DecPcds:\r
PcdItem = self.DecPcds[key]\r
if HasTokenSpace:\r
except BadExpression, Value:\r
EdkLogger.error('Parser', FORMAT_INVALID, 'PCD [%s.%s] Value "%s", %s' %\r
(TokenSpaceGuidCName, TokenCName, pcdvalue, Value))\r
- if PcdDatumType == "VOID*":\r
+ if PcdDatumType not in [TAB_UINT8, TAB_UINT16, TAB_UINT32, TAB_UINT64, 'BOOLEAN']:\r
pcdvalue = 'H' + pcdvalue\r
elif pcdvalue.startswith("L'"):\r
try:\r
except BadExpression, Value:\r
EdkLogger.error('Parser', FORMAT_INVALID, 'PCD [%s.%s] Value "%s", %s' %\r
(TokenSpaceGuidCName, TokenCName, pcdvalue, Value))\r
- if pcdvalue.startswith('{'):\r
+ if PcdDatumType not in [TAB_UINT8, TAB_UINT16, TAB_UINT32, TAB_UINT64, 'BOOLEAN']:\r
pcdvalue = 'H' + pcdvalue\r
elif pcdvalue.startswith("'"):\r
try:\r
except BadExpression, Value:\r
EdkLogger.error('Parser', FORMAT_INVALID, 'PCD [%s.%s] Value "%s", %s' %\r
(TokenSpaceGuidCName, TokenCName, pcdvalue, Value))\r
- if pcdvalue.startswith('{'):\r
+ if PcdDatumType not in [TAB_UINT8, TAB_UINT16, TAB_UINT32, TAB_UINT64, 'BOOLEAN']:\r
pcdvalue = 'H' + pcdvalue\r
elif pcdvalue.startswith('L'):\r
pcdvalue = 'L"' + pcdvalue[1:] + '"'\r
try:\r
pcdvalue = ValueExpressionEx(pcdvalue, PcdDatumType, self._GuidDict)(True)\r
except BadExpression, Value:\r
- EdkLogger.error('Parser', FORMAT_INVALID, 'PCD [%s.%s] Value "%s", %s' %\r
- (TokenSpaceGuidCName, TokenCName, pcdvalue, Value))\r
+ try:\r
+ pcdvalue = '"' + pcdvalue + '"'\r
+ pcdvalue = ValueExpressionEx(pcdvalue, PcdDatumType, self._GuidDict)(True)\r
+ except BadExpression, Value:\r
+ EdkLogger.error('Parser', FORMAT_INVALID, 'PCD [%s.%s] Value "%s", %s' %\r
+ (TokenSpaceGuidCName, TokenCName, pcdvalue, Value))\r
NewValue = BuildOptionPcdValueFormat(TokenSpaceGuidCName, TokenCName, PcdDatumType, pcdvalue)\r
FoundFlag = True\r
else:\r
except BadExpression, Value:\r
EdkLogger.error('Parser', FORMAT_INVALID, 'PCD [%s.%s] Value "%s", %s' %\r
(TokenSpaceGuidCName, TokenCName, pcdvalue, Value))\r
- if PcdDatumType == "VOID*":\r
+ if PcdDatumType not in [TAB_UINT8, TAB_UINT16, TAB_UINT32, TAB_UINT64,'BOOLEAN']:\r
pcdvalue = 'H' + pcdvalue\r
elif pcdvalue.startswith("L'"):\r
try:\r
except BadExpression, Value:\r
EdkLogger.error('Parser', FORMAT_INVALID, 'PCD [%s.%s] Value "%s", %s' %\r
(TokenSpaceGuidCName, TokenCName, pcdvalue, Value))\r
- if pcdvalue.startswith('{'):\r
+ if PcdDatumType not in [TAB_UINT8, TAB_UINT16, TAB_UINT32, TAB_UINT64, 'BOOLEAN']:\r
pcdvalue = 'H' + pcdvalue\r
elif pcdvalue.startswith("'"):\r
try:\r
except BadExpression, Value:\r
EdkLogger.error('Parser', FORMAT_INVALID, 'PCD [%s.%s] Value "%s", %s' %\r
(TokenSpaceGuidCName, TokenCName, pcdvalue, Value))\r
- if pcdvalue.startswith('{'):\r
+ if PcdDatumType not in [TAB_UINT8, TAB_UINT16, TAB_UINT32, TAB_UINT64, 'BOOLEAN']:\r
pcdvalue = 'H' + pcdvalue\r
elif pcdvalue.startswith('L'):\r
pcdvalue = 'L"' + pcdvalue[1:] + '"'\r
try:\r
pcdvalue = ValueExpressionEx(pcdvalue, PcdDatumType, self._GuidDict)(True)\r
except BadExpression, Value:\r
- EdkLogger.error('Parser', FORMAT_INVALID,\r
- 'PCD [%s.%s] Value "%s", %s' %\r
- (TokenSpaceGuidCName, TokenCName, pcdvalue, Value))\r
+ try:\r
+ pcdvalue = '"' + pcdvalue + '"'\r
+ pcdvalue = ValueExpressionEx(pcdvalue, PcdDatumType, self._GuidDict)(True)\r
+ except BadExpression, Value:\r
+ EdkLogger.error('Parser', FORMAT_INVALID, 'PCD [%s.%s] Value "%s", %s' %\r
+ (TokenSpaceGuidCName, TokenCName, pcdvalue, Value))\r
NewValue = BuildOptionPcdValueFormat(TokenSpaceGuidCName, TokenCName, PcdDatumType, pcdvalue)\r
FoundFlag = True\r
else:\r
message_itmes = Message.split(":")\r
Index = 0\r
if "PcdValueInit.c" not in Message:\r
+ if not MessageGroup:\r
+ MessageGroup.append(Message)\r
break\r
else:\r
for item in message_itmes:\r