X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=gom%2Fsource_citation.c;h=3738636fc086c90e207d17209ac0c118e39df7e7;hb=d8d5e051c5e0917e639a9320e9a4a01d6f0e83b3;hp=c79efcce1ce97c94cb92647fcb11047ae3ce87aa;hpb=763e8737b5118c5f23dca84a3290c2d805bbefe6;p=gedcom-parse.git diff --git a/gom/source_citation.c b/gom/source_citation.c index c79efcc..3738636 100644 --- a/gom/source_citation.c +++ b/gom/source_citation.c @@ -133,6 +133,10 @@ Gedcom_ctxt sub_cit_text_start(_ELT_PARAMS_) } DEFINE_SUB_MAKEFUNC(source_citation) +DEFINE_SUB_ADDFUNC(source_citation) +DEFINE_SUB_FINDFUNC(source_citation) +DEFINE_SUB_REMOVEFUNC(source_citation) +DEFINE_SUB_MOVEFUNC(source_citation) DEFINE_STRING_CB(source_citation, sub_cit_page_start, page) DEFINE_STRING_CB(source_citation, sub_cit_even_start, event) @@ -166,6 +170,15 @@ void citation_subscribe() def_elt_end); } +void UNREFALLFUNC(text)(struct text* obj) +{ + if (obj) { + struct text* runner; + for (runner = obj; runner; runner = runner->next) + UNREFALLFUNC(user_data)(runner->extra); + } +} + void CLEANFUNC(text)(struct text* t) { if (t) { @@ -173,6 +186,26 @@ void CLEANFUNC(text)(struct text* t) } } +DEFINE_SUB_MAKEFUNC(text) +DEFINE_SUB_ADDFUNC(text) +DEFINE_SUB_FINDFUNC(text) +DEFINE_SUB_REMOVEFUNC(text) +DEFINE_SUB_MOVEFUNC(text) + +void UNREFALLFUNC(source_citation)(struct source_citation* obj) +{ + if (obj) { + struct source_citation* runner; + for (runner = obj; runner; runner = runner->next) { + unref_xref_value(runner->reference); + UNREFALLFUNC(text)(runner->text); + UNREFALLFUNC(multimedia_link)(runner->mm_link); + UNREFALLFUNC(note_sub)(runner->note); + UNREFALLFUNC(user_data)(runner->extra); + } + } +} + void CLEANFUNC(source_citation)(struct source_citation* cit) { if (cit) {