X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=gom%2Fmultimedia_link.c;h=f6044ff0b1eee43f764df9c2c91ac7075b8ed172;hb=1568cb8ab16ecc1984d0d00b8ae8189c32508b08;hp=2b5a1f13fc36af873dc8356e543b9707b3287135;hpb=bdf47fdee469d5a1d7ddfd06a0e4b26f3b40b0f4;p=gedcom-parse.git diff --git a/gom/multimedia_link.c b/gom/multimedia_link.c index 2b5a1f1..f6044ff 100644 --- a/gom/multimedia_link.c +++ b/gom/multimedia_link.c @@ -123,3 +123,38 @@ void multimedia_link_cleanup(struct multimedia_link* mm) DESTROY_CHAIN_ELTS(user_data, mm->extra, user_data_cleanup); } } + +int write_multimedia_links(Gedcom_write_hndl hndl, int parent, + struct multimedia_link* mm) +{ + int result = 0; + struct multimedia_link* obj; + + if (!mm) return 1; + + for (obj = mm; obj; obj = obj->next) { + if (obj->reference) { + result |= gedcom_write_element_xref(hndl, ELT_SUB_MULTIM_OBJE, 0, + parent, obj->reference); + } + else { + result |= gedcom_write_element_str(hndl, ELT_SUB_MULTIM_OBJE, 0, + parent, NULL); + if (obj->form) + result |= gedcom_write_element_str(hndl, ELT_SUB_MULTIM_OBJE_FORM, 0, + ELT_SUB_MULTIM_OBJE, obj->form); + if (obj->title) + result |= gedcom_write_element_str(hndl, ELT_SUB_MULTIM_OBJE_TITL, 0, + ELT_SUB_MULTIM_OBJE, obj->title); + if (obj->file) + result |= gedcom_write_element_str(hndl, ELT_SUB_MULTIM_OBJE_FILE, 0, + ELT_SUB_MULTIM_OBJE, obj->file); + if (obj->note) + result |= write_note_subs(hndl, ELT_SUB_MULTIM_OBJE, obj->note); + if (obj->extra) + result |= write_user_data(hndl, obj->extra); + } + } + + return result; +}