X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=gedcom%2Fgedcom.y;h=3d5243a90c068fd68a39235adf3479db1b6e878b;hb=7ea4ef8cae7b52f2bf66371a5e7b493cbd12900e;hp=f305257db49f2f0f6e59a7c1db9c17c4347036ca;hpb=5962cdcec2493fc473f86aa6077d4b420c406112;p=gedcom-parse.git diff --git a/gedcom/gedcom.y b/gedcom/gedcom.y index f305257..3d5243a 100644 --- a/gedcom/gedcom.y +++ b/gedcom/gedcom.y @@ -146,6 +146,7 @@ #include "encoding.h" #include "interface.h" #include "date.h" +#include "age.h" #include "xref.h" #include "compat.h" @@ -663,9 +664,9 @@ head_date_time_sect : OPEN DELIM TAG_TIME mand_line_item /* HEAD.TIME (Only for 'Lifelines' compatibility) */ /* Just ignore the time... */ -head_time_sect : OPEN DELIM TAG_TIME opt_line_item - { } - CLOSE +head_time_sect : OPEN DELIM TAG_TIME opt_line_item CLOSE + { gedcom_warning(_("Header change time lost in the compatibility")); + } ; /* HEAD.SUBM */ @@ -2014,7 +2015,7 @@ assoc_struc_sub : asso_sect /* 0:M */ asso_sect : OPEN DELIM TAG_ASSO mand_pointer { struct xref_value *xr = gedcom_parse_xref($4, XREF_USED, - XREF_INDI); + XREF_ANY); if (xr == NULL) HANDLE_ERROR; $$ = start_element(ELT_SUB_ASSO, PARENT, $1, $3, $4, @@ -2241,10 +2242,11 @@ event_detail_date_sect : OPEN DELIM TAG_DATE mand_line_item } ; event_detail_age_sect : OPEN DELIM TAG_AGE mand_line_item - { $$ + { struct age_value age = gedcom_parse_age($4); + $$ = start_element(ELT_SUB_EVT_AGE, PARENT, $1, $3, $4, - GEDCOM_MAKE_STRING(val1, $4)); + GEDCOM_MAKE_AGE(val1, age)); START(AGE, $$) } no_std_subs @@ -2347,9 +2349,10 @@ fam_even_husb_sub : fam_even_age_sect { OCCUR2(AGE, 1, 1) } ; fam_even_age_sect : OPEN DELIM TAG_AGE mand_line_item - { $$ = start_element(ELT_SUB_FAM_EVT_AGE, + { struct age_value age = gedcom_parse_age($4); + $$ = start_element(ELT_SUB_FAM_EVT_AGE, PARENT, $1, $3, $4, - GEDCOM_MAKE_STRING(val1, $4)); + GEDCOM_MAKE_AGE(val1, age)); START(AGE, $$) } no_std_subs