Revision: 18336
          http://sourceforge.net/p/edk2/code/18336
Author:   dandanbi
Date:     2015-08-27 08:19:40 +0000 (Thu, 27 Aug 2015)
Log Message:
-----------
BaseTools:To generate string default type correctly in VfrCompiler

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Dandan Bi <[email protected]>
Reviewed-by: Liming Gao <[email protected]>

Modified Paths:
--------------
    trunk/edk2/BaseTools/Source/C/VfrCompile/VfrFormPkg.h
    trunk/edk2/BaseTools/Source/C/VfrCompile/VfrSyntax.g

Modified: trunk/edk2/BaseTools/Source/C/VfrCompile/VfrFormPkg.h
===================================================================
--- trunk/edk2/BaseTools/Source/C/VfrCompile/VfrFormPkg.h       2015-08-27 
05:27:51 UTC (rev 18335)
+++ trunk/edk2/BaseTools/Source/C/VfrCompile/VfrFormPkg.h       2015-08-27 
08:19:40 UTC (rev 18336)
@@ -604,6 +604,7 @@
 static CIfrQuestionHeader *gCurrentQuestion  = NULL;
 static CIfrMinMaxStepData *gCurrentMinMaxData = NULL;
 static BOOLEAN            gIsOrderedList = FALSE;
+static BOOLEAN            gIsStringOp = FALSE;
 
 /*
  * The definition of all of the UEFI IFR Objects

Modified: trunk/edk2/BaseTools/Source/C/VfrCompile/VfrSyntax.g
===================================================================
--- trunk/edk2/BaseTools/Source/C/VfrCompile/VfrSyntax.g        2015-08-27 
05:27:51 UTC (rev 18335)
+++ trunk/edk2/BaseTools/Source/C/VfrCompile/VfrSyntax.g        2015-08-27 
08:19:40 UTC (rev 18336)
@@ -1746,6 +1746,8 @@
                                                         
DObj->SetLineNo(D->getLine());
                                                         if (ArrayType) {
                                                           DObj->SetType 
(EFI_IFR_TYPE_BUFFER);
+                                                        } else if 
(gIsStringOp) {
+                                                          DObj->SetType 
(EFI_IFR_TYPE_STRING);
                                                         } else {
                                                           DObj->SetType 
(_GET_CURRQEST_DATATYPE());
                                                         }
@@ -2819,7 +2821,7 @@
      UINT8 StringMinSize;
      UINT8 StringMaxSize;
   >>
-  L:String                                             << 
SObj.SetLineNo(L->getLine()); >>
+  L:String                                             << 
SObj.SetLineNo(L->getLine()); gIsStringOp = TRUE;>>
   vfrQuestionHeader[SObj] ","
   { F:FLAGS "=" vfrStringFlagsField[SObj, F->getLine()] "," }
   {
@@ -2847,7 +2849,7 @@
                                                           SObj.SetMaxSize 
(StringMaxSize);
                                                        >>
   vfrStatementQuestionOptionList
-  E:EndString                                          << CRT_END_OP (E); >>
+  E:EndString                                          << CRT_END_OP (E); 
gIsStringOp = FALSE;>>
   ";"
   ;
 


------------------------------------------------------------------------------
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to