}
if (! err) {
- switch (ctxt->ctxt_type) {
+ int type = ctxt_type(ctxt);
+ switch (type) {
case REC_FAM:
ADDFUNC2(family,event)(ctxt, evt); break;
case REC_INDI:
ADDFUNC2(individual,event)(ctxt, evt); break;
default:
- UNEXPECTED_CONTEXT(ctxt->ctxt_type);
+ UNEXPECTED_CONTEXT(type);
}
result = MAKE_GOM_CTXT(elt, event, evt);
}
}
if (! err) {
- switch (ctxt->ctxt_type) {
+ int type = ctxt_type(ctxt);
+ switch (type) {
case REC_INDI:
ADDFUNC2_TOVAR(individual,event,attribute)(ctxt, evt); break;
default:
- UNEXPECTED_CONTEXT(ctxt->ctxt_type);
+ UNEXPECTED_CONTEXT(type);
}
result = MAKE_GOM_CTXT(elt, event, evt);
}
}
DEFINE_SUB_MAKEFUNC(event)
+DEFINE_SUB_ADDFUNC(event)
+DEFINE_SUB_FINDFUNC(event)
+DEFINE_SUB_REMOVEFUNC(event)
+DEFINE_SUB_MOVEFUNC(event)
DEFINE_STRING_CB(event, sub_evt_type_start, type)
DEFINE_DATE_CB(event, sub_evt_date_start, date)
if (evt) {
int err = 0;
struct age_value age = GEDCOM_AGE(parsed_value);
- switch (ctxt->ctxt_type) {
+ int type = ctxt_type(ctxt);
+ switch (type) {
case ELT_SUB_FAM_EVT_HUSB:
evt->husband_age = gedcom_new_age_value(&age);
if (! evt->husband_age) {
}
break;
default:
- UNEXPECTED_CONTEXT(ctxt->ctxt_type);
+ UNEXPECTED_CONTEXT(type);
}
if (! err)
result = MAKE_GOM_CTXT(elt, event, evt);
sub_evt_caus_start, def_elt_end);
}
+void UNREFALLFUNC(event)(struct event* obj)
+{
+ if (obj) {
+ struct event* runner;
+ for (runner = obj; runner; runner = runner->next) {
+ UNREFALLFUNC(place)(runner->place);
+ UNREFALLFUNC(address)(runner->address);
+ UNREFALLFUNC(source_citation)(runner->citation);
+ UNREFALLFUNC(multimedia_link)(runner->mm_link);
+ UNREFALLFUNC(note_sub)(runner->note);
+ unref_xref_value(runner->family);
+ UNREFALLFUNC(user_data)(runner->extra);
+ }
+ }
+}
+
void CLEANFUNC(event)(struct event* evt)
{
if (evt) {