=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/mandoc/mdoc_term.c,v retrieving revision 1.235 retrieving revision 1.236 diff -c -r1.235 -r1.236 *** src/usr.bin/mandoc/mdoc_term.c 2016/11/08 16:37:42 1.235 --- src/usr.bin/mandoc/mdoc_term.c 2017/01/10 12:54:27 1.236 *************** *** 1,4 **** ! /* $OpenBSD: mdoc_term.c,v 1.235 2016/11/08 16:37:42 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2010, 2012-2016 Ingo Schwarze --- 1,4 ---- ! /* $OpenBSD: mdoc_term.c,v 1.236 2017/01/10 12:54:27 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2010, 2012-2016 Ingo Schwarze *************** *** 283,288 **** --- 283,290 ---- p->defindent = 5; term_begin(p, print_mdoc_head, print_mdoc_foot, &mdoc->meta); + while (n != NULL && n->flags & NODE_NOPRT) + n = n->next; if (n != NULL) { if (n->tok != MDOC_Sh) term_vspace(p); *************** *** 309,314 **** --- 311,319 ---- struct termpair npair; size_t offset, rmargin; + if (n->flags & NODE_NOPRT) + return; + chld = 1; offset = p->offset; rmargin = p->rmargin; *************** *** 562,567 **** --- 567,574 ---- /* Do not vspace directly after Ss/Sh. */ nn = n; + while (nn->prev != NULL && nn->prev->flags & NODE_NOPRT) + nn = nn->prev; while (nn->prev == NULL) { do { nn = nn->parent; *************** *** 1716,1726 **** static int termp_ss_pre(DECL_ARGS) { switch (n->type) { case ROFFT_BLOCK: term_newln(p); ! if (n->prev) term_vspace(p); break; case ROFFT_HEAD: --- 1723,1737 ---- static int termp_ss_pre(DECL_ARGS) { + struct roff_node *nn; switch (n->type) { case ROFFT_BLOCK: term_newln(p); ! for (nn = n->prev; nn != NULL; nn = nn->prev) ! if ((nn->flags & NODE_NOPRT) == 0) ! break; ! if (nn != NULL) term_vspace(p); break; case ROFFT_HEAD: