Put invalid date (e.g. 29 FEB 1739) in phrase member.
[gedcom-parse.git] / gedcom / gedcom.y
index 2b52293d16d84b0c3b2f2a6b8409e51a794ad523..c047b6130ecd2eeb43275e7669343abd269d48f1 100644 (file)
@@ -1234,6 +1234,8 @@ indi_addr_sect : OPEN DELIM TAG_ADDR opt_line_item
                        = start_element(ELT_SUB_ADDR,
                                        par, $1 + 1, $3, $4,
                                        GEDCOM_MAKE_NULL_OR_STRING(val2, $4));
+                     reset_buffer(&concat_buffer);
+                     safe_buf_append(&concat_buffer, $4);
                      START(ADDR, $1 + 1, $<ctxt>$);
                    }
                  else { START(ADDR, $1, NULL) }
@@ -1243,8 +1245,9 @@ indi_addr_sect : OPEN DELIM TAG_ADDR opt_line_item
                   CLOSE
                   { if (compat_mode(C_INDI_ADDR)) {
                      Gedcom_ctxt par = PARENT;
+                     char* complete = get_buf_string(&concat_buffer);
                      end_element(ELT_SUB_ADDR, par, $<ctxt>5,
-                                 GEDCOM_MAKE_NULL(val1));
+                                 GEDCOM_MAKE_STRING(val1, complete));
                      CHECK0;
                      compat_generate_resi_end(PARENT, par);
                    } 
@@ -1420,7 +1423,7 @@ note_line_item : /* empty */
                       gedcom_error(_("Missing value")); YYERROR;
                     }
                     else {
-                      $$ = "";
+                      $$ = "-";
                     }
                   }
                | DELIM line_item
@@ -3741,7 +3744,7 @@ mand_pointer : /* empty */ { gedcom_error(_("Missing pointer")); YYERROR; }
 mand_line_item : /* empty */
                  { if (compat_mode(C_NO_REQUIRED_VALUES)) {
                      gedcom_debug_print("==Val: ==");
-                    $$ = "";
+                    $$ = "-";
                   }
                   else {
                     gedcom_error(_("Missing value")); YYERROR;