X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=gom%2Fheader.c;h=122c780d30dc2dcb23ee169f7910914011090288;hb=08936924a7a4b1541ee5f9778cae6bffef1767b3;hp=04b00542ff0865c550e39e0a6ae210cc80e3a818;hpb=082066d0c776403b70c366f9a7d1333c7a9fac15;p=gedcom-parse.git diff --git a/gom/header.c b/gom/header.c index 04b0054..122c780 100644 --- a/gom/header.c +++ b/gom/header.c @@ -21,6 +21,7 @@ /* $Id$ */ /* $Name$ */ +#include #include "header.h" #include "submission.h" #include "submitter.h" @@ -163,15 +164,23 @@ struct header* gom_get_header() return &gom_header; } +int gom_header_update_timestamp(time_t t) +{ + int result = 0; + struct tm *tm_ptr = localtime(&t); + result |= update_date(&gom_header.date, tm_ptr); + result |= update_time(&gom_header.time, tm_ptr); + return result; +} + int write_header(Gedcom_write_hndl hndl) { int result = 0; int i; - result |= gedcom_write_record_str(hndl, REC_HEAD, 0, NULL, NULL); + result |= gedcom_write_record_str(hndl, REC_HEAD, NULL, NULL); if (gom_header.charset.name) - result |= gedcom_write_element_str(hndl, ELT_HEAD_CHAR, 0, - REC_HEAD, + result |= gedcom_write_element_str(hndl, ELT_HEAD_CHAR, 0, REC_HEAD, gom_header.charset.name); if (gom_header.charset.version) result |= gedcom_write_element_str(hndl, ELT_HEAD_CHAR_VERS, 0, @@ -202,6 +211,10 @@ int write_header(Gedcom_write_hndl hndl) result |= gedcom_write_element_str(hndl, ELT_HEAD_SOUR_DATA, 0, ELT_HEAD_SOUR, gom_header.source.data.name); + if (gom_header.source.data.date) + result |= gedcom_write_element_date(hndl, ELT_HEAD_SOUR_DATA_DATE, 0, + ELT_HEAD_SOUR_DATA, + gom_header.source.data.date); if (gom_header.source.data.copyright) result |= gedcom_write_element_str(hndl, ELT_HEAD_SOUR_DATA_COPR, 0, ELT_HEAD_SOUR_DATA, @@ -209,6 +222,12 @@ int write_header(Gedcom_write_hndl hndl) if (gom_header.destination) result |= gedcom_write_element_str(hndl, ELT_HEAD_DEST, 0, REC_HEAD, gom_header.destination); + if (gom_header.date) + result |= gedcom_write_element_date(hndl, ELT_HEAD_DATE, 0, REC_HEAD, + gom_header.date); + if (gom_header.time) + result |= gedcom_write_element_str(hndl, ELT_HEAD_DATE_TIME, 0, + ELT_HEAD_DATE, gom_header.time); if (gom_header.submitter) result |= gedcom_write_element_xref(hndl, ELT_HEAD_SUBM, 0, REC_HEAD, gom_header.submitter);