]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/AutoGen/StrGather.py
Sync EDKII BaseTools to BaseTools project r2006.
[mirror_edk2.git] / BaseTools / Source / Python / AutoGen / StrGather.py
index 1759da72dd96ae646cc183115f0f4b7e4a757a5b..52ab439e9b0b5129d5a827fabb93532f8017834d 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\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
@@ -168,6 +168,8 @@ def CreateHFileContent(BaseName, UniObjectClass, IsCompatibleMode, UniGenCFlag):
     Str = WriteLine(Str, Line)\r
     Line = COMMENT_DEFINE_STR + ' ' + PRINTABLE_LANGUAGE_NAME_STRING_NAME + ' ' * (ValueStartPtr - len(DEFINE_STR + PRINTABLE_LANGUAGE_NAME_STRING_NAME)) + DecToHexStr(1, 4) + COMMENT_NOT_REFERENCED\r
     Str = WriteLine(Str, Line)\r
+\r
+    #Group the referred STRING token together. \r
     for Index in range(2, len(UniObjectClass.OrderedStringList[UniObjectClass.LanguageDef[0][0]])):\r
         StringItem = UniObjectClass.OrderedStringList[UniObjectClass.LanguageDef[0][0]][Index]\r
         Name = StringItem.StringName\r
@@ -180,12 +182,22 @@ def CreateHFileContent(BaseName, UniObjectClass, IsCompatibleMode, UniGenCFlag):
                     Line = DEFINE_STR + ' ' + Name + ' ' + DecToHexStr(Token, 4)\r
                 else:\r
                     Line = DEFINE_STR + ' ' + Name + ' ' * (ValueStartPtr - len(DEFINE_STR + Name)) + DecToHexStr(Token, 4)\r
-            else:\r
+                Str = WriteLine(Str, Line)\r
+\r
+    #Group the unused STRING token together.\r
+    for Index in range(2, len(UniObjectClass.OrderedStringList[UniObjectClass.LanguageDef[0][0]])):\r
+        StringItem = UniObjectClass.OrderedStringList[UniObjectClass.LanguageDef[0][0]][Index]\r
+        Name = StringItem.StringName\r
+        Token = StringItem.Token\r
+        Referenced = StringItem.Referenced\r
+        if Name != None:\r
+            Line = ''\r
+            if Referenced == False:\r
                 if (ValueStartPtr - len(DEFINE_STR + Name)) <= 0:\r
                     Line = COMMENT_DEFINE_STR + ' ' + Name + ' ' + DecToHexStr(Token, 4) + COMMENT_NOT_REFERENCED\r
                 else:\r
                     Line = COMMENT_DEFINE_STR + ' ' + Name + ' ' * (ValueStartPtr - len(DEFINE_STR + Name)) + DecToHexStr(Token, 4) + COMMENT_NOT_REFERENCED\r
-            Str = WriteLine(Str, Line)\r
+                Str = WriteLine(Str, Line)\r
 \r
     Str = WriteLine(Str, '')\r
     if IsCompatibleMode or UniGenCFlag:\r
@@ -506,7 +518,7 @@ def SearchString(UniObjectClass, FileList, IsCompatibleMode):
 # This function is used for UEFI2.1 spec\r
 #\r
 #\r
-def GetStringFiles(UniFilList, SourceFileList, IncludeList, SkipList, BaseName, IsCompatibleMode = False, ShellMode = False, UniGenCFlag = True, UniGenBinBuffer = None):\r
+def GetStringFiles(UniFilList, SourceFileList, IncludeList, IncludePathList, SkipList, BaseName, IsCompatibleMode = False, ShellMode = False, UniGenCFlag = True, UniGenBinBuffer = None):\r
     Status = True\r
     ErrorMessage = ''\r
 \r
@@ -515,15 +527,15 @@ def GetStringFiles(UniFilList, SourceFileList, IncludeList, SkipList, BaseName,
             #\r
             # support ISO 639-2 codes in .UNI files of EDK Shell\r
             #\r
-            Uni = UniFileClassObject(UniFilList, True)\r
+            Uni = UniFileClassObject(sorted (UniFilList), True, IncludePathList)\r
         else:\r
-            Uni = UniFileClassObject(UniFilList, IsCompatibleMode)\r
+            Uni = UniFileClassObject(sorted (UniFilList), IsCompatibleMode, IncludePathList)\r
     else:\r
         EdkLogger.error("UnicodeStringGather", AUTOGEN_ERROR, 'No unicode files given')\r
 \r
     FileList = GetFileList(SourceFileList, IncludeList, SkipList)\r
 \r
-    Uni = SearchString(Uni, FileList, IsCompatibleMode)\r
+    Uni = SearchString(Uni, sorted (FileList), IsCompatibleMode)\r
 \r
     HFile = CreateHFile(BaseName, Uni, IsCompatibleMode, UniGenCFlag)\r
     CFile = None\r