X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=gedcom%2Fcompat.h;h=a8c2a071ce13cd432d218ee5fa52cc8219fa1408;hb=eb6f3993afd2330bf4ae536bc8679d791b681dc4;hp=31e7576e7c080d5eb912f71375a01730873e60a5;hpb=fffe9618ff8a5cfcac207f231b531615dfb0e38f;p=gedcom-parse.git diff --git a/gedcom/compat.h b/gedcom/compat.h index 31e7576..a8c2a07 100644 --- a/gedcom/compat.h +++ b/gedcom/compat.h @@ -24,22 +24,69 @@ #ifndef __COMPAT_H #define __COMPAT_H +#include "buffer.h" #include "gedcom.h" +#include "gedcom_internal.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_CONC_NEEDS_SPACE, + C_NO_GEDC_FORM, + C_NOTE_NOTE, + C_TAB_CHARACTER, + 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); +/* C_NO_SUBMITTER */ void compat_generate_submitter_link(Gedcom_ctxt parent); void compat_generate_submitter(); + +/* C_NO_GEDC, C_NO_GEDC_FORM */ void compat_generate_gedcom(Gedcom_ctxt parent); +void compat_generate_gedcom_form(Gedcom_ctxt parent); + +/* C_NO_CHAR */ int compat_generate_char(Gedcom_ctxt parent); + +/* C_HEAD_TIME */ +void compat_save_head_date_context(Gedcom_ctxt parent); +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_INDI_ATTR */ Gedcom_ctxt compat_generate_resi_start(Gedcom_ctxt parent); void compat_generate_resi_end(Gedcom_ctxt parent, Gedcom_ctxt self); +/* C_551_TAGS */ +int compat_check_551_tag(const char* tag, struct safe_buffer* b); + +/* C_NO_SLGC_FAMC */ +void compat_generate_slgc_famc_link(Gedcom_ctxt parent); +void compat_generate_slgc_famc_fam(); + +/* C_SUBM_COMM */ +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 */