]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/C/VfrCompile/VfrSyntax.g
BaseTools:To generate string default type correctly in VfrCompiler
[mirror_edk2.git] / BaseTools / Source / C / VfrCompile / VfrSyntax.g
index fba8967fd2a2685654884e1915286cc1a9a20f47..ad839b2ab66e69f6193c781bb52c19713028f8b4 100644 (file)
@@ -1746,6 +1746,8 @@ vfrStatementDefault :
                                                         DObj->SetLineNo(D->getLine());\r
                                                         if (ArrayType) {\r
                                                           DObj->SetType (EFI_IFR_TYPE_BUFFER);\r
+                                                        } else if (gIsStringOp) {\r
+                                                          DObj->SetType (EFI_IFR_TYPE_STRING);\r
                                                         } else {\r
                                                           DObj->SetType (_GET_CURRQEST_DATATYPE());\r
                                                         }\r
@@ -2819,7 +2821,7 @@ vfrStatementString :
      UINT8 StringMinSize;\r
      UINT8 StringMaxSize;\r
   >>\r
-  L:String                                             << SObj.SetLineNo(L->getLine()); >>\r
+  L:String                                             << SObj.SetLineNo(L->getLine()); gIsStringOp = TRUE;>>\r
   vfrQuestionHeader[SObj] ","\r
   { F:FLAGS "=" vfrStringFlagsField[SObj, F->getLine()] "," }\r
   {\r
@@ -2847,7 +2849,7 @@ vfrStatementString :
                                                           SObj.SetMaxSize (StringMaxSize);\r
                                                        >>\r
   vfrStatementQuestionOptionList\r
-  E:EndString                                          << CRT_END_OP (E); >>\r
+  E:EndString                                          << CRT_END_OP (E); gIsStringOp = FALSE;>>\r
   ";"\r
   ;\r
 \r