diff options
author | 2012-07-08 11:10:13 +0000 | |
---|---|---|
committer | 2012-07-08 11:10:13 +0000 | |
commit | 1135be4f8f66a39a3ea0513c742ec976d83be8c1 (patch) | |
tree | 5b291e728fd9d8ba161e39f2ac5f39ec5fb86d04 | |
parent | 679220a7854a388f352bbea26882089e925fe272 (diff) | |
download | mandoc-1135be4f8f66a39a3ea0513c742ec976d83be8c1.tar.gz mandoc-1135be4f8f66a39a3ea0513c742ec976d83be8c1.tar.zst mandoc-1135be4f8f66a39a3ea0513c742ec976d83be8c1.zip |
implement -Tman .Vt; OpenBSD rev. 1.15 and 1.16
-rw-r--r-- | mdoc_man.c | 44 |
1 files changed, 42 insertions, 2 deletions
@@ -1,4 +1,4 @@ -/* $Id: mdoc_man.c,v 1.17 2012/07/08 10:19:37 schwarze Exp $ */ +/* $Id: mdoc_man.c,v 1.18 2012/07/08 11:10:13 schwarze Exp $ */ /* * Copyright (c) 2011, 2012 Ingo Schwarze <schwarze@openbsd.org> * @@ -63,6 +63,7 @@ static void post_percent(DECL_ARGS); static void post_pf(DECL_ARGS); static void post_sect(DECL_ARGS); static void post_sp(DECL_ARGS); +static void post_vt(DECL_ARGS); static int pre_ap(DECL_ARGS); static int pre_bd(DECL_ARGS); static int pre_bk(DECL_ARGS); @@ -81,6 +82,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 int pre_vt(DECL_ARGS); static int pre_ux(DECL_ARGS); static int pre_xr(DECL_ARGS); static void print_word(struct mman *, const char *); @@ -133,7 +135,7 @@ static const struct manact manacts[MDOC_MAX + 1] = { }, /* Rv */ { NULL, NULL, NULL, NULL, NULL }, /* St */ { NULL, NULL, NULL, NULL, NULL }, /* _Va */ - { NULL, NULL, NULL, NULL, NULL }, /* _Vt */ + { NULL, pre_vt, post_vt, NULL, NULL }, /* Vt */ { NULL, pre_xr, NULL, NULL, NULL }, /* Xr */ { NULL, NULL, post_percent, NULL, NULL }, /* _%A */ { NULL, NULL, NULL, NULL, NULL }, /* _%B */ @@ -848,6 +850,44 @@ post_sp(DECL_ARGS) } static int +pre_vt(DECL_ARGS) +{ + + if (MDOC_SYNPRETTY & n->flags) { + switch (n->type) { + case (MDOC_BLOCK): + return(1); + case (MDOC_BODY): + break; + default: + return(0); + } + mm->need_nl = 1; + print_word(mm, ".br"); + mm->need_nl = 1; + } + print_word(mm, "\\fI"); + mm->need_space = 0; + return(1); +} + +static void +post_vt(DECL_ARGS) +{ + + if (MDOC_BODY != n->type) + return; + + mm->need_space = 0; + print_word(mm, "\\fP"); + if (MDOC_SYNPRETTY & n->flags) { + mm->need_nl = 1; + print_word(mm, ".br"); + mm->need_nl = 1; + } +} + +static int pre_xr(DECL_ARGS) { |