X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=gedcom%2Fcompat.c;fp=gedcom%2Fcompat.c;h=3b725483ba8b684798f5d896a1c02d0c70874ac5;hb=c27f416da8583f06adb78c6c23e11b43a6949f3c;hp=c566d8e9ab8c77742fcd153705ba377c9ac423dd;hpb=b4c2abcfcb90bd41a1e52094c61b16566cfc8ff4;p=gedcom-parse.git diff --git a/gedcom/compat.c b/gedcom/compat.c index c566d8e..3b72548 100644 --- a/gedcom/compat.c +++ b/gedcom/compat.c @@ -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