X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=gom%2Fsource_event.c;h=ce2f873a2944ecea1bd9602bb65e38dd1211e4d3;hb=89ff39aaedee4aa65dec40032686e8b2f8ca272a;hp=f7c7a8d2a1072dab43f799408fcaa59adbaec56f;hpb=bdf47fdee469d5a1d7ddfd06a0e4b26f3b40b0f4;p=gedcom-parse.git diff --git a/gom/source_event.c b/gom/source_event.c index f7c7a8d..ce2f873 100644 --- a/gom/source_event.c +++ b/gom/source_event.c @@ -94,3 +94,27 @@ void source_event_cleanup(struct source_event* evt) DESTROY_CHAIN_ELTS(user_data, evt->extra, user_data_cleanup); } } + +int write_source_events(Gedcom_write_hndl hndl, int parent, + struct source_event *evt) +{ + int result = 0; + struct source_event* obj; + + if (!evt) return 1; + + for (obj = evt; obj; obj = obj->next) { + result |= gedcom_write_element_str(hndl, ELT_SOUR_DATA_EVEN, 0, + parent, obj->recorded_events); + if (obj->date_period) + result |= gedcom_write_element_date(hndl, ELT_SOUR_DATA_EVEN_DATE, 0, + ELT_SOUR_DATA_EVEN, obj->date_period); + if (obj->jurisdiction) + result |= gedcom_write_element_str(hndl, ELT_SOUR_DATA_EVEN_PLAC, 0, + ELT_SOUR_DATA_EVEN, obj->jurisdiction); + if (obj->extra) + result |= write_user_data(hndl, obj->extra); + } + + return result; +}