= 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) }
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);
}
{ $<ctxt>$ = start_element(ELT_SUB_CONT,
PARENT, $1, $3, $4,
GEDCOM_MAKE_STRING(val1, $4));
- SAFE_BUF_ADDCHAR(&concat_buffer, '\n');
+ 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);
START(CONT, $1, $<ctxt>$)
}