From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.65; helo=mga03.intel.com; envelope-from=liming.gao@intel.com; receiver=edk2-devel@lists.01.org Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 9B2682194D3B9 for ; Tue, 30 Oct 2018 07:59:53 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 30 Oct 2018 07:59:53 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.54,444,1534834800"; d="scan'208";a="86370334" Received: from lgao4-mobl1.ccr.corp.intel.com ([10.255.28.17]) by orsmga008.jf.intel.com with ESMTP; 30 Oct 2018 07:59:52 -0700 From: Liming Gao To: edk2-devel@lists.01.org Date: Tue, 30 Oct 2018 22:59:45 +0800 Message-Id: <20181030145945.2780-1-liming.gao@intel.com> X-Mailer: git-send-email 2.16.2.windows.1 Subject: [Patch] BaseTools ConvertFceToStructurePcd: Fix the array value with empty string X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Oct 2018 14:59:53 -0000 Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Liming Gao Cc: Yonghong Zhu --- BaseTools/Scripts/ConvertFceToStructurePcd.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/BaseTools/Scripts/ConvertFceToStructurePcd.py b/BaseTools/Scripts/ConvertFceToStructurePcd.py index 6ca51c4..9240b8f 100644 --- a/BaseTools/Scripts/ConvertFceToStructurePcd.py +++ b/BaseTools/Scripts/ConvertFceToStructurePcd.py @@ -303,7 +303,10 @@ class Config(object): list1 = [t for t in list1 if t != ''] # remove '' form list first_num = int(list1[0], 16) if list1[first_num + 1] == 'STRING': # parser STRING - value = 'L%s' % list1[-1] + if list1[-1] == '""': + value = "{0x0, 0x0}" + else: + value = 'L%s' % list1[-1] elif list1[first_num + 1] == 'ORDERED_LIST': # parser ORDERED_LIST value_total = int(list1[first_num + 2]) list2 = list1[-value_total:] @@ -505,12 +508,22 @@ class mainprocess(object): inf_list = self.del_repeat(inf_list) header_list = self.plus(self.del_repeat(header_list)) title_all=list(set(title_list)) - info_list = self.del_repeat(info_list) + info_list = self.remove_bracket(self.del_repeat(info_list)) for i in range(len(info_list)-1,-1,-1): if len(info_list[i]) == 0: info_list.remove(info_list[i]) return keys,title_all,info_list,header_list,inf_list + def remove_bracket(self,List): + for i in List: + for j in i: + tmp = j.split("|") + if (('L"' in j) and ("[" in j)) or (tmp[1].strip() == '{0x0, 0x0}'): + tmp[0] = tmp[0][:tmp[0].index('[')] + List[List.index(i)][i.index(j)] = "|".join(tmp) + else: + List[List.index(i)][i.index(j)] = j + return List def write_all(self): title_flag=1 -- 2.10.0.windows.1