Change mandatory but empty values to "-".
[gedcom-parse.git] / gedcom / compat.h
index 31e7576e7c080d5eb912f71375a01730873e60a5..a901197c79aa438c42a79c0270e81179560db89c 100644 (file)
 #ifndef __COMPAT_H
 #define __COMPAT_H
 
+#include "buffer.h"
 #include "gedcom.h"
 
-extern int compat_at;
+typedef enum _COMPAT_RULES {
+  C_NO_SUBMITTER,
+  C_INDI_ADDR,
+  C_NOTE_NO_VALUE,
+  C_NO_GEDC,
+  C_NO_CHAR,
+  C_HEAD_TIME,
+  C_NO_DOUBLE_AT,
+  C_NO_REQUIRED_VALUES,
+  C_551_TAGS,
+  C_NO_SLGC_FAMC,
+  C_SUBM_COMM,
+  C_DOUBLE_DATES_4,
+  C_NR_OF_RULES
+} Compat_rule;
 
-enum _COMPAT {
-  C_FTREE = 0x01,
-  C_LIFELINES = 0x02
-};
+void set_compatibility_program(const char* program);
+void set_compatibility_version(const char* version);
+void compute_compatibility();
+int  compat_mode(Compat_rule rule);
 
-void set_compatibility(const char* program);
-int  compat_mode(int flags); 
 void compat_generate_submitter_link(Gedcom_ctxt parent);
 void compat_generate_submitter();
+
 void compat_generate_gedcom(Gedcom_ctxt parent);
+
 int  compat_generate_char(Gedcom_ctxt parent);
+
 Gedcom_ctxt compat_generate_resi_start(Gedcom_ctxt parent);
 void compat_generate_resi_end(Gedcom_ctxt parent, Gedcom_ctxt self);
 
+int  compat_check_551_tag(const char* tag, struct safe_buffer* b);
+
+void compat_generate_slgc_famc_link(Gedcom_ctxt parent);
+void compat_generate_slgc_famc_fam();
+
+int  compat_check_subm_comm(const char* tag, const char* parent_tag,
+                           struct safe_buffer* b);
+void compat_close_subm_comm();
+int  compat_check_subm_comm_cont(const char* tag);
+Gedcom_ctxt compat_subm_comm_cont_start(Gedcom_ctxt parent, char* str);
+void compat_subm_comm_cont_end(Gedcom_ctxt parent, Gedcom_ctxt self);
+
 #endif /* __COMPAT_H */