From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from localhost (fantadrom.bsd.lv [local]) by fantadrom.bsd.lv (OpenSMTPD) with ESMTPA id 28a403a2 for ; Sat, 18 Aug 2018 09:03:26 -0500 (EST) Date: Sat, 18 Aug 2018 09:03:26 -0500 (EST) X-Mailinglist: mandoc-source Reply-To: source@mandoc.bsd.lv MIME-Version: 1.0 From: schwarze@mandoc.bsd.lv To: source@mandoc.bsd.lv Subject: mandoc: Two consecutive .SY blocks only get a blank line in between if X-Mailer: activitymail 1.26, http://search.cpan.org/dist/activitymail/ Content-Type: text/plain; charset=utf-8 Message-Id: Log Message: ----------- Two consecutive .SY blocks only get a blank line in between if the first one is explicitly closed with .YS. Modified Files: -------------- mandoc: man_macro.c man_term.c Revision Data ------------- Index: man_term.c =================================================================== RCS file: /home/cvs/mandoc/mandoc/man_term.c,v retrieving revision 1.216 retrieving revision 1.217 diff -Lman_term.c -Lman_term.c -u -p -r1.216 -r1.217 --- man_term.c +++ man_term.c @@ -861,7 +861,8 @@ pre_SY(DECL_ARGS) switch (n->type) { case ROFFT_BLOCK: - print_bvspace(p, n, mt->pardist); + if (n->prev == NULL || n->prev->tok != MAN_SY) + print_bvspace(p, n, mt->pardist); return 1; case ROFFT_HEAD: case ROFFT_BODY: Index: man_macro.c =================================================================== RCS file: /home/cvs/mandoc/mandoc/man_macro.c,v retrieving revision 1.128 retrieving revision 1.129 diff -Lman_macro.c -Lman_macro.c -u -p -r1.128 -r1.129 --- man_macro.c +++ man_macro.c @@ -71,7 +71,7 @@ static const struct man_macro man_macros { in_line_eoln, MAN_NSCOPED }, /* PD */ { in_line_eoln, 0 }, /* AT */ { in_line_eoln, MAN_NSCOPED }, /* in */ - { blk_exp, MAN_BSCOPE }, /* SY */ + { blk_imp, MAN_BSCOPE }, /* SY */ { blk_close, MAN_BSCOPE }, /* YS */ { in_line_eoln, 0 }, /* OP */ { in_line_eoln, MAN_BSCOPE }, /* EX */ @@ -269,6 +269,13 @@ blk_close(MACRO_PROT_ARGS) if (ctok == MAN_LP || ctok == MAN_PP || ctok == MAN_P) { *pos = strlen(buf); blk_imp(man, ctok, cline, cpos, pos, buf); + } + + /* Synopsis blocks need an explicit end marker for spacing. */ + + if (tok == MAN_YS && man->last == nn) { + roff_elem_alloc(man, line, ppos, tok); + man_unscope(man, man->last); } } -- To unsubscribe send an email to source+unsubscribe@mandoc.bsd.lv