X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=gom%2Fsource_citation.c;h=406972a7b57a5df92eceee4765bb2e44fe8b2f7f;hb=866835ac8928d7e40919c2ca59799cb37023856f;hp=64ad42b4e7bb34ee1331bdc8424185155c4fe2cb;hpb=327069289a45ed1e91d8bfc07d7d89cfbad057d6;p=gedcom-parse.git diff --git a/gom/source_citation.c b/gom/source_citation.c index 64ad42b..406972a 100644 --- a/gom/source_citation.c +++ b/gom/source_citation.c @@ -49,10 +49,11 @@ Gedcom_ctxt sub_citation_start(_ELT_PARAMS_) else { struct source_citation *cit = SUB_MAKEFUNC(source_citation)(); if (cit) { + int type = ctxt_type(ctxt); if (GEDCOM_IS_XREF_PTR(parsed_value)) cit->reference = GEDCOM_XREF_PTR(parsed_value); - switch (ctxt->ctxt_type) { + switch (type) { case ELT_SUB_PLAC: ADDFUNC2(place,source_citation)(ctxt, cit); break; case ELT_SUB_FAM_EVT: @@ -81,7 +82,7 @@ Gedcom_ctxt sub_citation_start(_ELT_PARAMS_) case REC_NOTE: ADDFUNC2(note,source_citation)(ctxt, cit); break; default: - UNEXPECTED_CONTEXT(ctxt->ctxt_type); + UNEXPECTED_CONTEXT(type); } result = MAKE_GOM_CTXT(elt, source_citation, cit); } @@ -108,7 +109,7 @@ void sub_citation_end(_ELT_END_PARAMS_) cit->description = newvalue; } } - destroy_gom_ctxt(ctxt); + def_elt_end(elt, parent, self, parsed_value); } } @@ -133,6 +134,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) @@ -182,6 +187,12 @@ 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) {