X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=gedcom%2Fage.c;h=705a237ef05730ff99486581e8ff2671eb921043;hb=72bf48ecdfeb265665a04fc29f8703902bc296ed;hp=1de1d53205495398126aa2c0e62a6f6f61922edb;hpb=1568cb8ab16ecc1984d0d00b8ae8189c32508b08;p=gedcom-parse.git diff --git a/gedcom/age.c b/gedcom/age.c index 1de1d53..705a237 100644 --- a/gedcom/age.c +++ b/gedcom/age.c @@ -103,6 +103,21 @@ int parse_numeric_age(struct age_value *age, const char *ptr) return 0; } +struct age_value* gedcom_new_age_value(const struct age_value* copy_from) +{ + struct age_value* age_ptr; + age_ptr = (struct age_value*) malloc(sizeof(struct age_value)); + if (! age_ptr) + MEMORY_ERROR; + else { + if (copy_from) + memcpy(age_ptr, copy_from, sizeof(struct age_value)); + else + init_age(age_ptr); + } + return age_ptr; +} + struct age_value gedcom_parse_age(const char* line_value) { const char *ptr = line_value; @@ -139,7 +154,7 @@ struct age_value gedcom_parse_age(const char* line_value) return age_s; } -char* gedcom_age_to_string(struct age_value* val) +char* gedcom_age_to_string(const struct age_value* val) { int num = 0; reset_buffer(&age_buffer); @@ -155,7 +170,8 @@ char* gedcom_age_to_string(struct age_value* val) switch (val->type) { case AGE_UNRECOGNIZED: - return val->phrase; break; + reset_buffer(&age_buffer); + safe_buf_append(&age_buffer, val->phrase); break; case AGE_CHILD: safe_buf_append(&age_buffer, "CHILD"); break; case AGE_INFANT: