X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=gedcom%2Fcompat.c;h=507de09e6676b6ada5f306fa060081677fb1cd1a;hb=f9adb1850a03a882553eaa6b2747be7e2e48a9be;hp=c566d8e9ab8c77742fcd153705ba377c9ac423dd;hpb=fffe9618ff8a5cfcac207f231b531615dfb0e38f;p=gedcom-parse.git diff --git a/gedcom/compat.c b/gedcom/compat.c index c566d8e..507de09 100644 --- a/gedcom/compat.c +++ b/gedcom/compat.c @@ -126,7 +126,7 @@ void compat_generate_submitter() 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) @@ -168,15 +168,24 @@ int compat_generate_char(Gedcom_ctxt parent) { struct tag_struct ts; Gedcom_ctxt self1; + char* charset; /* first generate "1 CHAR " */ ts.string = "CHAR"; ts.value = TAG_CHAR; - self1 = start_element(ELT_HEAD_CHAR, parent, 1, ts, (char*)default_charset, - GEDCOM_MAKE_STRING(val1, (char*)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