=================================================================== RCS file: /cvs/mandoc/mdoc_man.c,v retrieving revision 1.37 retrieving revision 1.39 diff -u -p -r1.37 -r1.39 --- mandoc/mdoc_man.c 2012/07/13 20:43:40 1.37 +++ mandoc/mdoc_man.c 2012/07/14 09:07:18 1.39 @@ -1,4 +1,4 @@ -/* $Id: mdoc_man.c,v 1.37 2012/07/13 20:43:40 schwarze Exp $ */ +/* $Id: mdoc_man.c,v 1.39 2012/07/14 09:07:18 schwarze Exp $ */ /* * Copyright (c) 2011, 2012 Ingo Schwarze * @@ -1116,7 +1116,8 @@ pre_it(DECL_ARGS) outflags |= MMAN_PP | MMAN_nl; bln = n->parent->parent; if (0 == bln->norm->Bl.comp || - NULL == bln->parent->prev) + (NULL == n->parent->prev && + NULL == bln->parent->prev)) outflags |= MMAN_sp; outflags &= ~MMAN_br; switch (bln->norm->Bl.type) { @@ -1249,13 +1250,22 @@ pre_li(DECL_ARGS) static int pre_nm(DECL_ARGS) { + char *name; if (MDOC_BLOCK == n->type) pre_syn(n); if (MDOC_ELEM != n->type && MDOC_HEAD != n->type) return(1); - if (NULL == n->child && NULL == m->name) + name = n->child ? n->child->string : m->name; + if (NULL == name) return(0); + if (MDOC_HEAD == n->type) { + if (NULL == n->parent->prev) + outflags |= MMAN_sp; + print_block(".HP", 0); + printf(" %ldn", strlen(name) + 1); + outflags |= MMAN_nl; + } font_push('B'); if (NULL == n->child) print_word(m->name);