Writing dates and ages.
[gedcom-parse.git] / gom / submitter.c
index 39046aba4d5c231b37e5ca6f6ad07ca11ca4c02b..107653f2686811db9e0aa531ba0e33fd375e4f1e 100644 (file)
@@ -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;
+}
+