Allow elements out of context.
[gedcom-parse.git] / gedcom / compat.h
index a8c2a071ce13cd432d218ee5fa52cc8219fa1408..055b0f0d1a7baf09f675d4f90f67b71600a1c978 100644 (file)
@@ -45,6 +45,11 @@ typedef enum _COMPAT_RULES {
   C_NO_GEDC_FORM,
   C_NOTE_NOTE,
   C_TAB_CHARACTER,
+  C_SUBM_CTRY,
+  C_NOTE_TOO_LONG,
+  C_NOTE_CONC_SOUR,
+  C_NONSTD_SOUR_TAGS,
+  C_PAF_DATES,
   C_NR_OF_RULES
 } Compat_rule;
 
@@ -52,6 +57,7 @@ void set_compatibility_program(const char* program);
 void set_compatibility_version(const char* version);
 void compute_compatibility();
 int  compat_mode(Compat_rule rule);
+void compat_close();
 
 /* C_NO_SUBMITTER */
 void compat_generate_submitter_link(Gedcom_ctxt parent);
@@ -70,6 +76,13 @@ Gedcom_ctxt compat_generate_head_time_start(int level, struct tag_struct ts,
                                            char* value);
 void compat_generate_head_time_end(Gedcom_ctxt self);
 
+/* C_SUBM_CTRY */
+void compat_save_ctry_parent_context(Gedcom_ctxt parent);
+Gedcom_ctxt compat_generate_addr_ctry_start(int level, struct tag_struct ts,
+                                           char* value);
+void compat_generate_addr_ctry_end(Gedcom_ctxt self);
+void compat_free_ctry_parent_context();
+
 /* C_INDI_ATTR */
 Gedcom_ctxt compat_generate_resi_start(Gedcom_ctxt parent);
 void compat_generate_resi_end(Gedcom_ctxt parent, Gedcom_ctxt self);
@@ -89,4 +102,24 @@ 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);
 
+/* C_NOTE_TOO_LONG */
+int  compat_long_line(int level, int tag);
+char* compat_long_line_get_prefix(char* str);
+void compat_long_line_finish(Gedcom_ctxt parent, int level);
+
+/* C_NOTE_CONC_SOUR */
+Gedcom_ctxt compat_generate_note_sour_start(Gedcom_ctxt parent,
+                                           int level, struct tag_struct ts,
+                                           char* pointer);
+void compat_generate_note_sour_end(Gedcom_ctxt self);
+
+/* C_NONSTD_SOUR_TAGS */
+int  compat_check_sour_tag(const char* tag, struct safe_buffer* b);
+Gedcom_ctxt compat_generate_nonstd_sour_start(Gedcom_ctxt parent, int level,
+                                             struct tag_struct ts,
+                                             char* value,
+                                             struct safe_buffer* b);
+void compat_generate_nonstd_sour_end(Gedcom_ctxt parent, Gedcom_ctxt self);
+int compat_generate_nonstd_sour_state();
+
 #endif /* __COMPAT_H */