From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from krisdoz.my.domain (schwarze@localhost [127.0.0.1]) by krisdoz.my.domain (8.14.5/8.14.5) with ESMTP id q68Idmfl019796 for ; Sun, 8 Jul 2012 14:39:48 -0400 (EDT) Received: (from schwarze@localhost) by krisdoz.my.domain (8.14.5/8.14.3/Submit) id q68IdmTv016937; Sun, 8 Jul 2012 14:39:48 -0400 (EDT) Date: Sun, 8 Jul 2012 14:39:48 -0400 (EDT) Message-Id: <201207081839.q68IdmTv016937@krisdoz.my.domain> X-Mailinglist: mdocml-source Reply-To: source@mdocml.bsd.lv MIME-Version: 1.0 From: schwarze@mdocml.bsd.lv To: source@mdocml.bsd.lv Subject: mdocml: fix vertical spacing for -Tman SYNOPSIS .Fn .Fo .Ft .In .Nm .Va X-Mailer: activitymail 1.26, http://search.cpan.org/dist/activitymail/ Content-Type: text/plain; charset=utf-8 Log Message: ----------- fix vertical spacing for -Tman SYNOPSIS .Fn .Fo .Ft .In .Nm .Va .Vt OpenBSD rev. 1.21 Modified Files: -------------- mdocml: mdoc_man.c Revision Data ------------- Index: mdoc_man.c =================================================================== RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/mdoc_man.c,v retrieving revision 1.22 retrieving revision 1.23 diff -Lmdoc_man.c -Lmdoc_man.c -u -p -r1.22 -r1.23 --- mdoc_man.c +++ mdoc_man.c @@ -67,6 +67,7 @@ static int pre_enc(DECL_ARGS); static int pre_fa(DECL_ARGS); static int pre_fn(DECL_ARGS); static int pre_fo(DECL_ARGS); +static int pre_ft(DECL_ARGS); static int pre_in(DECL_ARGS); static int pre_it(DECL_ARGS); static int pre_nm(DECL_ARGS); @@ -75,6 +76,7 @@ static int pre_pp(DECL_ARGS); static int pre_sm(DECL_ARGS); static int pre_sp(DECL_ARGS); static int pre_sect(DECL_ARGS); +static void pre_syn(const struct mdoc_node *); static int pre_vt(DECL_ARGS); static int pre_ux(DECL_ARGS); static int pre_xr(DECL_ARGS); @@ -112,7 +114,7 @@ static const struct manact manacts[MDOC_ { NULL, NULL, NULL, NULL, NULL }, /* _Fd */ { NULL, pre_enc, post_enc, "\\fB-", "\\fP" }, /* Fl */ { NULL, pre_fn, post_fn, NULL, NULL }, /* Fn */ - { NULL, pre_enc, post_enc, "\\fI", "\\fP" }, /* Ft */ + { NULL, pre_ft, post_enc, NULL, "\\fP" }, /* Ft */ { NULL, pre_enc, post_enc, "\\fB", "\\fP" }, /* Ic */ { NULL, pre_in, post_in, NULL, NULL }, /* In */ { NULL, pre_enc, post_enc, "\\fR", "\\fP" }, /* Li */ @@ -488,6 +490,46 @@ post_sect(DECL_ARGS) outflags &= ~(MMAN_An_split | MMAN_An_nosplit); } +/* See mdoc_term.c, synopsis_pre() for comments. */ +static void +pre_syn(const struct mdoc_node *n) +{ + + if (NULL == n->prev || ! (MDOC_SYNPRETTY & n->flags)) + return; + + if (n->prev->tok == n->tok && + MDOC_Ft != n->tok && + MDOC_Fo != n->tok && + MDOC_Fn != n->tok) { + outflags |= MMAN_br; + return; + } + + switch (n->prev->tok) { + case (MDOC_Fd): + /* FALLTHROUGH */ + case (MDOC_Fn): + /* FALLTHROUGH */ + case (MDOC_Fo): + /* FALLTHROUGH */ + case (MDOC_In): + /* FALLTHROUGH */ + case (MDOC_Vt): + outflags |= MMAN_sp; + break; + case (MDOC_Ft): + if (MDOC_Fn != n->tok && MDOC_Fo != n->tok) { + outflags |= MMAN_sp; + break; + } + /* FALLTHROUGH */ + default: + outflags |= MMAN_br; + break; + } +} + static int pre_an(DECL_ARGS) { @@ -654,12 +696,12 @@ static int pre_fn(DECL_ARGS) { + pre_syn(n); + n = n->child; if (NULL == n) return(0); - if (MDOC_SYNPRETTY & n->flags) - outflags |= MMAN_br; print_word("\\fB"); outflags &= ~MMAN_spc; print_node(m, n); @@ -685,9 +727,10 @@ pre_fo(DECL_ARGS) { switch (n->type) { + case (MDOC_BLOCK): + pre_syn(n); + break; case (MDOC_HEAD): - if (MDOC_SYNPRETTY & n->flags) - outflags |= MMAN_br; print_word("\\fB"); outflags &= ~MMAN_spc; break; @@ -720,11 +763,21 @@ post_fo(DECL_ARGS) } static int +pre_ft(DECL_ARGS) +{ + + pre_syn(n); + print_word("\\fI"); + outflags &= ~MMAN_spc; + return(1); +} + +static int pre_in(DECL_ARGS) { if (MDOC_SYNPRETTY & n->flags) { - outflags |= MMAN_br; + pre_syn(n); print_word("\\fB#include <"); } else print_word("<\\fI"); @@ -781,10 +834,12 @@ static int pre_nm(DECL_ARGS) { + if (MDOC_BLOCK == n->type) + pre_syn(n); if (MDOC_ELEM != n->type && MDOC_HEAD != n->type) return(1); - if (MDOC_SYNPRETTY & n->flags) - outflags |= MMAN_br; + if (NULL == n->child && NULL == m->name) + return(0); print_word("\\fB"); outflags &= ~MMAN_spc; if (NULL == n->child) @@ -865,13 +920,13 @@ pre_vt(DECL_ARGS) if (MDOC_SYNPRETTY & n->flags) { switch (n->type) { case (MDOC_BLOCK): + pre_syn(n); return(1); case (MDOC_BODY): break; default: return(0); } - outflags |= MMAN_br; } print_word("\\fI"); outflags &= ~MMAN_spc; @@ -887,8 +942,6 @@ post_vt(DECL_ARGS) outflags &= ~MMAN_spc; print_word("\\fP"); - if (MDOC_SYNPRETTY & n->flags) - outflags |= MMAN_br; } static int -- To unsubscribe send an email to source+unsubscribe@mdocml.bsd.lv