X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=gom%2Fsource_event.c;h=a7756c38968e59c95a03584f03b52599f09a80c3;hb=60162324857b1e8d84b8346d99f8b7dce07d0d40;hp=02882dc113c024250bb5b7f1702beb010ad2efb8;hpb=763e8737b5118c5f23dca84a3290c2d805bbefe6;p=gedcom-parse.git diff --git a/gom/source_event.c b/gom/source_event.c index 02882dc..a7756c3 100644 --- a/gom/source_event.c +++ b/gom/source_event.c @@ -47,11 +47,12 @@ Gedcom_ctxt sub_sour_even_start(_ELT_PARAMS_) free(evt); } else { - switch (ctxt->ctxt_type) { + int type = ctxt_type(ctxt); + switch (type) { case ELT_SOUR_DATA: ADDFUNC2(source,source_event)(ctxt, evt); break; default: - UNEXPECTED_CONTEXT(ctxt->ctxt_type); + UNEXPECTED_CONTEXT(type); } result = MAKE_GOM_CTXT(elt, source_event, evt); } @@ -62,6 +63,10 @@ Gedcom_ctxt sub_sour_even_start(_ELT_PARAMS_) } DEFINE_SUB_MAKEFUNC(source_event) +DEFINE_SUB_ADDFUNC(source_event) +DEFINE_SUB_FINDFUNC(source_event) +DEFINE_SUB_REMOVEFUNC(source_event) +DEFINE_SUB_MOVEFUNC(source_event) DEFINE_DATE_CB(source_event, sub_sour_even_date_start, date_period) DEFINE_STRING_CB(source_event, sub_sour_even_plac_start, jurisdiction) @@ -78,6 +83,16 @@ void source_event_subscribe() sub_sour_even_plac_start, def_elt_end); } +void UNREFALLFUNC(source_event)(struct source_event* obj) +{ + if (obj) { + struct source_event* runner; + for (runner = obj; runner; runner = runner->next) { + UNREFALLFUNC(user_data)(runner->extra); + } + } +} + void CLEANFUNC(source_event)(struct source_event* evt) { if (evt) {