X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=gedcom%2Fwrite.c;h=69d502e62f55009b63d53fa2c7dda4270c4f1c15;hb=a9e4b4df0cb08b63e54593533002dd9eb18487b3;hp=aba4195be34c88f9dadeb63fc13a999dfe9badc3;hpb=082066d0c776403b70c366f9a7d1333c7a9fac15;p=gedcom-parse.git diff --git a/gedcom/write.c b/gedcom/write.c index aba4195..69d502e 100644 --- a/gedcom/write.c +++ b/gedcom/write.c @@ -127,13 +127,14 @@ int supports_continuation(int elt_or_rec, int which_continuation) int write_long(Gedcom_write_hndl hndl, int elt_or_rec, int level, char* xref, char* tag, char* value) { - int prefix_len, value_len, term_len; - char* nl_pos = strchr(value, '\n'); + int prefix_len, value_len = 0, term_len; + char* nl_pos = NULL; + if (value) nl_pos = strchr(value, '\n'); prefix_len = utf8_strlen(tag) + 3; /* for e.g. "0 INDI " */ if (level > 9) prefix_len++; if (xref) prefix_len += utf8_strlen(xref) + 1; - value_len = utf8_strlen(value); + if (value) value_len = utf8_strlen(value); term_len = strlen(hndl->term); if (!nl_pos && prefix_len + value_len + term_len <= MAXWRITELEN) @@ -420,6 +421,28 @@ int gedcom_write_element_xref(Gedcom_write_hndl hndl, return result; } +int gedcom_write_element_date(Gedcom_write_hndl hndl, + Gedcom_elt elt, int tag, int parent_rec_or_elt, + struct date_value* val) +{ + int result = 1; + if (check_type(elt, (val ? GV_DATE_VALUE : GV_NULL))) + result = _gedcom_write_val(hndl, elt, tag, parent_rec_or_elt, NULL, + gedcom_date_to_string(val)); + return result; +} + +int gedcom_write_element_age(Gedcom_write_hndl hndl, + Gedcom_elt elt, int tag, int parent_rec_or_elt, + struct age_value* val) +{ + int result = 1; + if (check_type(elt, (val ? GV_AGE_VALUE : GV_NULL))) + result = _gedcom_write_val(hndl, elt, tag, parent_rec_or_elt, NULL, + gedcom_age_to_string(val)); + return result; +} + int gedcom_write_user_str(Gedcom_write_hndl hndl, int level, char* tag, char* xrefstr, char* value) {