X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=gom%2Fsource_description.c;h=02d093fbeb0cd6707e71e055fa06e55c921fa4e2;hb=473f146038f88434e3edd070dfa42390bd0df60f;hp=87f34abad7390f04267f583dde6e78b0534b8fc3;hpb=763e8737b5118c5f23dca84a3290c2d805bbefe6;p=gedcom-parse.git diff --git a/gom/source_description.c b/gom/source_description.c index 87f34ab..02d093f 100644 --- a/gom/source_description.c +++ b/gom/source_description.c @@ -47,11 +47,12 @@ Gedcom_ctxt sub_sour_caln_start(_ELT_PARAMS_) free(desc); } else { - switch (ctxt->ctxt_type) { + int type = ctxt_type(ctxt); + switch (type) { case ELT_SUB_REPO: ADDFUNC2(source,source_description)(ctxt, desc); break; default: - UNEXPECTED_CONTEXT(ctxt->ctxt_type); + UNEXPECTED_CONTEXT(type); } result = MAKE_GOM_CTXT(elt, source_description, desc); } @@ -62,6 +63,10 @@ Gedcom_ctxt sub_sour_caln_start(_ELT_PARAMS_) } DEFINE_SUB_MAKEFUNC(source_description) +DEFINE_SUB_ADDFUNC(source_description) +DEFINE_SUB_FINDFUNC(source_description) +DEFINE_SUB_REMOVEFUNC(source_description) +DEFINE_SUB_MOVEFUNC(source_description) DEFINE_STRING_CB(source_description, sub_sour_caln_medi_start, media) @@ -75,6 +80,16 @@ void source_description_subscribe() sub_sour_caln_medi_start, def_elt_end); } +void UNREFALLFUNC(source_description)(struct source_description* obj) +{ + if (obj) { + struct source_description* runner; + for (runner = obj; runner; runner = runner->next) { + UNREFALLFUNC(user_data)(runner->extra); + } + } +} + void CLEANFUNC(source_description)(struct source_description* desc) { if (desc) {