=================================================================== RCS file: /cvs/mandoc/mdoc_man.c,v retrieving revision 1.31 retrieving revision 1.33 diff -u -p -r1.31 -r1.33 --- mandoc/mdoc_man.c 2012/07/10 19:54:11 1.31 +++ mandoc/mdoc_man.c 2012/07/11 16:19:08 1.33 @@ -1,4 +1,4 @@ -/* $Id: mdoc_man.c,v 1.31 2012/07/10 19:54:11 schwarze Exp $ */ +/* $Id: mdoc_man.c,v 1.33 2012/07/11 16:19:08 schwarze Exp $ */ /* * Copyright (c) 2011, 2012 Ingo Schwarze * @@ -754,9 +754,24 @@ post_bk(DECL_ARGS) static int pre_bl(DECL_ARGS) { + size_t icol; - if (LIST_enum == n->norm->Bl.type) + switch (n->norm->Bl.type) { + case (LIST_enum): n->norm->Bl.count = 0; + return(1); + case (LIST_column): + break; + default: + return(1); + } + + outflags |= MMAN_nl; + print_word(".TS"); + outflags |= MMAN_nl; + for (icol = 0; icol < n->norm->Bl.ncols; icol++) + print_word("l"); + print_word("."); return(1); } @@ -764,8 +779,18 @@ static void post_bl(DECL_ARGS) { - if (LIST_enum == n->norm->Bl.type) + switch (n->norm->Bl.type) { + case (LIST_enum): n->norm->Bl.count = 0; + break; + case (LIST_column): + outflags |= MMAN_nl; + print_word(".TE"); + break; + default: + break; + } + outflags |= MMAN_br; } static int @@ -1052,16 +1077,15 @@ pre_it(DECL_ARGS) print_width(bln->norm->Bl.width, NULL); outflags |= MMAN_nl; print_count(&bln->norm->Bl.count); - outflags |= MMAN_nl; break; case (LIST_hang): print_width(bln->norm->Bl.width, n->child); - outflags |= MMAN_nl; break; - default: - if (bln->norm->Bl.width) - print_width(bln->norm->Bl.width, n->child); + case (LIST_tag): + print_width(bln->norm->Bl.width, NULL); break; + default: + return(1); } outflags |= MMAN_nl; default: @@ -1075,8 +1099,10 @@ post_it(DECL_ARGS) { const struct mdoc_node *bln; - if (MDOC_HEAD == n->type) { - bln = n->parent->parent; + bln = n->parent->parent; + + switch (n->type) { + case (MDOC_HEAD): switch (bln->norm->Bl.type) { case (LIST_diag): outflags &= ~MMAN_spc; @@ -1088,6 +1114,16 @@ post_it(DECL_ARGS) default: break; } + break; + case (MDOC_BODY): + if (LIST_column == bln->norm->Bl.type && + NULL != n->next) { + putchar('\t'); + outflags &= ~MMAN_spc; + } + break; + default: + break; } }