=================================================================== RCS file: /cvs/mandoc/mdoc_man.c,v retrieving revision 1.64 retrieving revision 1.66 diff -u -p -r1.64 -r1.66 --- mandoc/mdoc_man.c 2014/07/02 03:48:07 1.64 +++ mandoc/mdoc_man.c 2014/07/04 16:12:08 1.66 @@ -1,4 +1,4 @@ -/* $Id: mdoc_man.c,v 1.64 2014/07/02 03:48:07 schwarze Exp $ */ +/* $Id: mdoc_man.c,v 1.66 2014/07/04 16:12:08 schwarze Exp $ */ /* * Copyright (c) 2011, 2012, 2013, 2014 Ingo Schwarze * @@ -1308,17 +1308,20 @@ pre_it(DECL_ARGS) else print_word("-"); font_pop(); - break; + outflags |= MMAN_nl; + return(0); case LIST_enum: print_width(bln->norm->Bl.width, NULL, 0); TPremain = 0; outflags |= MMAN_nl; print_count(&bln->norm->Bl.count); - break; + outflags |= MMAN_nl; + return(0); case LIST_hang: print_width(bln->norm->Bl.width, n->child, 6); TPremain = 0; - break; + outflags |= MMAN_nl; + return(1); case LIST_tag: print_width(bln->norm->Bl.width, n->child, 0); putchar('\n'); @@ -1327,7 +1330,6 @@ pre_it(DECL_ARGS) default: return(1); } - outflags |= MMAN_nl; default: break; } @@ -1565,11 +1567,16 @@ static int pre_sm(DECL_ARGS) { - assert(n->child && MDOC_TEXT == n->child->type); - if (0 == strcmp("on", n->child->string)) - outflags |= MMAN_Sm | MMAN_spc; + if (NULL == n->child) + outflags ^= MMAN_Sm; + else if (0 == strcmp("on", n->child->string)) + outflags |= MMAN_Sm; else outflags &= ~MMAN_Sm; + + if (MMAN_Sm & outflags) + outflags |= MMAN_spc; + return(0); }