struct date_value gedcom_parse_date(const char* line_value)
{
int result = 0;
+ init_date(&dv_s.date1);
+ init_date(&dv_s.date2);
init_date(&date_s);
init_date(&def_date);
curr_line_value = line_value;
result = 1;
}
else {
+ compat_date_start();
init_gedcom_date_lex(line_value);
gedcom_date_parse();
close_gedcom_date_lex();
+ if (compat_date_check(&dv_s, &curr_line_value)) {
+ init_gedcom_date_lex(curr_line_value);
+ gedcom_date_parse();
+ close_gedcom_date_lex();
+ }
if (dv_s.date1.cal != CAL_UNKNOWN)
result |= numbers_to_sdn(&dv_s.date1);
if (dv_s.date2.cal != CAL_UNKNOWN)
result |= numbers_to_sdn(&dv_s.date2);
}
if (result != 0) {
- gedcom_date_error(_("Putting date in 'phrase' member"));
- make_date_value(DV_PHRASE, &def_date, &def_date, curr_line_value);
+ gedcom_date_error(_("Putting date '%s' in 'phrase' member"),
+ curr_line_value);
+ make_date_value(DV_PHRASE, &dv_s.date1, &dv_s.date2, curr_line_value);
}
return dv_s;
}