X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=gedcom%2Fgedcom.y;h=f6d281e0811eeea3ae84323d71476920a279486a;hb=398a39079768a8f3d12180b2012bdd1dd5675213;hp=f853e7d3b85c4160662bb898047c3e7ecf97bce4;hpb=c9244d0b6ce2dae9311dc5f6a49ee774b1d2f98a;p=gedcom-parse.git diff --git a/gedcom/gedcom.y b/gedcom/gedcom.y index f853e7d..f6d281e 100644 --- a/gedcom/gedcom.y +++ b/gedcom/gedcom.y @@ -178,7 +178,7 @@ Gedcom_ctxt get_parentctxt(int offset); void pop_countarray(); int count_tag(int tag); int check_occurrence(int tag); -void clean_up(); +void clean_up(); #define HANDLE_ERROR \ { if (error_mechanism == IMMED_FAIL) { \ @@ -1423,7 +1423,7 @@ note_line_item : /* empty */ gedcom_error(_("Missing value")); YYERROR; } else { - $$ = ""; + $$ = VALUE_IF_MISSING; } } | DELIM line_item @@ -2281,19 +2281,13 @@ continuation_sub : cont_sect /* 0:M */ | conc_sect /* 0:M */ ; -cont_sect : OPEN DELIM TAG_CONT mand_line_item +cont_sect : OPEN DELIM TAG_CONT opt_line_item { $$ = start_element(ELT_SUB_CONT, PARENT, $1, $3, $4, - GEDCOM_MAKE_STRING(val1, $4)); - if (compat_mode(C_NOTE_NO_VALUE)) { - char* str = get_buf_string(&concat_buffer); - if (str[0] != '\0') - SAFE_BUF_ADDCHAR(&concat_buffer, '\n'); - } - else { - SAFE_BUF_ADDCHAR(&concat_buffer, '\n'); - } - safe_buf_append(&concat_buffer, $4); + GEDCOM_MAKE_NULL_OR_STRING(val1, $4)); + SAFE_BUF_ADDCHAR(&concat_buffer, '\n'); + if (GEDCOM_IS_STRING(&val1)) + safe_buf_append(&concat_buffer, $4); START(CONT, $1, $$) } no_std_subs @@ -3751,7 +3745,7 @@ mand_pointer : /* empty */ { gedcom_error(_("Missing pointer")); YYERROR; } mand_line_item : /* empty */ { if (compat_mode(C_NO_REQUIRED_VALUES)) { gedcom_debug_print("==Val: =="); - $$ = ""; + $$ = VALUE_IF_MISSING; } else { gedcom_error(_("Missing value")); YYERROR;