dlugolecki.net.pl
Dziennik
Polecane
Software
projects
/
gedcom-parse.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Test for update of timestamp.
[gedcom-parse.git]
/
gedcom
/
gedcom.y
diff --git
a/gedcom/gedcom.y
b/gedcom/gedcom.y
index ab6aa6a0ea54573335b1d5fbd39f8f860c4e1b42..702d1256dcba2c8f921ce3074776e0bc1f2c91d0 100644
(file)
--- a/
gedcom/gedcom.y
+++ b/
gedcom/gedcom.y
@@
-149,6
+149,7
@@
#include "age.h"
#include "xref.h"
#include "compat.h"
#include "age.h"
#include "xref.h"
#include "compat.h"
+#include "buffer.h"
int count_level = 0;
int fail = 0;
int count_level = 0;
int fail = 0;
@@
-156,10
+157,14
@@
int gedcom_high_level_debug = 0;
Gedcom_err_mech error_mechanism = IMMED_FAIL;
Gedcom_val_struct val1;
Gedcom_val_struct val2;
Gedcom_err_mech error_mechanism = IMMED_FAIL;
Gedcom_val_struct val1;
Gedcom_val_struct val2;
-
-char line_item_buf[MAXGEDCLINELEN * UTF_FACTOR + 1];
-char *line_item_buf_ptr;
+void cleanup_line_item_buffer();
+struct safe_buffer line_item_buffer = { NULL, 0, NULL, 0,
+ cleanup_line_item_buffer };
+
+void cleanup_concat_buffer();
+struct safe_buffer concat_buffer = { NULL, 0, NULL, 0, cleanup_concat_buffer };
+
/* These are defined at the bottom of the file */
void push_countarray(int level);
void set_parenttag(const char* tag);
/* These are defined at the bottom of the file */
void push_countarray(int level);
void set_parenttag(const char* tag);
@@
-171,9
+176,6
@@
int count_tag(int tag);
int check_occurrence(int tag);
void clean_up();
int check_occurrence(int tag);
void clean_up();
-#define CLEAR_BUFFER(BUF) \
- memset(BUF, 0, sizeof(BUF));
-
#define HANDLE_ERROR \
{ if (error_mechanism == IMMED_FAIL) { \
clean_up(); YYABORT; \
#define HANDLE_ERROR \
{ if (error_mechanism == IMMED_FAIL) { \
clean_up(); YYABORT; \
@@
-253,7
+255,7
@@
void clean_up();
}
%token_table
}
%token_table
-%expect 30
4
+%expect 30
8
%token <string> BADTOKEN
%token <number> OPEN
%token <string> BADTOKEN
%token <number> OPEN
@@
-456,7
+458,7
@@
head_sect : OPEN DELIM TAG_HEAD
CHECK4(SOUR, SUBM, GEDC, CHAR)
}
CLOSE
CHECK4(SOUR, SUBM, GEDC, CHAR)
}
CLOSE
- { end_record(REC_HEAD, $<ctxt>4);
+ { end_record(REC_HEAD, $<ctxt>4
, GEDCOM_MAKE_NULL(val1)
);
if (compat_mode(C_FTREE | C_LIFELINES))
compat_generate_submitter();
}
if (compat_mode(C_FTREE | C_LIFELINES))
compat_generate_submitter();
}
@@
-495,7
+497,8
@@
head_sour_sect : OPEN DELIM TAG_SOUR mand_line_item
head_sour_subs
{ CHECK0 }
CLOSE
head_sour_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_HEAD_SOUR, PARENT, $<ctxt>5, NULL); }
+ { end_element(ELT_HEAD_SOUR, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1)); }
;
head_sour_subs : /* empty */
;
head_sour_subs : /* empty */
@@
-519,7
+522,7
@@
head_sour_vers_sect : OPEN DELIM TAG_VERS mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_HEAD_SOUR_VERS,
{ CHECK0 }
CLOSE
{ end_element(ELT_HEAD_SOUR_VERS,
- PARENT, $<ctxt>5,
NULL
);
+ PARENT, $<ctxt>5,
GEDCOM_MAKE_NULL(val1)
);
}
;
head_sour_name_sect : OPEN DELIM TAG_NAME mand_line_item
}
;
head_sour_name_sect : OPEN DELIM TAG_NAME mand_line_item
@@
-532,7
+535,7
@@
head_sour_name_sect : OPEN DELIM TAG_NAME mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_HEAD_SOUR_NAME,
{ CHECK0 }
CLOSE
{ end_element(ELT_HEAD_SOUR_NAME,
- PARENT, $<ctxt>5,
NULL
);
+ PARENT, $<ctxt>5,
GEDCOM_MAKE_NULL(val1)
);
}
;
head_sour_corp_sect : OPEN DELIM TAG_CORP mand_line_item
}
;
head_sour_corp_sect : OPEN DELIM TAG_CORP mand_line_item
@@
-545,7
+548,7
@@
head_sour_corp_sect : OPEN DELIM TAG_CORP mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_HEAD_SOUR_CORP,
{ CHECK0 }
CLOSE
{ end_element(ELT_HEAD_SOUR_CORP,
- PARENT, $<ctxt>5,
NULL
);
+ PARENT, $<ctxt>5,
GEDCOM_MAKE_NULL(val1)
);
}
;
}
;
@@
-567,7
+570,7
@@
head_sour_data_sect : OPEN DELIM TAG_DATA mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_HEAD_SOUR_DATA,
{ CHECK0 }
CLOSE
{ end_element(ELT_HEAD_SOUR_DATA,
- PARENT, $<ctxt>5,
NULL
);
+ PARENT, $<ctxt>5,
GEDCOM_MAKE_NULL(val1)
);
}
;
}
;
@@
-592,7
+595,8
@@
head_sour_data_date_sect : OPEN DELIM TAG_DATE mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_HEAD_SOUR_DATA_DATE,
{ CHECK0 }
CLOSE
{ end_element(ELT_HEAD_SOUR_DATA_DATE,
- PARENT, $<ctxt>5, NULL);
+ PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
head_sour_data_copr_sect : OPEN DELIM TAG_COPR mand_line_item
}
;
head_sour_data_copr_sect : OPEN DELIM TAG_COPR mand_line_item
@@
-606,7
+610,8
@@
head_sour_data_copr_sect : OPEN DELIM TAG_COPR mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_HEAD_SOUR_DATA_COPR,
{ CHECK0 }
CLOSE
{ end_element(ELT_HEAD_SOUR_DATA_COPR,
- PARENT, $<ctxt>5, NULL);
+ PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-621,7
+626,7
@@
head_dest_sect : OPEN DELIM TAG_DEST mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_HEAD_DEST,
{ CHECK0 }
CLOSE
{ end_element(ELT_HEAD_DEST,
- PARENT, $<ctxt>5,
NULL
);
+ PARENT, $<ctxt>5,
GEDCOM_MAKE_NULL(val1)
);
}
;
}
;
@@
-637,7
+642,7
@@
head_date_sect : OPEN DELIM TAG_DATE mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_HEAD_DATE,
{ CHECK0 }
CLOSE
{ end_element(ELT_HEAD_DATE,
- PARENT, $<ctxt>5,
NULL
);
+ PARENT, $<ctxt>5,
GEDCOM_MAKE_NULL(val1)
);
}
;
}
;
@@
-659,7
+664,7
@@
head_date_time_sect : OPEN DELIM TAG_TIME mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_HEAD_DATE_TIME,
{ CHECK0 }
CLOSE
{ end_element(ELT_HEAD_DATE_TIME,
- PARENT, $<ctxt>5,
NULL
);
+ PARENT, $<ctxt>5,
GEDCOM_MAKE_NULL(val1)
);
}
;
}
;
@@
-684,7
+689,7
@@
head_subm_sect : OPEN DELIM TAG_SUBM mand_pointer
{ CHECK0 }
CLOSE
{ end_element(ELT_HEAD_SUBM,
{ CHECK0 }
CLOSE
{ end_element(ELT_HEAD_SUBM,
- PARENT, $<ctxt>5,
NULL
);
+ PARENT, $<ctxt>5,
GEDCOM_MAKE_NULL(val1)
);
}
;
/* HEAD.SUBN */
}
;
/* HEAD.SUBN */
@@
-701,7
+706,7
@@
head_subn_sect : OPEN DELIM TAG_SUBN mand_pointer
{ CHECK0 }
CLOSE
{ end_element(ELT_HEAD_SUBN,
{ CHECK0 }
CLOSE
{ end_element(ELT_HEAD_SUBN,
- PARENT, $<ctxt>5,
NULL
);
+ PARENT, $<ctxt>5,
GEDCOM_MAKE_NULL(val1)
);
}
;
/* HEAD.FILE */
}
;
/* HEAD.FILE */
@@
-714,7
+719,8
@@
head_file_sect : OPEN DELIM TAG_FILE mand_line_item
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_HEAD_FILE, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_HEAD_FILE, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
/* HEAD.COPR */
}
;
/* HEAD.COPR */
@@
-727,7
+733,8
@@
head_copr_sect : OPEN DELIM TAG_COPR mand_line_item
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_HEAD_COPR, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_HEAD_COPR, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
/* HEAD.GEDC */
}
;
/* HEAD.GEDC */
@@
-740,7
+747,8
@@
head_gedc_sect : OPEN DELIM TAG_GEDC
head_gedc_subs
{ CHECK2(VERS, FORM) }
CLOSE
head_gedc_subs
{ CHECK2(VERS, FORM) }
CLOSE
- { end_element(ELT_HEAD_GEDC, PARENT, $<ctxt>4, NULL);
+ { end_element(ELT_HEAD_GEDC, PARENT, $<ctxt>4,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-762,7
+770,7
@@
head_gedc_vers_sect : OPEN DELIM TAG_VERS mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_HEAD_GEDC_VERS,
{ CHECK0 }
CLOSE
{ end_element(ELT_HEAD_GEDC_VERS,
- PARENT, $<ctxt>5,
NULL
);
+ PARENT, $<ctxt>5,
GEDCOM_MAKE_NULL(val1)
);
}
;
head_gedc_form_sect : OPEN DELIM TAG_FORM mand_line_item
}
;
head_gedc_form_sect : OPEN DELIM TAG_FORM mand_line_item
@@
-775,7
+783,7
@@
head_gedc_form_sect : OPEN DELIM TAG_FORM mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_HEAD_GEDC_FORM,
{ CHECK0 }
CLOSE
{ end_element(ELT_HEAD_GEDC_FORM,
- PARENT, $<ctxt>5,
NULL
);
+ PARENT, $<ctxt>5,
GEDCOM_MAKE_NULL(val1)
);
}
;
}
;
@@
-792,7
+800,8
@@
head_char_sect : OPEN DELIM TAG_CHAR mand_line_item
head_char_subs
{ CHECK0 }
CLOSE
head_char_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_HEAD_CHAR, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_HEAD_CHAR, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-813,7
+822,7
@@
head_char_vers_sect : OPEN DELIM TAG_VERS mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_HEAD_CHAR_VERS,
{ CHECK0 }
CLOSE
{ end_element(ELT_HEAD_CHAR_VERS,
- PARENT, $<ctxt>5,
NULL
);
+ PARENT, $<ctxt>5,
GEDCOM_MAKE_NULL(val1)
);
}
;
}
;
@@
-827,7
+836,8
@@
head_lang_sect : OPEN DELIM TAG_LANG mand_line_item
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_HEAD_LANG, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_HEAD_LANG, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
/* HEAD.PLAC */
}
;
/* HEAD.PLAC */
@@
-840,7
+850,8
@@
head_plac_sect : OPEN DELIM TAG_PLAC
head_plac_subs
{ CHECK1(FORM) }
CLOSE
head_plac_subs
{ CHECK1(FORM) }
CLOSE
- { end_element(ELT_HEAD_PLAC, PARENT, $<ctxt>4, NULL);
+ { end_element(ELT_HEAD_PLAC, PARENT, $<ctxt>4,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-861,7
+872,7
@@
head_plac_form_sect : OPEN DELIM TAG_FORM mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_HEAD_PLAC_FORM,
{ CHECK0 }
CLOSE
{ end_element(ELT_HEAD_PLAC_FORM,
- PARENT, $<ctxt>5,
NULL
);
+ PARENT, $<ctxt>5,
GEDCOM_MAKE_NULL(val1)
);
}
;
}
;
@@
-870,12
+881,16
@@
head_note_sect : OPEN DELIM TAG_NOTE mand_line_item
{ $<ctxt>$ = start_element(ELT_HEAD_NOTE,
PARENT, $1, $3, $4,
GEDCOM_MAKE_STRING(val1, $4));
{ $<ctxt>$ = start_element(ELT_HEAD_NOTE,
PARENT, $1, $3, $4,
GEDCOM_MAKE_STRING(val1, $4));
+ reset_buffer(&concat_buffer);
+ safe_buf_append(&concat_buffer, $4);
START(NOTE, $1, $<ctxt>$)
}
head_note_subs
{ CHECK0 }
CLOSE
START(NOTE, $1, $<ctxt>$)
}
head_note_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_HEAD_NOTE, PARENT, $<ctxt>5, NULL);
+ { char* complete = get_buf_string(&concat_buffer);
+ end_element(ELT_HEAD_NOTE, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_STRING(val1, complete));
}
;
}
;
@@
-909,7
+924,7
@@
fam_rec : OPEN DELIM POINTER DELIM TAG_FAM
fam_subs
{ CHECK0 }
CLOSE
fam_subs
{ CHECK0 }
CLOSE
- { end_record(REC_FAM, $<ctxt>6); }
+ { end_record(REC_FAM, $<ctxt>6
, GEDCOM_MAKE_NULL(val1)
); }
;
fam_subs : /* empty */
;
fam_subs : /* empty */
@@
-944,7
+959,8
@@
fam_husb_sect : OPEN DELIM TAG_HUSB mand_pointer
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_FAM_HUSB, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_FAM_HUSB, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-961,7
+977,8
@@
fam_wife_sect : OPEN DELIM TAG_WIFE mand_pointer
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_FAM_WIFE, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_FAM_WIFE, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-978,7
+995,8
@@
fam_chil_sect : OPEN DELIM TAG_CHIL mand_pointer
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_FAM_CHIL, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_FAM_CHIL, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-992,7
+1010,8
@@
fam_nchi_sect : OPEN DELIM TAG_NCHI mand_line_item
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_FAM_NCHI, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_FAM_NCHI, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-1009,7
+1028,8
@@
fam_subm_sect : OPEN DELIM TAG_SUBM mand_pointer
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_FAM_SUBM, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_FAM_SUBM, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-1027,7
+1047,7
@@
indiv_rec : OPEN DELIM POINTER DELIM TAG_INDI
indi_subs
{ CHECK0 }
CLOSE
indi_subs
{ CHECK0 }
CLOSE
- { end_record(REC_INDI, $<ctxt>6); }
+ { end_record(REC_INDI, $<ctxt>6
, GEDCOM_MAKE_NULL(val1)
); }
;
indi_subs : /* empty */
;
indi_subs : /* empty */
@@
-1070,7
+1090,8
@@
indi_resn_sect : OPEN DELIM TAG_RESN mand_line_item
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_INDI_RESN, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_INDI_RESN, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-1084,7
+1105,8
@@
indi_sex_sect : OPEN DELIM TAG_SEX mand_line_item
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_INDI_SEX, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_INDI_SEX, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-1101,7
+1123,8
@@
indi_subm_sect : OPEN DELIM TAG_SUBM mand_pointer
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_INDI_SUBM, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_INDI_SUBM, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-1118,7
+1141,8
@@
indi_alia_sect : OPEN DELIM TAG_ALIA mand_pointer
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_INDI_ALIA, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_INDI_ALIA, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-1135,7
+1159,8
@@
indi_anci_sect : OPEN DELIM TAG_ANCI mand_pointer
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_INDI_ANCI, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_INDI_ANCI, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-1152,7
+1177,8
@@
indi_desi_sect : OPEN DELIM TAG_DESI mand_pointer
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_INDI_DESI, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_INDI_DESI, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-1166,7
+1192,8
@@
indi_rfn_sect : OPEN DELIM TAG_RFN mand_line_item
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_INDI_RFN, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_INDI_RFN, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-1180,7
+1207,8
@@
indi_afn_sect : OPEN DELIM TAG_AFN mand_line_item
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_INDI_AFN, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_INDI_AFN, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-1202,11
+1230,13
@@
ftree_addr_sect : OPEN DELIM TAG_ADDR opt_line_item
CLOSE
{ if (compat_mode(C_FTREE)) {
Gedcom_ctxt par = PARENT;
CLOSE
{ if (compat_mode(C_FTREE)) {
Gedcom_ctxt par = PARENT;
- end_element(ELT_SUB_ADDR, par, $<ctxt>5, NULL);
+ end_element(ELT_SUB_ADDR, par, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
CHECK0;
compat_generate_resi_end(PARENT, par);
}
}
CHECK0;
compat_generate_resi_end(PARENT, par);
}
}
+ ;
ftree_addr_subs : /* empty */
| ftree_addr_subs ftree_addr_sub
ftree_addr_subs : /* empty */
| ftree_addr_subs ftree_addr_sub
@@
-1228,7
+1258,7
@@
ftree_addr_phon_sect : OPEN DELIM TAG_PHON mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_PHON, GRANDPARENT(1),
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_PHON, GRANDPARENT(1),
- $<ctxt>5,
NULL
);
+ $<ctxt>5,
GEDCOM_MAKE_NULL(val1)
);
}
;
}
;
@@
-1246,7
+1276,7
@@
multim_rec : OPEN DELIM POINTER DELIM TAG_OBJE
obje_subs
{ CHECK2(FORM, BLOB) }
CLOSE
obje_subs
{ CHECK2(FORM, BLOB) }
CLOSE
- { end_record(REC_OBJE, $<ctxt>6); }
+ { end_record(REC_OBJE, $<ctxt>6
, GEDCOM_MAKE_NULL(val1)
); }
;
obje_subs : /* empty */
;
obje_subs : /* empty */
@@
-1273,7
+1303,8
@@
obje_form_sect : OPEN DELIM TAG_FORM mand_line_item
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_OBJE_FORM, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_OBJE_FORM, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-1287,7
+1318,8
@@
obje_titl_sect : OPEN DELIM TAG_TITL mand_line_item
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_OBJE_TITL, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_OBJE_TITL, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-1296,12
+1328,15
@@
obje_blob_sect : OPEN DELIM TAG_BLOB
{ $<ctxt>$ = start_element(ELT_OBJE_BLOB,
PARENT, $1, $3, NULL,
GEDCOM_MAKE_NULL(val1));
{ $<ctxt>$ = start_element(ELT_OBJE_BLOB,
PARENT, $1, $3, NULL,
GEDCOM_MAKE_NULL(val1));
+ reset_buffer(&concat_buffer);
START(BLOB, $1, $<ctxt>$)
}
obje_blob_subs
{ CHECK1(CONT) }
CLOSE
START(BLOB, $1, $<ctxt>$)
}
obje_blob_subs
{ CHECK1(CONT) }
CLOSE
- { end_element(ELT_OBJE_BLOB, PARENT, $<ctxt>4, NULL);
+ { char* complete = get_buf_string(&concat_buffer);
+ end_element(ELT_OBJE_BLOB, PARENT, $<ctxt>4,
+ GEDCOM_MAKE_STRING(val1, complete));
}
;
}
;
@@
-1317,13
+1352,14
@@
obje_blob_cont_sect : OPEN DELIM TAG_CONT mand_line_item
{ $<ctxt>$ = start_element(ELT_OBJE_BLOB_CONT,
PARENT, $1, $3, $4,
GEDCOM_MAKE_STRING(val1, $4));
{ $<ctxt>$ = start_element(ELT_OBJE_BLOB_CONT,
PARENT, $1, $3, $4,
GEDCOM_MAKE_STRING(val1, $4));
+ safe_buf_append(&concat_buffer, $4);
START(CONT, $1, $<ctxt>$)
}
no_std_subs
{ CHECK0 }
CLOSE
{ end_element(ELT_OBJE_BLOB_CONT, PARENT,
START(CONT, $1, $<ctxt>$)
}
no_std_subs
{ CHECK0 }
CLOSE
{ end_element(ELT_OBJE_BLOB_CONT, PARENT,
- $<ctxt>5,
NULL
);
+ $<ctxt>5,
GEDCOM_MAKE_NULL(val1)
);
}
;
}
;
@@
-1340,7
+1376,8
@@
obje_obje_sect : OPEN DELIM TAG_OBJE mand_pointer
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_OBJE_OBJE, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_OBJE_OBJE, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-1354,11
+1391,15
@@
note_rec : OPEN DELIM POINTER DELIM TAG_NOTE note_line_item
$<ctxt>$ = start_record(REC_NOTE,
$1, GEDCOM_MAKE_XREF_PTR(val1, xr), $5,
$6, GEDCOM_MAKE_STRING(val2, $6));
$<ctxt>$ = start_record(REC_NOTE,
$1, GEDCOM_MAKE_XREF_PTR(val1, xr), $5,
$6, GEDCOM_MAKE_STRING(val2, $6));
+ reset_buffer(&concat_buffer);
+ safe_buf_append(&concat_buffer, $6);
START(NOTE, $1, $<ctxt>$) }
note_subs
{ CHECK0 }
CLOSE
START(NOTE, $1, $<ctxt>$) }
note_subs
{ CHECK0 }
CLOSE
- { end_record(REC_NOTE, $<ctxt>7); }
+ { char* complete = get_buf_string(&concat_buffer);
+ end_record(REC_NOTE, $<ctxt>7,
+ GEDCOM_MAKE_STRING(val1, complete)); }
;
note_line_item : /* empty */
;
note_line_item : /* empty */
@@
-1399,7
+1440,7
@@
repos_rec : OPEN DELIM POINTER DELIM TAG_REPO
repo_subs
{ CHECK0 }
CLOSE
repo_subs
{ CHECK0 }
CLOSE
- { end_record(REC_REPO, $<ctxt>6); }
+ { end_record(REC_REPO, $<ctxt>6
, GEDCOM_MAKE_NULL(val1)
); }
;
repo_subs : /* empty */
;
repo_subs : /* empty */
@@
-1424,7
+1465,8
@@
repo_name_sect : OPEN DELIM TAG_NAME mand_line_item
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_REPO_NAME, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_REPO_NAME, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-1442,7
+1484,7
@@
source_rec : OPEN DELIM POINTER DELIM TAG_SOUR
sour_subs
{ CHECK0 }
CLOSE
sour_subs
{ CHECK0 }
CLOSE
- { end_record(REC_SOUR, $<ctxt>6); }
+ { end_record(REC_SOUR, $<ctxt>6
, GEDCOM_MAKE_NULL(val1)
); }
;
sour_subs : /* empty */
;
sour_subs : /* empty */
@@
-1473,7
+1515,8
@@
sour_data_sect : OPEN DELIM TAG_DATA
sour_data_subs
{ CHECK0 }
CLOSE
sour_data_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SOUR_DATA, PARENT, $<ctxt>4, NULL);
+ { end_element(ELT_SOUR_DATA, PARENT, $<ctxt>4,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-1497,7
+1540,7
@@
sour_data_even_sect : OPEN DELIM TAG_EVEN mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SOUR_DATA_EVEN, PARENT,
{ CHECK0 }
CLOSE
{ end_element(ELT_SOUR_DATA_EVEN, PARENT,
- $<ctxt>5,
NULL
);
+ $<ctxt>5,
GEDCOM_MAKE_NULL(val1)
);
}
;
}
;
@@
-1522,7
+1565,7
@@
sour_data_even_date_sect : OPEN DELIM TAG_DATE mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SOUR_DATA_EVEN_DATE, PARENT,
{ CHECK0 }
CLOSE
{ end_element(ELT_SOUR_DATA_EVEN_DATE, PARENT,
- $<ctxt>5,
NULL
);
+ $<ctxt>5,
GEDCOM_MAKE_NULL(val1)
);
}
;
}
;
@@
-1537,7
+1580,7
@@
sour_data_even_plac_sect : OPEN DELIM TAG_PLAC mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SOUR_DATA_EVEN_PLAC, PARENT,
{ CHECK0 }
CLOSE
{ end_element(ELT_SOUR_DATA_EVEN_PLAC, PARENT,
- $<ctxt>5,
NULL
);
+ $<ctxt>5,
GEDCOM_MAKE_NULL(val1)
);
}
;
}
;
@@
-1551,7
+1594,7
@@
sour_data_agnc_sect : OPEN DELIM TAG_AGNC mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SOUR_DATA_AGNC, PARENT,
{ CHECK0 }
CLOSE
{ end_element(ELT_SOUR_DATA_AGNC, PARENT,
- $<ctxt>5,
NULL
);
+ $<ctxt>5,
GEDCOM_MAKE_NULL(val1)
);
}
;
}
;
@@
-1560,12
+1603,16
@@
sour_auth_sect : OPEN DELIM TAG_AUTH mand_line_item
{ $<ctxt>$ = start_element(ELT_SOUR_AUTH,
PARENT, $1, $3, $4,
GEDCOM_MAKE_STRING(val1, $4));
{ $<ctxt>$ = start_element(ELT_SOUR_AUTH,
PARENT, $1, $3, $4,
GEDCOM_MAKE_STRING(val1, $4));
+ reset_buffer(&concat_buffer);
+ safe_buf_append(&concat_buffer, $4);
START(AUTH, $1, $<ctxt>$)
}
sour_auth_subs
{ CHECK0 }
CLOSE
START(AUTH, $1, $<ctxt>$)
}
sour_auth_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SOUR_AUTH, PARENT, $<ctxt>5, NULL);
+ { char* complete = get_buf_string(&concat_buffer);
+ end_element(ELT_SOUR_AUTH, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_STRING(val1, complete));
}
;
}
;
@@
-1582,12
+1629,16
@@
sour_titl_sect : OPEN DELIM TAG_TITL mand_line_item
{ $<ctxt>$ = start_element(ELT_SOUR_TITL,
PARENT, $1, $3, $4,
GEDCOM_MAKE_STRING(val1, $4));
{ $<ctxt>$ = start_element(ELT_SOUR_TITL,
PARENT, $1, $3, $4,
GEDCOM_MAKE_STRING(val1, $4));
+ reset_buffer(&concat_buffer);
+ safe_buf_append(&concat_buffer, $4);
START(TITL, $1, $<ctxt>$)
}
sour_titl_subs
{ CHECK0 }
CLOSE
START(TITL, $1, $<ctxt>$)
}
sour_titl_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SOUR_TITL, PARENT, $<ctxt>5, NULL);
+ { char* complete = get_buf_string(&concat_buffer);
+ end_element(ELT_SOUR_TITL, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_STRING(val1, complete));
}
;
}
;
@@
-1609,7
+1660,8
@@
sour_abbr_sect : OPEN DELIM TAG_ABBR mand_line_item
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SOUR_ABBR, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_SOUR_ABBR, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-1618,12
+1670,16
@@
sour_publ_sect : OPEN DELIM TAG_PUBL mand_line_item
{ $<ctxt>$ = start_element(ELT_SOUR_PUBL,
PARENT, $1, $3, $4,
GEDCOM_MAKE_STRING(val1, $4));
{ $<ctxt>$ = start_element(ELT_SOUR_PUBL,
PARENT, $1, $3, $4,
GEDCOM_MAKE_STRING(val1, $4));
+ reset_buffer(&concat_buffer);
+ safe_buf_append(&concat_buffer, $4);
START(PUBL, $1, $<ctxt>$)
}
sour_publ_subs
{ CHECK0 }
CLOSE
START(PUBL, $1, $<ctxt>$)
}
sour_publ_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SOUR_PUBL, PARENT, $<ctxt>5, NULL);
+ { char* complete = get_buf_string(&concat_buffer);
+ end_element(ELT_SOUR_PUBL, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_STRING(val1, complete));
}
;
}
;
@@
-1640,12
+1696,16
@@
sour_text_sect : OPEN DELIM TAG_TEXT mand_line_item
{ $<ctxt>$ = start_element(ELT_SOUR_TEXT,
PARENT, $1, $3, $4,
GEDCOM_MAKE_STRING(val1, $4));
{ $<ctxt>$ = start_element(ELT_SOUR_TEXT,
PARENT, $1, $3, $4,
GEDCOM_MAKE_STRING(val1, $4));
+ reset_buffer(&concat_buffer);
+ safe_buf_append(&concat_buffer, $4);
START(TEXT, $1, $<ctxt>$)
}
sour_text_subs
{ CHECK0 }
CLOSE
START(TEXT, $1, $<ctxt>$)
}
sour_text_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SOUR_TEXT, PARENT, $<ctxt>5, NULL);
+ { char* complete = get_buf_string(&concat_buffer);
+ end_element(ELT_SOUR_TEXT, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_STRING(val1, complete));
}
;
}
;
@@
-1671,7
+1731,7
@@
submis_rec : OPEN DELIM POINTER DELIM TAG_SUBN
subn_subs
{ CHECK0 }
CLOSE
subn_subs
{ CHECK0 }
CLOSE
- { end_record(REC_SUBN, $<ctxt>6); }
+ { end_record(REC_SUBN, $<ctxt>6
, GEDCOM_MAKE_NULL(val1)
); }
;
subn_subs : /* empty */
;
subn_subs : /* empty */
@@
-1701,7
+1761,8
@@
subn_subm_sect : OPEN DELIM TAG_SUBM mand_pointer
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUBN_SUBM, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_SUBN_SUBM, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-1715,7
+1776,8
@@
subn_famf_sect : OPEN DELIM TAG_FAMF mand_line_item
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUBN_FAMF, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_SUBN_FAMF, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-1729,7
+1791,8
@@
subn_temp_sect : OPEN DELIM TAG_TEMP mand_line_item
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUBN_TEMP, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_SUBN_TEMP, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-1743,7
+1806,8
@@
subn_ance_sect : OPEN DELIM TAG_ANCE mand_line_item
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUBN_ANCE, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_SUBN_ANCE, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-1757,7
+1821,8
@@
subn_desc_sect : OPEN DELIM TAG_DESC mand_line_item
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUBN_DESC, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_SUBN_DESC, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-1771,7
+1836,8
@@
subn_ordi_sect : OPEN DELIM TAG_ORDI mand_line_item
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUBN_ORDI, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_SUBN_ORDI, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-1785,7
+1851,8
@@
subn_rin_sect : OPEN DELIM TAG_RIN mand_line_item
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUBN_RIN, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_SUBN_RIN, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-1803,7
+1870,7
@@
submit_rec : OPEN DELIM POINTER DELIM TAG_SUBM
subm_subs
{ CHECK1(NAME) }
CLOSE
subm_subs
{ CHECK1(NAME) }
CLOSE
- { end_record(REC_SUBM, $<ctxt>6); }
+ { end_record(REC_SUBM, $<ctxt>6
, GEDCOM_MAKE_NULL(val1)
); }
;
subm_subs : /* empty */
;
subm_subs : /* empty */
@@
-1830,7
+1897,8
@@
subm_name_sect : OPEN DELIM TAG_NAME mand_line_item
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUBM_NAME, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_SUBM_NAME, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-1844,7
+1912,8
@@
subm_lang_sect : OPEN DELIM TAG_LANG mand_line_item
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUBM_LANG, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_SUBM_LANG, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-1858,7
+1927,8
@@
subm_rfn_sect : OPEN DELIM TAG_RFN mand_line_item
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUBM_RFN, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_SUBM_RFN, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-1872,7
+1942,8
@@
subm_rin_sect : OPEN DELIM TAG_RIN mand_line_item
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUBM_RIN, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_SUBM_RIN, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-1889,12
+1960,16
@@
addr_sect : OPEN DELIM TAG_ADDR mand_line_item
{ $<ctxt>$ = start_element(ELT_SUB_ADDR,
PARENT, $1, $3, $4,
GEDCOM_MAKE_STRING(val1, $4));
{ $<ctxt>$ = start_element(ELT_SUB_ADDR,
PARENT, $1, $3, $4,
GEDCOM_MAKE_STRING(val1, $4));
+ reset_buffer(&concat_buffer);
+ safe_buf_append(&concat_buffer, $4);
START(ADDR, $1, $<ctxt>$)
}
addr_subs
{ CHECK0 }
CLOSE
START(ADDR, $1, $<ctxt>$)
}
addr_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUB_ADDR, PARENT, $<ctxt>5, NULL);
+ { char* complete = get_buf_string(&concat_buffer);
+ end_element(ELT_SUB_ADDR, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_STRING(val1, complete));
}
;
}
;
@@
-1916,12
+1991,15
@@
addr_cont_sect : OPEN DELIM TAG_CONT mand_line_item
{ $<ctxt>$ = start_element(ELT_SUB_ADDR_CONT,
PARENT, $1, $3, $4,
GEDCOM_MAKE_STRING(val1, $4));
{ $<ctxt>$ = start_element(ELT_SUB_ADDR_CONT,
PARENT, $1, $3, $4,
GEDCOM_MAKE_STRING(val1, $4));
+ SAFE_BUF_ADDCHAR(&concat_buffer, '\n');
+ safe_buf_append(&concat_buffer, $4);
START(CONT, $1, $<ctxt>$)
}
no_std_subs
{ CHECK0 }
CLOSE
START(CONT, $1, $<ctxt>$)
}
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUB_ADDR_CONT, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_SUB_ADDR_CONT, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
addr_adr1_sect : OPEN DELIM TAG_ADR1 mand_line_item
}
;
addr_adr1_sect : OPEN DELIM TAG_ADR1 mand_line_item
@@
-1933,7
+2011,8
@@
addr_adr1_sect : OPEN DELIM TAG_ADR1 mand_line_item
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUB_ADDR_ADR1, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_SUB_ADDR_ADR1, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
addr_adr2_sect : OPEN DELIM TAG_ADR2 mand_line_item
}
;
addr_adr2_sect : OPEN DELIM TAG_ADR2 mand_line_item
@@
-1945,7
+2024,8
@@
addr_adr2_sect : OPEN DELIM TAG_ADR2 mand_line_item
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUB_ADDR_ADR2, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_SUB_ADDR_ADR2, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
addr_city_sect : OPEN DELIM TAG_CITY mand_line_item
}
;
addr_city_sect : OPEN DELIM TAG_CITY mand_line_item
@@
-1957,7
+2037,8
@@
addr_city_sect : OPEN DELIM TAG_CITY mand_line_item
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUB_ADDR_CITY, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_SUB_ADDR_CITY, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
addr_stae_sect : OPEN DELIM TAG_STAE mand_line_item
}
;
addr_stae_sect : OPEN DELIM TAG_STAE mand_line_item
@@
-1969,7
+2050,8
@@
addr_stae_sect : OPEN DELIM TAG_STAE mand_line_item
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUB_ADDR_STAE, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_SUB_ADDR_STAE, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
addr_post_sect : OPEN DELIM TAG_POST mand_line_item
}
;
addr_post_sect : OPEN DELIM TAG_POST mand_line_item
@@
-1981,7
+2063,8
@@
addr_post_sect : OPEN DELIM TAG_POST mand_line_item
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUB_ADDR_POST, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_SUB_ADDR_POST, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
addr_ctry_sect : OPEN DELIM TAG_CTRY mand_line_item
}
;
addr_ctry_sect : OPEN DELIM TAG_CTRY mand_line_item
@@
-1993,7
+2076,8
@@
addr_ctry_sect : OPEN DELIM TAG_CTRY mand_line_item
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUB_ADDR_CTRY, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_SUB_ADDR_CTRY, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-2006,7
+2090,8
@@
phon_sect : OPEN DELIM TAG_PHON mand_line_item
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUB_PHON, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_SUB_PHON, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-2026,7
+2111,8
@@
asso_sect : OPEN DELIM TAG_ASSO mand_pointer
asso_subs
{ CHECK2(TYPE,RELA) }
CLOSE
asso_subs
{ CHECK2(TYPE,RELA) }
CLOSE
- { end_element(ELT_SUB_ASSO, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_SUB_ASSO, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-2047,7
+2133,8
@@
asso_type_sect : OPEN DELIM TAG_TYPE mand_line_item
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUB_ASSO_TYPE, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_SUB_ASSO_TYPE, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-2060,7
+2147,8
@@
asso_rela_sect : OPEN DELIM TAG_RELA mand_line_item
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUB_ASSO_RELA, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_SUB_ASSO_RELA, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-2077,7
+2165,8
@@
change_date_chan_sect : OPEN DELIM TAG_CHAN
change_date_chan_subs
{ CHECK1(DATE) }
CLOSE
change_date_chan_subs
{ CHECK1(DATE) }
CLOSE
- { end_element(ELT_SUB_CHAN, PARENT, $<ctxt>4, NULL);
+ { end_element(ELT_SUB_CHAN, PARENT, $<ctxt>4,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-2100,7
+2189,7
@@
change_date_date_sect : OPEN DELIM TAG_DATE mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_CHAN_DATE, PARENT, $<ctxt>5,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_CHAN_DATE, PARENT, $<ctxt>5,
-
NULL
);
+
GEDCOM_MAKE_NULL(val1)
);
}
;
}
;
@@
-2123,7
+2212,7
@@
change_date_date_time_sect : OPEN DELIM TAG_TIME mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_CHAN_TIME, PARENT, $<ctxt>5,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_CHAN_TIME, PARENT, $<ctxt>5,
-
NULL
);
+
GEDCOM_MAKE_NULL(val1)
);
}
;
}
;
@@
-2143,7
+2232,8
@@
famc_sect : OPEN DELIM TAG_FAMC mand_pointer
famc_subs
{ CHECK0 }
CLOSE
famc_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUB_FAMC, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_SUB_FAMC, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-2165,7
+2255,8
@@
famc_pedi_sect : OPEN DELIM TAG_PEDI mand_line_item
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUB_FAMC_PEDI, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_SUB_FAMC_PEDI, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-2178,12
+2269,15
@@
cont_sect : OPEN DELIM TAG_CONT mand_line_item
{ $<ctxt>$ = start_element(ELT_SUB_CONT,
PARENT, $1, $3, $4,
GEDCOM_MAKE_STRING(val1, $4));
{ $<ctxt>$ = start_element(ELT_SUB_CONT,
PARENT, $1, $3, $4,
GEDCOM_MAKE_STRING(val1, $4));
+ SAFE_BUF_ADDCHAR(&concat_buffer, '\n');
+ safe_buf_append(&concat_buffer, $4);
START(CONT, $1, $<ctxt>$)
}
no_std_subs
{ CHECK0 }
CLOSE
START(CONT, $1, $<ctxt>$)
}
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUB_CONT, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_SUB_CONT, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-2191,12
+2285,14
@@
conc_sect : OPEN DELIM TAG_CONC mand_line_item
{ $<ctxt>$ = start_element(ELT_SUB_CONC,
PARENT, $1, $3, $4,
GEDCOM_MAKE_STRING(val1, $4));
{ $<ctxt>$ = start_element(ELT_SUB_CONC,
PARENT, $1, $3, $4,
GEDCOM_MAKE_STRING(val1, $4));
+ safe_buf_append(&concat_buffer, $4);
START(CONC, $1, $<ctxt>$)
}
no_std_subs
{ CHECK0 }
CLOSE
START(CONC, $1, $<ctxt>$)
}
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUB_CONC, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_SUB_CONC, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-2224,7
+2320,7
@@
event_detail_type_sect : OPEN DELIM TAG_TYPE mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_EVT_TYPE, PARENT, $<ctxt>5,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_EVT_TYPE, PARENT, $<ctxt>5,
-
NULL
);
+
GEDCOM_MAKE_NULL(val1)
);
}
;
event_detail_date_sect : OPEN DELIM TAG_DATE mand_line_item
}
;
event_detail_date_sect : OPEN DELIM TAG_DATE mand_line_item
@@
-2239,7
+2335,7
@@
event_detail_date_sect : OPEN DELIM TAG_DATE mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_EVT_DATE, PARENT, $<ctxt>5,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_EVT_DATE, PARENT, $<ctxt>5,
-
NULL
);
+
GEDCOM_MAKE_NULL(val1)
);
}
;
event_detail_age_sect : OPEN DELIM TAG_AGE mand_line_item
}
;
event_detail_age_sect : OPEN DELIM TAG_AGE mand_line_item
@@
-2254,7
+2350,7
@@
event_detail_age_sect : OPEN DELIM TAG_AGE mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_EVT_AGE, PARENT, $<ctxt>5,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_EVT_AGE, PARENT, $<ctxt>5,
-
NULL
);
+
GEDCOM_MAKE_NULL(val1)
);
}
;
event_detail_agnc_sect : OPEN DELIM TAG_AGNC mand_line_item
}
;
event_detail_agnc_sect : OPEN DELIM TAG_AGNC mand_line_item
@@
-2268,7
+2364,7
@@
event_detail_agnc_sect : OPEN DELIM TAG_AGNC mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_EVT_AGNC, PARENT, $<ctxt>5,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_EVT_AGNC, PARENT, $<ctxt>5,
-
NULL
);
+
GEDCOM_MAKE_NULL(val1)
);
}
;
event_detail_caus_sect : OPEN DELIM TAG_CAUS mand_line_item
}
;
event_detail_caus_sect : OPEN DELIM TAG_CAUS mand_line_item
@@
-2282,7
+2378,7
@@
event_detail_caus_sect : OPEN DELIM TAG_CAUS mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_EVT_CAUS, PARENT, $<ctxt>5,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_EVT_CAUS, PARENT, $<ctxt>5,
-
NULL
);
+
GEDCOM_MAKE_NULL(val1)
);
}
;
}
;
@@
-2301,7
+2397,8
@@
fam_event_sect : OPEN DELIM fam_event_tag opt_value
fam_event_subs
{ CHECK0 }
CLOSE
fam_event_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUB_FAM_EVT, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_SUB_FAM_EVT, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-2337,7
+2434,7
@@
fam_even_husb_sect : OPEN DELIM TAG_HUSB
{ CHECK1(AGE) }
CLOSE
{ end_element(ELT_SUB_FAM_EVT_HUSB, PARENT, $<ctxt>4,
{ CHECK1(AGE) }
CLOSE
{ end_element(ELT_SUB_FAM_EVT_HUSB, PARENT, $<ctxt>4,
-
NULL
);
+
GEDCOM_MAKE_NULL(val1)
);
}
;
}
;
@@
-2360,7
+2457,7
@@
fam_even_age_sect : OPEN DELIM TAG_AGE mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_FAM_EVT_AGE, PARENT, $<ctxt>5,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_FAM_EVT_AGE, PARENT, $<ctxt>5,
-
NULL
);
+
GEDCOM_MAKE_NULL(val1)
);
}
;
}
;
@@
-2374,7
+2471,7
@@
fam_even_wife_sect : OPEN DELIM TAG_WIFE
{ CHECK1(AGE) }
CLOSE
{ end_element(ELT_SUB_FAM_EVT_WIFE, PARENT, $<ctxt>4,
{ CHECK1(AGE) }
CLOSE
{ end_element(ELT_SUB_FAM_EVT_WIFE, PARENT, $<ctxt>4,
-
NULL
);
+
GEDCOM_MAKE_NULL(val1)
);
}
;
}
;
@@
-2388,7
+2485,7
@@
fam_gen_even_sect : OPEN DELIM TAG_EVEN
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_FAM_EVT_EVEN, PARENT, $<ctxt>4,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_FAM_EVT_EVEN, PARENT, $<ctxt>4,
-
NULL
);
+
GEDCOM_MAKE_NULL(val1)
);
}
;
}
;
@@
-2417,7
+2514,7
@@
ident_refn_sect : OPEN DELIM TAG_REFN mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_IDENT_REFN, PARENT, $<ctxt>5,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_IDENT_REFN, PARENT, $<ctxt>5,
-
NULL
);
+
GEDCOM_MAKE_NULL(val1)
);
}
;
}
;
@@
-2440,7
+2537,7
@@
ident_refn_type_sect : OPEN DELIM TAG_TYPE mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_IDENT_REFN_TYPE, PARENT, $<ctxt>5,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_IDENT_REFN_TYPE, PARENT, $<ctxt>5,
-
NULL
);
+
GEDCOM_MAKE_NULL(val1)
);
}
;
}
;
@@
-2454,7
+2551,7
@@
ident_rin_sect : OPEN DELIM TAG_RIN mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_IDENT_RIN, PARENT, $<ctxt>5,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_IDENT_RIN, PARENT, $<ctxt>5,
-
NULL
);
+
GEDCOM_MAKE_NULL(val1)
);
}
;
}
;
@@
-2472,8
+2569,10
@@
indiv_attr_sect : OPEN DELIM indiv_attr_tag mand_line_item
indiv_attr_event_subs
{ CHECK0 }
CLOSE
indiv_attr_event_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUB_INDIV_ATTR, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_SUB_INDIV_ATTR, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
}
+ ;
indiv_attr_tag : TAG_CAST { $$ = $1; START1(CAST) }
| TAG_DSCR { $$ = $1; START1(DSCR) }
indiv_attr_tag : TAG_CAST { $$ = $1; START1(CAST) }
| TAG_DSCR { $$ = $1; START1(DSCR) }
@@
-2487,6
+2586,7
@@
indiv_attr_tag : TAG_CAST { $$ = $1; START1(CAST) }
| TAG_RELI { $$ = $1; START1(RELI) }
| TAG_SSN { $$ = $1; START1(SSN) }
| TAG_TITL { $$ = $1; START1(TITL) }
| TAG_RELI { $$ = $1; START1(RELI) }
| TAG_SSN { $$ = $1; START1(SSN) }
| TAG_TITL { $$ = $1; START1(TITL) }
+ ;
indiv_resi_sect : OPEN DELIM TAG_RESI
{ $<ctxt>$ = start_element(ELT_SUB_INDIV_RESI,
indiv_resi_sect : OPEN DELIM TAG_RESI
{ $<ctxt>$ = start_element(ELT_SUB_INDIV_RESI,
@@
-2497,7
+2597,8
@@
indiv_resi_sect : OPEN DELIM TAG_RESI
indiv_attr_event_subs
{ CHECK0 }
CLOSE
indiv_attr_event_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUB_INDIV_RESI, PARENT, $<ctxt>4, NULL);
+ { end_element(ELT_SUB_INDIV_RESI, PARENT, $<ctxt>4,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-2526,7
+2627,8
@@
indiv_birt_sect : OPEN DELIM indiv_birt_tag opt_value
indiv_birt_subs
{ CHECK0 }
CLOSE
indiv_birt_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUB_INDIV_BIRT, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_SUB_INDIV_BIRT, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-2558,7
+2660,7
@@
indiv_birt_famc_sect : OPEN DELIM TAG_FAMC mand_pointer
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_INDIV_BIRT_FAMC, PARENT, $<ctxt>5,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_INDIV_BIRT_FAMC, PARENT, $<ctxt>5,
-
NULL
);
+
GEDCOM_MAKE_NULL(val1)
);
}
;
}
;
@@
-2572,7
+2674,8
@@
indiv_gen_sect : OPEN DELIM indiv_gen_tag opt_value
indiv_gen_subs
{ CHECK0 }
CLOSE
indiv_gen_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUB_INDIV_GEN, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_SUB_INDIV_GEN, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-2614,7
+2717,8
@@
indiv_adop_sect : OPEN DELIM TAG_ADOP opt_value
indiv_adop_subs
{ CHECK0 }
CLOSE
indiv_adop_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUB_INDIV_ADOP, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_SUB_INDIV_ADOP, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-2641,7
+2745,7
@@
indiv_adop_famc_sect : OPEN DELIM TAG_FAMC mand_pointer
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_INDIV_ADOP_FAMC, PARENT, $<ctxt>5,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_INDIV_ADOP_FAMC, PARENT, $<ctxt>5,
-
NULL
);
+
GEDCOM_MAKE_NULL(val1)
);
}
;
}
;
@@
-2663,7
+2767,8
@@
indiv_adop_famc_adop_sect : OPEN DELIM TAG_ADOP mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_INDIV_ADOP_FAMC_ADOP,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_INDIV_ADOP_FAMC_ADOP,
- PARENT, $<ctxt>5, NULL);
+ PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-2675,7
+2780,8
@@
indiv_even_sect : OPEN DELIM TAG_EVEN
indiv_gen_subs
{ CHECK0 }
CLOSE
indiv_gen_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUB_INDIV_EVEN, PARENT, $<ctxt>4, NULL);
+ { end_element(ELT_SUB_INDIV_EVEN, PARENT, $<ctxt>4,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-2693,7
+2799,8
@@
lio_bapl_sect : OPEN DELIM lio_bapl_tag
lio_bapl_subs
{ CHECK0 }
CLOSE
lio_bapl_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUB_LIO_BAPL, PARENT, $<ctxt>4, NULL);
+ { end_element(ELT_SUB_LIO_BAPL, PARENT, $<ctxt>4,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-2725,7
+2832,7
@@
lio_bapl_stat_sect : OPEN DELIM TAG_STAT mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_LIO_BAPL_STAT, PARENT, $<ctxt>5,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_LIO_BAPL_STAT, PARENT, $<ctxt>5,
-
NULL
);
+
GEDCOM_MAKE_NULL(val1)
);
}
;
lio_bapl_date_sect : OPEN DELIM TAG_DATE mand_line_item
}
;
lio_bapl_date_sect : OPEN DELIM TAG_DATE mand_line_item
@@
-2739,7
+2846,7
@@
lio_bapl_date_sect : OPEN DELIM TAG_DATE mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_LIO_BAPL_DATE, PARENT, $<ctxt>5,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_LIO_BAPL_DATE, PARENT, $<ctxt>5,
-
NULL
);
+
GEDCOM_MAKE_NULL(val1)
);
}
;
lio_bapl_temp_sect : OPEN DELIM TAG_TEMP mand_line_item
}
;
lio_bapl_temp_sect : OPEN DELIM TAG_TEMP mand_line_item
@@
-2752,7
+2859,7
@@
lio_bapl_temp_sect : OPEN DELIM TAG_TEMP mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_LIO_BAPL_TEMP, PARENT, $<ctxt>5,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_LIO_BAPL_TEMP, PARENT, $<ctxt>5,
-
NULL
);
+
GEDCOM_MAKE_NULL(val1)
);
}
;
lio_bapl_plac_sect : OPEN DELIM TAG_PLAC mand_line_item
}
;
lio_bapl_plac_sect : OPEN DELIM TAG_PLAC mand_line_item
@@
-2765,7
+2872,7
@@
lio_bapl_plac_sect : OPEN DELIM TAG_PLAC mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_LIO_BAPL_PLAC, PARENT, $<ctxt>5,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_LIO_BAPL_PLAC, PARENT, $<ctxt>5,
-
NULL
);
+
GEDCOM_MAKE_NULL(val1)
);
}
;
}
;
@@
-2778,7
+2885,8
@@
lio_slgc_sect : OPEN DELIM TAG_SLGC
lio_slgc_subs
{ CHECK1(FAMC) }
CLOSE
lio_slgc_subs
{ CHECK1(FAMC) }
CLOSE
- { end_element(ELT_SUB_LIO_SLGC, PARENT, $<ctxt>4, NULL);
+ { end_element(ELT_SUB_LIO_SLGC, PARENT, $<ctxt>4,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-2804,7
+2912,7
@@
lio_slgc_famc_sect : OPEN DELIM TAG_FAMC mand_pointer
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_LIO_SLGC_FAMC, PARENT, $<ctxt>5,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_LIO_SLGC_FAMC, PARENT, $<ctxt>5,
-
NULL
);
+
GEDCOM_MAKE_NULL(val1)
);
}
;
}
;
@@
-2820,7
+2928,8
@@
lss_slgs_sect : OPEN DELIM TAG_SLGS
lss_slgs_subs
{ CHECK0 }
CLOSE
lss_slgs_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUB_LIO_SLGC, PARENT, $<ctxt>4, NULL);
+ { end_element(ELT_SUB_LIO_SLGC, PARENT, $<ctxt>4,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-2847,7
+2956,7
@@
lss_slgs_stat_sect : OPEN DELIM TAG_STAT mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_LSS_SLGS_STAT, PARENT, $<ctxt>5,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_LSS_SLGS_STAT, PARENT, $<ctxt>5,
-
NULL
);
+
GEDCOM_MAKE_NULL(val1)
);
}
;
lss_slgs_date_sect : OPEN DELIM TAG_DATE mand_line_item
}
;
lss_slgs_date_sect : OPEN DELIM TAG_DATE mand_line_item
@@
-2861,7
+2970,7
@@
lss_slgs_date_sect : OPEN DELIM TAG_DATE mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_LSS_SLGS_DATE, PARENT, $<ctxt>5,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_LSS_SLGS_DATE, PARENT, $<ctxt>5,
-
NULL
);
+
GEDCOM_MAKE_NULL(val1)
);
}
;
lss_slgs_temp_sect : OPEN DELIM TAG_TEMP mand_line_item
}
;
lss_slgs_temp_sect : OPEN DELIM TAG_TEMP mand_line_item
@@
-2874,7
+2983,7
@@
lss_slgs_temp_sect : OPEN DELIM TAG_TEMP mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_LSS_SLGS_TEMP, PARENT, $<ctxt>5,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_LSS_SLGS_TEMP, PARENT, $<ctxt>5,
-
NULL
);
+
GEDCOM_MAKE_NULL(val1)
);
}
;
lss_slgs_plac_sect : OPEN DELIM TAG_PLAC mand_line_item
}
;
lss_slgs_plac_sect : OPEN DELIM TAG_PLAC mand_line_item
@@
-2887,7
+2996,7
@@
lss_slgs_plac_sect : OPEN DELIM TAG_PLAC mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_LSS_SLGS_PLAC, PARENT, $<ctxt>5,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_LSS_SLGS_PLAC, PARENT, $<ctxt>5,
-
NULL
);
+
GEDCOM_MAKE_NULL(val1)
);
}
;
}
;
@@
-2911,7
+3020,7
@@
multim_obje_link_sect : OPEN DELIM TAG_OBJE DELIM POINTER
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_MULTIM_OBJE, PARENT, $<ctxt>6,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_MULTIM_OBJE, PARENT, $<ctxt>6,
-
NULL
);
+
GEDCOM_MAKE_NULL(val1)
);
}
;
}
;
@@
-2925,7
+3034,7
@@
multim_obje_emb_sect : OPEN DELIM TAG_OBJE
{ CHECK2(FORM,FILE) }
CLOSE
{ end_element(ELT_SUB_MULTIM_OBJE, PARENT, $<ctxt>4,
{ CHECK2(FORM,FILE) }
CLOSE
{ end_element(ELT_SUB_MULTIM_OBJE, PARENT, $<ctxt>4,
-
NULL
);
+
GEDCOM_MAKE_NULL(val1)
);
}
;
}
;
@@
-2951,7
+3060,8
@@
multim_obje_form_sect : OPEN DELIM TAG_FORM mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_MULTIM_OBJE_FORM,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_MULTIM_OBJE_FORM,
- PARENT, $<ctxt>5, NULL);
+ PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
multim_obje_titl_sect : OPEN DELIM TAG_TITL mand_line_item
}
;
multim_obje_titl_sect : OPEN DELIM TAG_TITL mand_line_item
@@
-2965,7
+3075,8
@@
multim_obje_titl_sect : OPEN DELIM TAG_TITL mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_MULTIM_OBJE_TITL,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_MULTIM_OBJE_TITL,
- PARENT, $<ctxt>5, NULL);
+ PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
multim_obje_file_sect : OPEN DELIM TAG_FILE mand_line_item
}
;
multim_obje_file_sect : OPEN DELIM TAG_FILE mand_line_item
@@
-2979,7
+3090,8
@@
multim_obje_file_sect : OPEN DELIM TAG_FILE mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_MULTIM_OBJE_FILE,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_MULTIM_OBJE_FILE,
- PARENT, $<ctxt>5, NULL);
+ PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-2997,12
+3109,13
@@
note_struc_link_sect : OPEN DELIM TAG_NOTE DELIM POINTER
= start_element(ELT_SUB_NOTE,
PARENT, $1, $3, $5,
GEDCOM_MAKE_XREF_PTR(val1, xr));
= start_element(ELT_SUB_NOTE,
PARENT, $1, $3, $5,
GEDCOM_MAKE_XREF_PTR(val1, xr));
- START(NOTE, $1, $<ctxt>$)
+ START(NOTE, $1, $<ctxt>$)
}
note_struc_link_subs
{ CHECK0 }
CLOSE
}
note_struc_link_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUB_NOTE, PARENT, $<ctxt>6, NULL);
+ { end_element(ELT_SUB_NOTE, PARENT, $<ctxt>6,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-3019,12
+3132,17
@@
note_struc_emb_sect : OPEN DELIM TAG_NOTE opt_line_item
= start_element(ELT_SUB_NOTE,
PARENT, $1, $3, $4,
GEDCOM_MAKE_NULL_OR_STRING(val1, $4));
= start_element(ELT_SUB_NOTE,
PARENT, $1, $3, $4,
GEDCOM_MAKE_NULL_OR_STRING(val1, $4));
+ reset_buffer(&concat_buffer);
+ if ($4)
+ safe_buf_append(&concat_buffer, $4);
START(NOTE, $1, $<ctxt>$)
}
note_struc_emb_subs
{ CHECK0 }
CLOSE
START(NOTE, $1, $<ctxt>$)
}
note_struc_emb_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUB_NOTE, PARENT, $<ctxt>5, NULL);
+ { char* complete = get_buf_string(&concat_buffer);
+ end_element(ELT_SUB_NOTE, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_STRING(val1, complete));
}
;
}
;
@@
-3050,7
+3168,8
@@
pers_name_sect : OPEN DELIM TAG_NAME mand_line_item
pers_name_subs
{ CHECK0 }
CLOSE
pers_name_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUB_PERS_NAME, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_SUB_PERS_NAME, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-3079,7
+3198,7
@@
pers_name_npfx_sect : OPEN DELIM TAG_NPFX mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_PERS_NAME_NPFX, PARENT, $<ctxt>5,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_PERS_NAME_NPFX, PARENT, $<ctxt>5,
-
NULL
);
+
GEDCOM_MAKE_NULL(val1)
);
}
;
pers_name_givn_sect : OPEN DELIM TAG_GIVN mand_line_item
}
;
pers_name_givn_sect : OPEN DELIM TAG_GIVN mand_line_item
@@
-3092,7
+3211,7
@@
pers_name_givn_sect : OPEN DELIM TAG_GIVN mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_PERS_NAME_GIVN, PARENT, $<ctxt>5,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_PERS_NAME_GIVN, PARENT, $<ctxt>5,
-
NULL
);
+
GEDCOM_MAKE_NULL(val1)
);
}
;
pers_name_nick_sect : OPEN DELIM TAG_NICK mand_line_item
}
;
pers_name_nick_sect : OPEN DELIM TAG_NICK mand_line_item
@@
-3105,7
+3224,7
@@
pers_name_nick_sect : OPEN DELIM TAG_NICK mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_PERS_NAME_NICK, PARENT, $<ctxt>5,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_PERS_NAME_NICK, PARENT, $<ctxt>5,
-
NULL
);
+
GEDCOM_MAKE_NULL(val1)
);
}
;
pers_name_spfx_sect : OPEN DELIM TAG_SPFX mand_line_item
}
;
pers_name_spfx_sect : OPEN DELIM TAG_SPFX mand_line_item
@@
-3118,7
+3237,7
@@
pers_name_spfx_sect : OPEN DELIM TAG_SPFX mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_PERS_NAME_SPFX, PARENT, $<ctxt>5,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_PERS_NAME_SPFX, PARENT, $<ctxt>5,
-
NULL
);
+
GEDCOM_MAKE_NULL(val1)
);
}
;
pers_name_surn_sect : OPEN DELIM TAG_SURN mand_line_item
}
;
pers_name_surn_sect : OPEN DELIM TAG_SURN mand_line_item
@@
-3131,7
+3250,7
@@
pers_name_surn_sect : OPEN DELIM TAG_SURN mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_PERS_NAME_SURN, PARENT, $<ctxt>5,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_PERS_NAME_SURN, PARENT, $<ctxt>5,
-
NULL
);
+
GEDCOM_MAKE_NULL(val1)
);
}
;
pers_name_nsfx_sect : OPEN DELIM TAG_NSFX mand_line_item
}
;
pers_name_nsfx_sect : OPEN DELIM TAG_NSFX mand_line_item
@@
-3144,7
+3263,7
@@
pers_name_nsfx_sect : OPEN DELIM TAG_NSFX mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_PERS_NAME_NSFX, PARENT, $<ctxt>5,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_PERS_NAME_NSFX, PARENT, $<ctxt>5,
-
NULL
);
+
GEDCOM_MAKE_NULL(val1)
);
}
;
}
;
@@
-3162,7
+3281,8
@@
place_struc_plac_sect : OPEN DELIM TAG_PLAC mand_line_item
place_struc_plac_subs
{ CHECK0 }
CLOSE
place_struc_plac_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUB_PLAC, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_SUB_PLAC, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-3187,7
+3307,7
@@
place_plac_form_sect : OPEN DELIM TAG_FORM mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_PLAC_FORM, PARENT, $<ctxt>5,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_PLAC_FORM, PARENT, $<ctxt>5,
-
NULL
);
+
GEDCOM_MAKE_NULL(val1)
);
}
;
}
;
@@
-3210,7
+3330,8
@@
source_cit_link_sect : OPEN DELIM TAG_SOUR DELIM POINTER
source_cit_link_subs
{ CHECK0 }
CLOSE
source_cit_link_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUB_SOUR, PARENT, $<ctxt>6, NULL);
+ { end_element(ELT_SUB_SOUR, PARENT, $<ctxt>6,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-3238,7
+3359,7
@@
source_cit_page_sect : OPEN DELIM TAG_PAGE mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_SOUR_PAGE, PARENT, $<ctxt>5,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_SOUR_PAGE, PARENT, $<ctxt>5,
-
NULL
);
+
GEDCOM_MAKE_NULL(val1)
);
}
;
}
;
@@
-3253,7
+3374,7
@@
source_cit_even_sect : OPEN DELIM TAG_EVEN mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_SOUR_EVEN, PARENT, $<ctxt>5,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_SOUR_EVEN, PARENT, $<ctxt>5,
-
NULL
);
+
GEDCOM_MAKE_NULL(val1)
);
}
;
}
;
@@
-3276,7
+3397,8
@@
source_cit_even_role_sect : OPEN DELIM TAG_ROLE mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_SOUR_EVEN_ROLE,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_SOUR_EVEN_ROLE,
- PARENT, $<ctxt>5, NULL);
+ PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-3290,7
+3412,7
@@
source_cit_data_sect : OPEN DELIM TAG_DATA
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_SOUR_DATA, PARENT, $<ctxt>4,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_SOUR_DATA, PARENT, $<ctxt>4,
-
NULL
);
+
GEDCOM_MAKE_NULL(val1)
);
}
;
}
;
@@
-3315,7
+3437,8
@@
source_cit_data_date_sect : OPEN DELIM TAG_DATE mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_SOUR_DATA_DATE,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_SOUR_DATA_DATE,
- PARENT, $<ctxt>5, NULL);
+ PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-3324,13
+3447,16
@@
source_cit_text_sect : OPEN DELIM TAG_TEXT mand_line_item
= start_element(ELT_SUB_SOUR_TEXT,
PARENT, $1, $3, $4,
GEDCOM_MAKE_STRING(val1, $4));
= start_element(ELT_SUB_SOUR_TEXT,
PARENT, $1, $3, $4,
GEDCOM_MAKE_STRING(val1, $4));
- START(TEXT, $1, $<ctxt>$)
+ reset_buffer(&concat_buffer);
+ safe_buf_append(&concat_buffer, $4);
+ START(TEXT, $1, $<ctxt>$)
}
source_cit_text_subs
{ CHECK0 }
CLOSE
}
source_cit_text_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUB_SOUR_TEXT, PARENT, $<ctxt>5,
- NULL);
+ { char* complete = get_buf_string(&concat_buffer);
+ end_element(ELT_SUB_SOUR_TEXT, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_STRING(val1, complete));
}
;
}
;
@@
-3353,7
+3479,7
@@
source_cit_quay_sect : OPEN DELIM TAG_QUAY mand_line_item
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_SOUR_QUAY, PARENT, $<ctxt>5,
{ CHECK0 }
CLOSE
{ end_element(ELT_SUB_SOUR_QUAY, PARENT, $<ctxt>5,
-
NULL
);
+
GEDCOM_MAKE_NULL(val1)
);
}
;
}
;
@@
-3361,12
+3487,16
@@
source_cit_emb_sect : OPEN DELIM TAG_SOUR mand_line_item
{ $<ctxt>$ = start_element(ELT_SUB_SOUR,
PARENT, $1, $3, $4,
GEDCOM_MAKE_STRING(val1, $4));
{ $<ctxt>$ = start_element(ELT_SUB_SOUR,
PARENT, $1, $3, $4,
GEDCOM_MAKE_STRING(val1, $4));
+ reset_buffer(&concat_buffer);
+ safe_buf_append(&concat_buffer, $4);
START(SOUR, $1, $<ctxt>$)
}
source_cit_emb_subs
{ CHECK0 }
CLOSE
START(SOUR, $1, $<ctxt>$)
}
source_cit_emb_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUB_SOUR, PARENT, $<ctxt>5, NULL);
+ { char* complete = get_buf_string(&concat_buffer);
+ end_element(ELT_SUB_SOUR, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_STRING(val1, complete));
}
;
}
;
@@
-3397,7
+3527,8
@@
source_repos_repo_sect : OPEN DELIM TAG_REPO mand_pointer
source_repos_repo_subs
{ CHECK0 }
CLOSE
source_repos_repo_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUB_REPO, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_SUB_REPO, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-3419,7
+3550,8
@@
caln_sect : OPEN DELIM TAG_CALN mand_line_item
caln_subs
{ CHECK0 }
CLOSE
caln_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUB_REPO_CALN, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_SUB_REPO_CALN, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-3440,7
+3572,8
@@
caln_medi_sect : OPEN DELIM TAG_MEDI mand_line_item
no_std_subs
{ CHECK0 }
CLOSE
no_std_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUB_REPO_CALN_MEDI, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_SUB_REPO_CALN_MEDI, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-3461,7
+3594,8
@@
spou_fam_fams_sect : OPEN DELIM TAG_FAMS mand_pointer
spou_fam_fams_subs
{ CHECK0 }
CLOSE
spou_fam_fams_subs
{ CHECK0 }
CLOSE
- { end_element(ELT_SUB_FAMS, PARENT, $<ctxt>5, NULL);
+ { end_element(ELT_SUB_FAMS, PARENT, $<ctxt>5,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-3515,7
+3649,7
@@
user_rec : OPEN DELIM opt_xref USERTAG
user_sects
{ CHECK0 }
CLOSE
user_sects
{ CHECK0 }
CLOSE
- { end_record(REC_USER, $<ctxt>7); }
+ { end_record(REC_USER, $<ctxt>7
, GEDCOM_MAKE_NULL(val1)
); }
;
user_sect : OPEN DELIM opt_xref USERTAG
{ if ($4.string[0] != '_') {
;
user_sect : OPEN DELIM opt_xref USERTAG
{ if ($4.string[0] != '_') {
@@
-3531,7
+3665,8
@@
user_sect : OPEN DELIM opt_xref USERTAG
user_sects
{ CHECK0 }
CLOSE
user_sects
{ CHECK0 }
CLOSE
- { end_element(ELT_USER, PARENT, $<ctxt>7, NULL);
+ { end_element(ELT_USER, PARENT, $<ctxt>7,
+ GEDCOM_MAKE_NULL(val1));
}
;
}
;
@@
-3579,38
+3714,36
@@
opt_line_item : /* empty */ { $$ = NULL; }
;
line_item : anychar { size_t i;
;
line_item : anychar { size_t i;
- CLEAR_BUFFER(line_item_buf);
- line_item_buf_ptr = line_item_buf;
- /* The following also takes care of '@@' */
+ reset_buffer(&line_item_buffer);
+ /* The following also takes care of '@@' */
if (!strncmp($1, "@@", 3))
if (!strncmp($1, "@@", 3))
- *line_item_buf_ptr++ = '@';
+ SAFE_BUF_ADDCHAR(&line_item_buffer, '@')
else
for (i=0; i < strlen($1); i++)
else
for (i=0; i < strlen($1); i++)
- *line_item_buf_ptr++ = $1[i];
- $$ =
line_item_buf
;
+ SAFE_BUF_ADDCHAR(&line_item_buffer, $1[i])
+ $$ =
get_buf_string(&line_item_buffer)
;
}
| ESCAPE { size_t i;
}
| ESCAPE { size_t i;
- CLEAR_BUFFER(line_item_buf);
- line_item_buf_ptr = line_item_buf;
- for (i=0; i < strlen($1); i++)
- *line_item_buf_ptr++ = $1[i];
- $$ = line_item_buf;
+ reset_buffer(&line_item_buffer);
+ for (i=0; i < strlen($1); i++)
+ SAFE_BUF_ADDCHAR(&line_item_buffer, $1[i])
+ $$ = get_buf_string(&line_item_buffer);
}
| line_item anychar
{ size_t i;
/* The following also takes care of '@@' */
if (!strncmp($2, "@@", 3))
}
| line_item anychar
{ size_t i;
/* The following also takes care of '@@' */
if (!strncmp($2, "@@", 3))
- *line_item_buf_ptr++ = '@';
+ SAFE_BUF_ADDCHAR(&line_item_buffer, '@')
else
for (i=0; i < strlen($2); i++)
else
for (i=0; i < strlen($2); i++)
- *line_item_buf_ptr++ = $2[i];
- $$ =
line_item_buf
;
+ SAFE_BUF_ADDCHAR(&line_item_buffer, $2[i])
+ $$ =
get_buf_string(&line_item_buffer)
;
}
| line_item ESCAPE
{ size_t i;
for (i=0; i < strlen($2); i++)
}
| line_item ESCAPE
{ size_t i;
for (i=0; i < strlen($2); i++)
- *line_item_buf_ptr++ = $2[i];
- $$ =
line_item_buf
;
+ SAFE_BUF_ADDCHAR(&line_item_buffer, $2[i])
+ $$ =
get_buf_string(&line_item_buffer)
;
}
| line_item error anychar { HANDLE_ERROR; }
| line_item error ESCAPE { HANDLE_ERROR; }
}
| line_item error anychar { HANDLE_ERROR; }
| line_item error ESCAPE { HANDLE_ERROR; }
@@
-3625,6
+3758,7
@@
error_subs : /* empty */
;
error_sect : OPEN DELIM opt_xref anytag opt_value error_subs CLOSE { }
;
error_sect : OPEN DELIM opt_xref anytag opt_value error_subs CLOSE { }
+ ;
gen_sect : OPEN DELIM opt_xref anystdtag
{ INVALID_TAG($4.string); }
gen_sect : OPEN DELIM opt_xref anystdtag
{ INVALID_TAG($4.string); }
@@
-3793,6
+3927,7
@@
anystdtag : TAG_ABBR
| TAG_VERS { }
| TAG_WIFE { }
| TAG_WILL { }
| TAG_VERS { }
| TAG_WIFE { }
| TAG_WILL { }
+ ;
%%
%%
@@
-3884,6
+4019,16
@@
void clean_up()
}
}
}
}
+void cleanup_concat_buffer()
+{
+ cleanup_buffer(&concat_buffer);
+}
+
+void cleanup_line_item_buffer()
+{
+ cleanup_buffer(&line_item_buffer);
+}
+
/* Enabling debug mode */
/* level 0: no debugging */
/* level 1: only internal */
/* Enabling debug mode */
/* level 0: no debugging */
/* level 1: only internal */