X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=src%2Fgedcom%2Ffamilia_gedcom.c;h=dcb80328a5cfc883de9192ce3818e4da4720f234;hb=23eeb22223e34cfae61897bc1b15f45c41cc6df5;hp=740d6b2a82c5d353b3637bc80eef8660bebabf2a;hpb=316265277d8e381c76496643edd3285fbfd5b244;p=familia.git diff --git a/src/gedcom/familia_gedcom.c b/src/gedcom/familia_gedcom.c index 740d6b2..dcb8032 100644 --- a/src/gedcom/familia_gedcom.c +++ b/src/gedcom/familia_gedcom.c @@ -167,6 +167,29 @@ Gedcom_ctxt familia_gedcom_individual_add_family(Gedcom_elt elt, return parent; } + +/** + * Adds child to the family + */ +Gedcom_ctxt familia_gedcom_family_add_child(Gedcom_elt elt, + Gedcom_ctxt parent, + int level, + char* tag, + char* raw_value, + int parsed_tag, + Gedcom_val parsed_value) +{ + void * object = NULL; + /* XREF_PTR(FAM) */ + struct xref_value *xr = GEDCOM_XREF_PTR(parsed_value); + + object = familia_memory_stack_find(xr->string, FS_FAMILY); + /* parent: REC_INDI */ + familia_family_add_child(object, parent); + + return parent; +} + /* void familia_gedcom_individual_family_end(Gedcom_elt elt, Gedcom_ctxt parent, @@ -208,7 +231,10 @@ void familia_gedcom_init() familia_gedcom_individual_last_name_start, NULL); gedcom_subscribe_to_element(ELT_SUB_FAMS, - familia_gedcom_individual_add_family, + familia_gedcom_family_add_child, + NULL); + gedcom_subscribe_to_element(ELT_SUB_FAMC, + familia_gedcom_family_add_child, NULL); familia_memory_stack_init();