}
}
-int main(int argc, char* argv[])
+int test_timestamps()
{
- int result;
+ int result = 0;
struct tm* tm_ptr;
time_t tval;
+ /* Make sure we get a reproduceable output, in different timezones */
+ tval = TIMESTAMP;
+ tm_ptr = gmtime(&tval);
+ tm_ptr->tm_isdst = 0;
+ tval = mktime(tm_ptr);
+ result = gom_header_update_timestamp(tval);
+
+ /* Also change timestamp of submitter */
+ if (result == 0) {
+ struct submitter* subm = gom_get_first_submitter();
+ if (!subm)
+ result = 100;
+ else {
+ result = gom_update_timestamp(&(subm->change_date), tval);
+ }
+ }
+
+ return result;
+}
+
+int main(int argc, char* argv[])
+{
+ int result;
int total_conv_fails = 0;
char* outfilename = NULL;
char* infilename = NULL;
gedcom_init();
setlocale(LC_ALL, "");
gedcom_set_message_handler(gedcom_message_handler);
- gedcom_write_set_encoding(encoding, enc, bom);
- gedcom_write_set_line_terminator(end);
output_open(outfilename);
result = gom_parse_file(infilename);
}
else {
+ gedcom_write_set_encoding(ENC_MANUAL, encoding, enc, bom);
+ gedcom_write_set_line_terminator(ENC_MANUAL, end);
result = gom_new_model();
if (result == 0)
result |= update_header(encoding);
}
- /* Make sure we get a reproduceable output, in different timezones */
- if (result == 0) {
- tval = TIMESTAMP;
- tm_ptr = gmtime(&tval);
- tm_ptr->tm_isdst = 0;
- tval = mktime(tm_ptr);
- result = gom_header_update_timestamp(tval);
- }
if (result == 0)
+ result |= test_timestamps();
+ if (result == 0) {
+ output(1, "Writing file...\n");
result |= gom_write_file(gedfilename, &total_conv_fails);
+ }
if (result == 0 && total_conv_fails == 0) {
+ output(1, "Re-parsing file...\n");
+ gedcom_set_compat_handling(0);
+ result |= gom_parse_file(gedfilename);
+ }
+ if (result == 0) {
output(1, "Test succeeded\n");
}
else {