X-Git-Url: https://git.cameronkatri.com/mandoc.git/blobdiff_plain/74accf0fc23a61d1716812e017394125f5257020..9d70ad9e783183f60b7bf9ded3496003a1298237:/term.c diff --git a/term.c b/term.c index bc44fc61..a4c75df6 100644 --- a/term.c +++ b/term.c @@ -1,4 +1,4 @@ -/* $Id: term.c,v 1.42 2009/03/05 13:12:12 kristaps Exp $ */ +/* $Id: term.c,v 1.43 2009/03/06 14:13:47 kristaps Exp $ */ /* * Copyright (c) 2009 Kristaps Dzonsons * @@ -166,6 +166,7 @@ DECL_PRE(termp_xr); DECL_POST(termp___); DECL_POST(termp_bl); DECL_POST(termp_bx); +DECL_POST(termp_lb); const struct termact __termacts[MDOC_MAX] = { { NULL, NULL }, /* \" */ @@ -274,6 +275,7 @@ const struct termact __termacts[MDOC_MAX] = { { NULL, NULL }, /* Hf */ { NULL, NULL }, /* Fr */ { termp_ud_pre, NULL }, /* Ud */ + { NULL, termp_lb_post }, /* lb */ }; const struct termact *termacts = __termacts; @@ -721,14 +723,13 @@ termp_pp_pre(DECL_ARGS) static int termp_st_pre(DECL_ARGS) { - const char *tp; + const char *cp; - assert(1 == node->data.elem.argc); - - tp = mdoc_st2a(node->data.elem.argv[0].arg); - word(p, tp); - - return(1); + /* XXX - if child isn't text? */ + if (node->child) + if ((cp = mdoc_a2st(node->child->data.text.string))) + word(p, cp); + return(0); } @@ -967,6 +968,15 @@ termp_bt_pre(DECL_ARGS) } +/* ARGSUSED */ +static void +termp_lb_post(DECL_ARGS) +{ + + newln(p); +} + + /* ARGSUSED */ static int termp_ud_pre(DECL_ARGS) @@ -1480,15 +1490,19 @@ termp_in_post(DECL_ARGS) static int termp_at_pre(DECL_ARGS) { - enum mdoc_att c; + const char *att; + + att = NULL; - c = ATT_DEFAULT; if (node->child) { assert(MDOC_TEXT == node->child->type); - c = mdoc_atoatt(node->child->data.text.string); + att = mdoc_a2att(node->child->data.text.string); } - word(p, mdoc_att2a(c)); + if (NULL == att) + att = "AT&T UNIX"; + + word(p, att); return(0); }