int compat_enabled = 1;
int compatibility = 0;
int compat_at = 0;
-char* default_charset = "";
+const char* default_charset = "";
#define SUBMITTER_LINK "@__COMPAT__SUBM__@"
#define DEFAULT_SUBMITTER_NAME "Submitter"
compat_enabled = enable_compat;
}
-void set_compatibility(char* program)
+void set_compatibility(const char* program)
{
/* Reinitialize compatibility */
compat_at = 0;
end_element(ELT_SUBM_NAME, self1, self2, NULL);
/* close "0 SUBM" */
- end_record(REC_SUBM, self1);
+ end_record(REC_SUBM, self1, NULL);
}
void compat_generate_gedcom(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;
- self1 = start_element(ELT_HEAD_CHAR, parent, 1, ts, default_charset,
- GEDCOM_MAKE_STRING(val1, default_charset));
-
- /* close "1 CHAR" */
- end_element(ELT_HEAD_CHAR, parent, self1, NULL);
+
+ /* 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