]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/AutoGen/UniClassObject.py
Sync BaseTools Branch (version r2149) to EDKII main trunk.
[mirror_edk2.git] / BaseTools / Source / Python / AutoGen / UniClassObject.py
index 1eb65c1e9a4bd6bf9db105c2ad9411ab19cac233..1825c81d91f5e4148a7945e4a140f4b3d12dbc3d 100644 (file)
@@ -121,7 +121,7 @@ def GetLanguageCode(LangName, IsCompatibleMode, File):
         if length == 3 and LangName.isalpha():\r
             TempLangName = LangConvTable.get(LangName.lower())\r
             if TempLangName != None:\r
-               return TempLangName\r
+                return TempLangName\r
             return LangName\r
         else:\r
             EdkLogger.error("Unicode File Parser", FORMAT_INVALID, "Invalid ISO 639-2 language code : %s" % LangName, File)\r
@@ -298,13 +298,36 @@ class UniFileClassObject(object):
         #\r
         # Use unique identifier\r
         #\r
+        FindFlag = -1\r
+        LineCount = 0\r
         for Line in FileIn:\r
+            Line = FileIn[LineCount]\r
+            LineCount += 1\r
             Line = Line.strip()\r
             #\r
             # Ignore comment line and empty line\r
             #\r
             if Line == u'' or Line.startswith(u'//'):\r
                 continue\r
+            \r
+            #\r
+            # Process comment embeded in string define lines\r
+            #\r
+            FindFlag = Line.find(u'//')\r
+            if FindFlag != -1:\r
+                Line = Line.replace(Line[FindFlag:], u' ')\r
+                if FileIn[LineCount].strip().startswith('#language'):\r
+                    Line = Line + FileIn[LineCount]\r
+                    FileIn[LineCount-1] = Line\r
+                    FileIn[LineCount] = os.linesep\r
+                    LineCount -= 1\r
+                    for Index in xrange (LineCount + 1, len (FileIn) - 1):\r
+                        if (Index == len(FileIn) -1):\r
+                            FileIn[Index] = os.linesep\r
+                        else:\r
+                            FileIn[Index] = FileIn[Index + 1]\r
+                    continue\r
+                              \r
             Line = Line.replace(u'/langdef', u'#langdef')\r
             Line = Line.replace(u'/string', u'#string')\r
             Line = Line.replace(u'/language', u'#language')\r
@@ -566,6 +589,6 @@ class UniFileClassObject(object):
 if __name__ == '__main__':\r
     EdkLogger.Initialize()\r
     EdkLogger.SetLevel(EdkLogger.DEBUG_0)\r
-    a = UniFileClassObject(['C:\\Edk\\Strings.uni', 'C:\\Edk\\Strings2.uni'])\r
+    a = UniFileClassObject([PathClass("C:\\Edk\\Strings.uni"), PathClass("C:\\Edk\\Strings2.uni")])\r
     a.ReToken()\r
     a.ShowMe()\r