X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=gom%2Fsubmitter.c;h=107653f2686811db9e0aa531ba0e33fd375e4f1e;hb=1568cb8ab16ecc1984d0d00b8ae8189c32508b08;hp=39046aba4d5c231b37e5ca6f6ad07ca11ca4c02b;hpb=bdf47fdee469d5a1d7ddfd06a0e4b26f3b40b0f4;p=gedcom-parse.git diff --git a/gom/submitter.c b/gom/submitter.c index 39046ab..107653f 100644 --- a/gom/submitter.c +++ b/gom/submitter.c @@ -87,7 +87,7 @@ void submitter_add_address(Gom_ctxt ctxt, struct address* address) subm->address = address; } -void submitter_add_phone(Gom_ctxt ctxt, char *phone) +void submitter_add_phone(Gom_ctxt ctxt, const char *phone) { struct submitter *subm = SAFE_CTXT_CAST(submitter, ctxt); if (subm) { @@ -151,7 +151,7 @@ struct submitter* gom_get_first_submitter() return gom_first_submitter; } -struct submitter* make_submitter_record(char* xrefstr) +struct submitter* make_submitter_record(const char* xrefstr) { struct submitter* subm = NULL; MAKE_CHAIN_ELT(submitter, gom_first_submitter, subm); @@ -161,3 +161,41 @@ struct submitter* make_submitter_record(char* xrefstr) } return subm; } + +int write_submitters(Gedcom_write_hndl hndl) +{ + int result = 0; + int i; + struct submitter* obj; + + for (obj = gom_first_submitter; obj; obj = obj->next) { + result |= gedcom_write_record_str(hndl, REC_SUBM, 0, + obj->xrefstr, NULL); + if (obj->name) + result |= gedcom_write_element_str(hndl, ELT_SUBM_NAME, 0, REC_SUBM, + obj->name); + if (obj->address) + result |= write_address(hndl, REC_SUBM, obj->address); + for (i = 0; i < 3 && obj->phone[i]; i++) + result |= gedcom_write_element_str(hndl, ELT_SUB_PHON, 0, REC_SUBM, + obj->phone[i]); + if (obj->mm_link) + result |= write_multimedia_links(hndl, REC_SUBM, obj->mm_link); + for (i = 0; i < 3 && obj->language[i]; i++) + result |= gedcom_write_element_str(hndl, ELT_SUBM_LANG, 0, REC_SUBM, + obj->language[i]); + if (obj->record_file_nr) + result |= gedcom_write_element_str(hndl, ELT_SUBM_RFN, 0, REC_SUBM, + obj->record_file_nr); + if (obj->record_id) + result |= gedcom_write_element_str(hndl, ELT_SUBM_RIN, 0, REC_SUBM, + obj->record_id); + if (obj->change_date) + result |= write_change_date(hndl, REC_SUBM, obj->change_date); + if (obj->extra) + result |= write_user_data(hndl, obj->extra); + } + + return result; +} +