X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=gom%2Fevent.c;h=7d5f92e369ce5d1ed20ad47afe5267f08fb1557e;hb=5684a3ce93e11c887cbf3c237fd007d517cb2c30;hp=48515b7315b22345b67e7a54951b8940b8929541;hpb=082066d0c776403b70c366f9a7d1333c7a9fac15;p=gedcom-parse.git diff --git a/gom/event.c b/gom/event.c index 48515b7..7d5f92e 100644 --- a/gom/event.c +++ b/gom/event.c @@ -154,14 +154,14 @@ Gedcom_ctxt sub_fam_evt_age_start(_ELT_PARAMS_) struct age_value age = GEDCOM_AGE(parsed_value); switch (ctxt->ctxt_type) { case ELT_SUB_FAM_EVT_HUSB: - evt->husband_age = dup_age(age); + evt->husband_age = gedcom_new_age_value(&age); if (! evt->husband_age) { MEMORY_ERROR; err = 1; } break; case ELT_SUB_FAM_EVT_WIFE: - evt->wife_age = dup_age(age); + evt->wife_age = gedcom_new_age_value(&age); if (! evt->wife_age) { MEMORY_ERROR; err = 1; @@ -366,6 +366,9 @@ int write_events(Gedcom_write_hndl hndl, int parent, EventType evt_type, if (obj->type) result |= gedcom_write_element_str(hndl, ELT_SUB_EVT_TYPE, 0, obj_elt, obj->type); + if (obj->date) + result |= gedcom_write_element_date(hndl, ELT_SUB_EVT_DATE, 0, + obj_elt, obj->date); if (obj->place) result |= write_place(hndl, obj_elt, obj->place); if (obj->address) @@ -373,6 +376,9 @@ int write_events(Gedcom_write_hndl hndl, int parent, EventType evt_type, for (i = 0; i < 3 && obj->phone[i]; i++) result |= gedcom_write_element_str(hndl, ELT_SUB_PHON, 0, obj_elt, obj->phone[i]); + if (obj->age) + result |= gedcom_write_element_age(hndl, ELT_SUB_EVT_AGE, 0, + obj_elt, obj->age); if (obj->agency) result |= gedcom_write_element_str(hndl, ELT_SUB_EVT_AGNC, 0, obj_elt, obj->agency); @@ -385,6 +391,20 @@ int write_events(Gedcom_write_hndl hndl, int parent, EventType evt_type, result |= write_multimedia_links(hndl, obj_elt, obj->mm_link); if (obj->note) result |= write_note_subs(hndl, obj_elt, obj->note); + if (obj->husband_age) { + result |= gedcom_write_element_str(hndl, ELT_SUB_FAM_EVT_HUSB, 0, + obj_elt, NULL); + result |= gedcom_write_element_age(hndl, ELT_SUB_FAM_EVT_AGE, 0, + ELT_SUB_FAM_EVT_HUSB, + obj->husband_age); + } + if (obj->wife_age) { + result |= gedcom_write_element_str(hndl, ELT_SUB_FAM_EVT_WIFE, 0, + obj_elt, NULL); + result |= gedcom_write_element_age(hndl, ELT_SUB_FAM_EVT_AGE, 0, + ELT_SUB_FAM_EVT_WIFE, + obj->wife_age); + } if (obj->family) { int fam_obj_elt = get_gedcom_fam_elt(obj_elt); result |= gedcom_write_element_xref(hndl, fam_obj_elt, 0,