void gom_no_context(const char* file, int line);
void gom_unexpected_context(const char* file, int line, OBJ_TYPE found);
+int gom_write_xref_list(Gedcom_write_hndl hndl,
+ Gedcom_elt elt, int tag, int parent_rec_or_elt,
+ struct xref_list* val);
+
#define MAKE_GOM_CTXT(CTXT_TYPE, STRUCTTYPE, CTXT_PTR) \
make_gom_ctxt(CTXT_TYPE, T_ ## STRUCTTYPE, CTXT_PTR)
Gedcom_ctxt self, Gedcom_val parsed_value);
void set_xref_type(struct xref_value *xr, const char* str);
-struct date_value* dup_date(struct date_value dv);
-struct age_value* dup_age(struct age_value age);
-
/* Doubly-linked list, but last rec->next is NULL (doesn't go to first rec) */
#define LINK_CHAIN_ELT(STRUCTTYPE, FIRSTVAL, VAL) \
{ \
= SAFE_CTXT_CAST(STRUCTTYPE, (Gom_ctxt)parent); \
if (obj) { \
struct date_value dv = GEDCOM_DATE(parsed_value); \
- obj->FIELD = dup_date(dv); \
+ obj->FIELD = gedcom_new_date_value(&dv); \
if (! obj->FIELD) \
MEMORY_ERROR; \
else \
= SAFE_CTXT_CAST(STRUCTTYPE, (Gom_ctxt)parent); \
if (obj) { \
struct age_value age = GEDCOM_AGE(parsed_value); \
- obj->FIELD = dup_age(age); \
+ obj->FIELD = gedcom_new_age_value(&age); \
if (! obj->FIELD) \
MEMORY_ERROR; \
else \