X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;ds=sidebyside;f=gom%2Fuser_rec.c;fp=gom%2Fuser_rec.c;h=4ea975ef2fa60405c6810098e25e7e6164c96c73;hb=082066d0c776403b70c366f9a7d1333c7a9fac15;hp=b34e20debe81001d4794d4a5218f98c015f847d9;hpb=8a73dd117ad3bf06a89595f7cd8fdef45c231a6e;p=gedcom-parse.git diff --git a/gom/user_rec.c b/gom/user_rec.c index b34e20d..4ea975e 100644 --- a/gom/user_rec.c +++ b/gom/user_rec.c @@ -251,3 +251,39 @@ struct user_rec* make_user_record(const 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; +}