- init_gedcom_date_lex(line_value);
- gedcom_date_parse();
- close_gedcom_date_lex();
- if (dv_s.date1.cal != CAL_UNKNOWN)
- numbers_to_sdn(&dv_s.date1);
- if (dv_s.date2.cal != CAL_UNKNOWN)
- numbers_to_sdn(&dv_s.date2);
+ if (compat_mode(C_NO_REQUIRED_VALUES)
+ && !strncmp(curr_line_value, VALUE_IF_MISSING, 2)) {
+ gedcom_date_error(_("Empty value changed to '%s'"), VALUE_IF_MISSING);
+ 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 '%s' in 'phrase' member"),
+ curr_line_value);
+ make_date_value(DV_PHRASE, &dv_s.date1, &dv_s.date2, curr_line_value);
+ }