1 /* Header for compatibility handling for the GEDCOM parser.
2 Copyright (C) 2001, 2002 The Genes Development Team
3 This file is part of the Gedcom parser library.
4 Contributed by Peter Verthez <Peter.Verthez@advalvas.be>, 2001.
6 The Gedcom parser library is free software; you can redistribute it
7 and/or modify it under the terms of the GNU Lesser General Public
8 License as published by the Free Software Foundation; either
9 version 2.1 of the License, or (at your option) any later version.
11 The Gedcom parser library is distributed in the hope that it will be
12 useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Lesser General Public License for more details.
16 You should have received a copy of the GNU Lesser General Public
17 License along with the Gedcom parser library; if not, write to the
18 Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
29 #include "gedcom_internal.h"
31 typedef enum _COMPAT_RULES {
56 void set_compatibility_program(const char* program);
57 void set_compatibility_version(const char* version);
58 void compute_compatibility();
59 int compat_mode(Compat_rule rule);
62 void compat_generate_submitter_link(Gedcom_ctxt parent);
63 void compat_generate_submitter();
65 /* C_NO_GEDC, C_NO_GEDC_FORM */
66 void compat_generate_gedcom(Gedcom_ctxt parent);
67 void compat_generate_gedcom_form(Gedcom_ctxt parent);
70 int compat_generate_char(Gedcom_ctxt parent);
73 void compat_save_head_date_context(Gedcom_ctxt parent);
74 Gedcom_ctxt compat_generate_head_time_start(int level, struct tag_struct ts,
76 void compat_generate_head_time_end(Gedcom_ctxt self);
79 void compat_save_ctry_parent_context(Gedcom_ctxt parent);
80 Gedcom_ctxt compat_generate_addr_ctry_start(int level, struct tag_struct ts,
82 void compat_generate_addr_ctry_end(Gedcom_ctxt self);
83 void compat_free_ctry_parent_context();
86 Gedcom_ctxt compat_generate_resi_start(Gedcom_ctxt parent);
87 void compat_generate_resi_end(Gedcom_ctxt parent, Gedcom_ctxt self);
90 int compat_check_551_tag(const char* tag, struct safe_buffer* b);
93 void compat_generate_slgc_famc_link(Gedcom_ctxt parent);
94 void compat_generate_slgc_famc_fam();
97 int compat_check_subm_comm(const char* tag, const char* parent_tag,
98 struct safe_buffer* b);
99 void compat_close_subm_comm();
100 int compat_check_subm_comm_cont(const char* tag);
101 Gedcom_ctxt compat_subm_comm_cont_start(Gedcom_ctxt parent, char* str);
102 void compat_subm_comm_cont_end(Gedcom_ctxt parent, Gedcom_ctxt self);
104 /* C_NOTE_TOO_LONG */
105 int compat_long_line(int level, int tag);
106 char* compat_long_line_get_prefix(char* str);
107 void compat_long_line_finish(Gedcom_ctxt parent, int level);
109 /* C_NOTE_CONC_SOUR */
110 Gedcom_ctxt compat_generate_note_sour_start(Gedcom_ctxt parent,
111 int level, struct tag_struct ts,
113 void compat_generate_note_sour_end(Gedcom_ctxt self);
115 /* C_NONSTD_SOUR_TAGS */
116 int compat_check_sour_tag(const char* tag, struct safe_buffer* b);
117 Gedcom_ctxt compat_generate_nonstd_sour_start(Gedcom_ctxt parent, int level,
118 struct tag_struct ts,
120 struct safe_buffer* b);
121 void compat_generate_nonstd_sour_end(Gedcom_ctxt parent, Gedcom_ctxt self);
122 int compat_generate_nonstd_sour_state();
124 #endif /* __COMPAT_H */