X-Git-Url: https://git.cameronkatri.com/mandoc.git/blobdiff_plain/cdb13dfdb74f836f6d3b1fd54bc0b06dcc4d2ef5..1cfb674e05b4b5cd36e7ff8b437258f2421e4c49:/mdoc_action.c diff --git a/mdoc_action.c b/mdoc_action.c index 96c3d51d..7fa1bf6b 100644 --- a/mdoc_action.c +++ b/mdoc_action.c @@ -1,4 +1,4 @@ -/* $Id: mdoc_action.c,v 1.60 2010/05/17 23:57:06 kristaps Exp $ */ +/* $Id: mdoc_action.c,v 1.62 2010/05/29 18:58:52 kristaps Exp $ */ /* * Copyright (c) 2008, 2009 Kristaps Dzonsons * @@ -57,6 +57,7 @@ static int post_dd(POST_ARGS); static int post_display(POST_ARGS); static int post_dt(POST_ARGS); static int post_lb(POST_ARGS); +static int post_li(POST_ARGS); static int post_nm(POST_ARGS); static int post_os(POST_ARGS); static int post_pa(POST_ARGS); @@ -102,7 +103,7 @@ static const struct actions mdoc_actions[MDOC_MAX] = { { NULL, NULL }, /* Ft */ { NULL, NULL }, /* Ic */ { NULL, NULL }, /* In */ - { NULL, NULL }, /* Li */ + { NULL, post_li }, /* Li */ { NULL, NULL }, /* Nd */ { NULL, post_nm }, /* Nm */ { NULL, NULL }, /* Op */ @@ -637,11 +638,14 @@ post_bl_tagwidth(POST_ARGS) /* Defaults to ten ens. */ sz = 10; /* XXX: make this a macro value. */ - nn = n->body->child; + + for (nn = n->body->child; nn; nn = nn->next) { + if (MDOC_It == nn->tok) + break; + } if (nn) { assert(MDOC_BLOCK == nn->type); - assert(MDOC_It == nn->tok); nn = nn->head->child; if (MDOC_TEXT != nn->type) { sz = mdoc_macro2len(nn->tok); @@ -833,6 +837,27 @@ post_pa(POST_ARGS) } +/* + * Empty `Li' macros get an empty string to make front-ends add an extra + * space. + */ +static int +post_li(POST_ARGS) +{ + struct mdoc_node *np; + + if (n->child) + return(1); + + np = n; + m->next = MDOC_NEXT_CHILD; + if ( ! mdoc_word_alloc(m, n->line, n->pos, "")) + return(0); + m->last = np; + return(1); +} + + /* * The `Ar' macro defaults to two strings "file ..." if no value is * provided as an argument.