]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/AutoGen/UniClassObject.py
Sync EDKII BaseTools to BaseTools project r1971
[mirror_edk2.git] / BaseTools / Source / Python / AutoGen / UniClassObject.py
index 717c10f266771d5bb55a349bdb2c390bbf5d18ed..8f929a33cba93214b65df073f4fdc0a79cc45299 100644 (file)
@@ -1,5 +1,5 @@
-# Copyright (c) 2007 - 2010, Intel Corporation\r
-# All rights reserved. This program and the accompanying materials\r
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+# This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
 # http://opensource.org/licenses/bsd-license.php\r
@@ -15,6 +15,7 @@
 # Import Modules\r
 #\r
 import os, codecs, re\r
+import distutils.util\r
 import Common.EdkLogger as EdkLogger\r
 from Common.BuildToolError import *\r
 from Common.String import GetLineNo\r
@@ -125,6 +126,8 @@ def GetLanguageCode(LangName, IsCompatibleMode, File):
         else:\r
             EdkLogger.error("Unicode File Parser", FORMAT_INVALID, "Invalid ISO 639-2 language code : %s" % LangName, File)\r
 \r
+    if (LangName[0] == 'X' or LangName[0] == 'x') and LangName[1] == '-':\r
+        return LangName\r
     if length == 2:\r
         if LangName.isalpha():\r
             return LangName\r
@@ -193,20 +196,20 @@ class UniFileClassObject(object):
     # Get Language definition\r
     #\r
     def GetLangDef(self, File, Line):\r
-        Lang = Line.split(u"//")[0].split()\r
+        Lang = distutils.util.split_quoted((Line.split(u"//")[0]))\r
         if len(Lang) != 3:\r
             try:\r
-                FileIn = codecs.open(File, mode='rb', encoding='utf-16').read()\r
+                FileIn = codecs.open(File.Path, mode='rb', encoding='utf-16').read()\r
             except UnicodeError, X:\r
                 EdkLogger.error("build", FILE_READ_FAILURE, "File read failure: %s" % str(X), ExtraData=File);\r
             except:\r
                 EdkLogger.error("build", FILE_OPEN_FAILURE, ExtraData=File);\r
             LineNo = GetLineNo(FileIn, Line, False)\r
             EdkLogger.error("Unicode File Parser", PARSER_ERROR, "Wrong language definition",\r
-                            ExtraData="""%s\n\t*Correct format is like '#langdef eng "English"'""" % Line, File = File, Line = LineNo)\r
+                            ExtraData="""%s\n\t*Correct format is like '#langdef en-US "English"'""" % Line, File = File, Line = LineNo)\r
         else:\r
             LangName = GetLanguageCode(Lang[1], self.IsCompatibleMode, self.File)\r
-            LangPrintName = Lang[2][1:-1]\r
+            LangPrintName = Lang[2]\r
 \r
         IsLangInDef = False\r
         for Item in self.LanguageDef:\r