+void compat_generate_gedcom(Gedcom_ctxt parent)
+{
+ struct tag_struct ts;
+ Gedcom_ctxt self1, self2;
+
+ /* first generate "1 GEDC" */
+ ts.string = "GEDC";
+ ts.value = TAG_GEDC;
+ self1 = start_element(ELT_HEAD_GEDC, parent, 1, ts, NULL,
+ GEDCOM_MAKE_NULL(val1));
+
+ /* then generate "2 VERS <DEFAULT_GEDC_VERS>" */
+ ts.string = "VERS";
+ ts.value = TAG_VERS;
+ self2 = start_element(ELT_HEAD_GEDC_VERS, self1, 2, ts,
+ DEFAULT_GEDCOM_VERS,
+ GEDCOM_MAKE_STRING(val1, DEFAULT_GEDCOM_VERS));
+
+ /* close "2 VERS" */
+ end_element(ELT_HEAD_GEDC_VERS, self1, self2, NULL);
+
+ /* then generate "2 FORM <DEFAULT_GEDCOM_FORM> */
+ ts.string = "FORM";
+ ts.value = TAG_FORM;
+ self2 = start_element(ELT_HEAD_GEDC_FORM, self1, 2, ts,
+ DEFAULT_GEDCOM_FORM,
+ GEDCOM_MAKE_STRING(val1, DEFAULT_GEDCOM_FORM));
+
+ /* close "2 FORM" */
+ end_element(ELT_HEAD_GEDC_FORM, self1, self2, NULL);
+
+ /* close "1 GEDC" */
+ end_element(ELT_HEAD_GEDC, parent, self1, NULL);
+}
+
+int compat_generate_char(Gedcom_ctxt parent)
+{
+ struct tag_struct ts;
+ Gedcom_ctxt self1;
+ char* charset;
+
+ /* first generate "1 CHAR <DEFAULT_CHAR>" */
+ ts.string = "CHAR";
+ ts.value = TAG_CHAR;
+
+ /* Must strdup, because default_charset is const char */
+ charset = strdup(default_charset);
+ if (! charset)
+ MEMORY_ERROR;
+ else {
+ self1 = start_element(ELT_HEAD_CHAR, parent, 1, ts, charset,
+ GEDCOM_MAKE_STRING(val1, charset));
+ free(charset);
+
+ /* close "1 CHAR" */
+ end_element(ELT_HEAD_CHAR, parent, self1, NULL);
+ }
+ if (open_conv_to_internal(default_charset) == 0)
+ return 1;
+ else
+ return 0;
+}
+