X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=gom%2Fuser_rec.c;h=4ea975ef2fa60405c6810098e25e7e6164c96c73;hb=d069cfbd954ca8d53d780ce97d7da1d363bb51fe;hp=7c05d15664560c194e77677797446c99e0a767de;hpb=bdf47fdee469d5a1d7ddfd06a0e4b26f3b40b0f4;p=gedcom-parse.git diff --git a/gom/user_rec.c b/gom/user_rec.c index 7c05d15..4ea975e 100644 --- a/gom/user_rec.c +++ b/gom/user_rec.c @@ -241,7 +241,7 @@ struct user_rec* gom_get_first_user_rec() return gom_first_user_rec; } -struct user_rec* make_user_record(char* xrefstr) +struct user_rec* make_user_record(const char* xrefstr) { struct user_rec* rec = NULL; MAKE_CHAIN_ELT(user_rec, gom_first_user_rec, rec); @@ -251,3 +251,39 @@ struct user_rec* make_user_record(char* xrefstr) } return rec; } + +int write_user_recs(Gedcom_write_hndl hndl) +{ + int result = 0; + struct user_rec* obj; + + for (obj = gom_first_user_rec; obj; obj = obj->next) { + if (obj->xref_value) + result |= gedcom_write_user_xref(hndl, 0, obj->tag, obj->xrefstr, + obj->xref_value); + else + result |= gedcom_write_user_str(hndl, 0, obj->tag, obj->xrefstr, + obj->str_value); + if (obj->extra) + result |= write_user_data(hndl, obj->extra); + } + return result; +} + +int write_user_data(Gedcom_write_hndl hndl, struct user_data* data) +{ + int result = 0; + struct user_data* obj; + + if (!data) return 1; + + for (obj = data; data; data = data->next) { + if (obj->xref_value) + result |= gedcom_write_user_xref(hndl, obj->level, obj->tag, NULL, + obj->xref_value); + else + result |= gedcom_write_user_str(hndl, obj->level, obj->tag, NULL, + obj->str_value); + } + return result; +}