=================================================================== RCS file: /cvs/mandoc/mdoc_term.c,v retrieving revision 1.76 retrieving revision 1.83 diff -u -p -r1.76 -r1.83 --- mandoc/mdoc_term.c 2009/09/21 14:07:07 1.76 +++ mandoc/mdoc_term.c 2009/09/24 15:01:06 1.83 @@ -1,4 +1,4 @@ -/* $Id: mdoc_term.c,v 1.76 2009/09/21 14:07:07 kristaps Exp $ */ +/* $Id: mdoc_term.c,v 1.83 2009/09/24 15:01:06 kristaps Exp $ */ /* * Copyright (c) 2008, 2009 Kristaps Dzonsons * @@ -218,7 +218,7 @@ static const struct termact termacts[MDOC_MAX] = { { termp_under_pre, NULL }, /* Em */ { NULL, NULL }, /* Eo */ { termp_xx_pre, NULL }, /* Fx */ - { termp_bold_pre, NULL }, /* Ms */ + { termp_bold_pre, NULL }, /* Ms */ /* FIXME: convert to symbol? */ { NULL, NULL }, /* No */ { termp_ns_pre, NULL }, /* Ns */ { termp_xx_pre, NULL }, /* Nx */ @@ -260,11 +260,11 @@ static const struct termact termacts[MDOC_MAX] = { { termp_brq_pre, termp_brq_post }, /* Brq */ { termp_brq_pre, termp_brq_post }, /* Bro */ { NULL, NULL }, /* Brc */ - { NULL, NULL }, /* %C */ - { NULL, NULL }, /* Es */ - { NULL, NULL }, /* En */ + { NULL, termp____post }, /* %C */ + { NULL, NULL }, /* Es */ /* TODO */ + { NULL, NULL }, /* En */ /* TODO */ { termp_xx_pre, NULL }, /* Dx */ - { NULL, NULL }, /* %Q */ + { NULL, termp____post }, /* %Q */ { termp_sp_pre, NULL }, /* br */ { termp_sp_pre, NULL }, /* sp */ }; @@ -762,13 +762,13 @@ termp_it_pre(DECL_ARGS) * last column case, set to stretch to the margin). */ for (i = 0, n = node->prev; n && - i < (int)bl->args[vals[2]].argv->sz; + i < (int)bl->args->argv[vals[2]].sz; n = n->prev, i++) offset += arg_width (&bl->args->argv[vals[2]], i); /* Whether exceeds maximum column. */ - if (i < (int)bl->args[vals[2]].argv->sz) + if (i < (int)bl->args->argv[vals[2]].sz) width = arg_width(&bl->args->argv[vals[2]], i); else width = 0; @@ -1164,6 +1164,8 @@ static int termp_rs_pre(DECL_ARGS) { + if (SEC_SEE_ALSO != node->sec) + return(1); if (MDOC_BLOCK == node->type && node->prev) term_vspace(p); return(1); @@ -1415,7 +1417,7 @@ termp_bt_pre(DECL_ARGS) { term_word(p, "is currently in beta test."); - return(1); + return(0); } @@ -1424,7 +1426,8 @@ static void termp_lb_post(DECL_ARGS) { - term_newln(p); + if (SEC_LIBRARY == node->sec) + term_newln(p); } @@ -1516,10 +1519,6 @@ termp_fn_pre(DECL_ARGS) { const struct mdoc_node *n; - assert(node->child && MDOC_TEXT == node->child->type); - - /* FIXME: can be "type funcname" "type varname"... */ - p->bold++; term_word(p, node->child->string); p->bold--; @@ -1842,6 +1841,7 @@ termp_in_post(DECL_ARGS) { p->bold++; + p->flags |= TERMP_NOSPACE; term_word(p, ">"); p->bold--; @@ -1866,7 +1866,7 @@ termp_sp_pre(DECL_ARGS) { int i, len; - switch (node->type) { + switch (node->tok) { case (MDOC_sp): len = node->child ? atoi(node->child->string) : 1; break; @@ -2106,3 +2106,4 @@ termp_under_pre(DECL_ARGS) p->under++; return(1); } +