Changes to gnats/gnats/fconfig.y

"Andrew J. Gray" <[email protected]> Thu, 24 Oct 2002 08:45:10 -0400
Newsgroups gmane.comp.bug-tracking.gnats.patches
Message-ID <[email protected]>
Index: gnats/gnats/fconfig.y
diff -c gnats/gnats/fconfig.y:1.35 gnats/gnats/fconfig.y:1.36
*** gnats/gnats/fconfig.y:1.35	Sat Dec  8 15:21:20 2001
--- gnats/gnats/fconfig.y	Thu Oct 24 08:45:09 2002
***************
*** 7,12 ****
--- 7,13 ----
    static ChangeActions currChange;
    static FieldEdit *currEdit;
    static QueryFormat *qformat;
+   static FieldList requiredFlds;
    static InputTemplate *inputTemplate;
    static MailMessageFormat mailFormat;
    IndexDesc indexEntry;
***************
*** 55,67 ****
  %type <flist> mailAddressTries MailAddressMember
  %type <mailaddr> mailAddress
  %type <mailaddrlist> mailAddressList
  %%
  
  config		: configEnts
  		| parseError
  		;
  
! configEnts	: databaseInfo fieldDecStmt optQueryList auditTrailFmt mailFormatList globalChangeEnts indexDescription inputEnt
  		;
  
  databaseInfo	: DATABASEINFOTOK '{' databaseInfoList '}'
--- 56,69 ----
  %type <flist> mailAddressTries MailAddressMember
  %type <mailaddr> mailAddress
  %type <mailaddrlist> mailAddressList
+ %type <flist> requiredFieldsList
  %%
  
  config		: configEnts
  		| parseError
  		;
  
! configEnts	: databaseInfo fieldDecStmt optQueryList auditTrailFmt mailFormatList globalChangeEnts indexDescription inputDescription
  		;
  
  databaseInfo	: DATABASEINFOTOK '{' databaseInfoList '}'
***************
*** 637,646 ****
  		}
  		;
  
! inputEnt	: INPUTTOK '{' inputFields '}' {
! 		    setInputTemplate (databaseBeingDefined, $3);
! 		}
  		| INPUTTOK '{' parseError '}'
  		;
  
  inputFields	: FIELDSTOK '{' inputFieldsList '}' {
--- 639,669 ----
  		}
  		;
  
! inputDescription: INPUTTOK '{' inputEnt '}'
  		| INPUTTOK '{' parseError '}'
+ 
+ inputEnt	: inputFields requiredFields {
+ 		    setInputTemplate (databaseBeingDefined, $1);
+ 		}
+                 ;
+ 
+ requiredFields  :/* empty */
+                 | REQUIRETOK '{' requiredFieldsList '}' {
+ 		    setRequiredInputFields (databaseBeingDefined, requiredFlds);
+                 }
+                 | REQUIRETOK '{' parseError '}' {
+                     freeFieldList (requiredFlds);
+                     requiredFlds = NULL;
+                 }
+ 		;
+ 
+ requiredFieldsList: FieldListMember {
+ 		    requiredFlds = $1;
+                 }
+                 | requiredFieldsList FieldListMember {
+                     $1->next = $2;
+                     $$ = $2;
+                 }
  		;
  
  inputFields	: FIELDSTOK '{' inputFieldsList '}' {