X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=gedcom%2Fage.c;h=e4705029dfedc9cb63e2ad0d5143418bfaa1e5e3;hb=refs%2Fheads%2Flibiconv-gedcom-1.14;hp=37a49fe6a5678f790bae53f8f0b81c706c097d1f;hpb=0c115941610604f62f53b2e4f1dfb67427863f13;p=gedcom-parse.git diff --git a/gedcom/age.c b/gedcom/age.c index 37a49fe..e470502 100644 --- a/gedcom/age.c +++ b/gedcom/age.c @@ -103,7 +103,16 @@ int parse_numeric_age(struct age_value *age, const char *ptr) return 0; } -struct age_value* gedcom_new_age_value(struct age_value* copy_from) +/** This function creates a new age_value struct and initializes it properly, + or copies an existing age value. + + \param copy_from A given struct age_value to copy (or \c NULL). + + \return If the parameter \c copy_from is NULL, a new value is created and + given initial values. If it is non-NULL, the given value is copied into + a new age value. In both cases, the new value is returned. +*/ +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)); @@ -118,6 +127,14 @@ struct age_value* gedcom_new_age_value(struct age_value* copy_from) return age_ptr; } +/** This function allows to convert the given \c line_value into a struct + age_value. + + \param line_value A string containing the age to parse + + \return The parsed age; note that this return value is statically + allocated, and is thus overwritten on each call. +*/ struct age_value gedcom_parse_age(const char* line_value) { const char *ptr = line_value; @@ -154,7 +171,15 @@ struct age_value gedcom_parse_age(const char* line_value) return age_s; } -char* gedcom_age_to_string(struct age_value* val) +/** This function converts the given struct age_value into its string + representation. + + \param val The given parsed age + + \return The string representation of the parsed age; note that this value + is statically allocated, and is thus overwritten on each call +*/ +char* gedcom_age_to_string(const struct age_value* val) { int num = 0; reset_buffer(&age_buffer); @@ -170,7 +195,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: