if Line.startswith(u'#language') and len(Line.split()) == 2:\r
MultiLineFeedExits = True\r
\r
+ #\r
+ # Check the situation that there only has one '"' for the language entry\r
+ #\r
+ if Line.startswith(u'#string') and Line.find(u'#language') > 0 and Line.count(u'"') == 1:\r
+ EdkLogger.Error("Unicode File Parser", ToolError.FORMAT_INVALID,\r
+ ExtraData='''The line %s misses '"' at the end of it in file %s'''\r
+ % (LineCount, File.Path))\r
+\r
+ #\r
+ # Check the situation that there has more than 2 '"' for the language entry\r
+ #\r
+ if Line.startswith(u'#string') and Line.find(u'#language') > 0 and Line.replace(u'\\"', '').count(u'"') > 2:\r
+ EdkLogger.Error("Unicode File Parser", ToolError.FORMAT_INVALID,\r
+ ExtraData='''The line %s has more than 2 '"' for language entry in file %s'''\r
+ % (LineCount, File.Path))\r
+\r
#\r
# Between two String entry, can not contain line feed\r
#\r
else:\r
EdkLogger.Error("Unicode File Parser", ToolError.FORMAT_INVALID, ExtraData=File.Path)\r
elif Line.startswith(u'"'):\r
+ #\r
+ # Check the situation that there has more than 2 '"' for the language entry\r
+ #\r
+ if Line.replace(u'\\"', '').count(u'"') > 2:\r
+ EdkLogger.Error("Unicode File Parser", ToolError.FORMAT_INVALID,\r
+ ExtraData='''The line %s has more than 2 '"' for language entry in file %s'''\r
+ % (LineCount, File.Path))\r
if u'#string' in Line or u'#language' in Line:\r
EdkLogger.Error("Unicode File Parser", ToolError.FORMAT_INVALID, ExtraData=File.Path)\r
NewLines.append(Line)\r