From 1481c0648531c03ad8b53843797e3c269032f43c Mon Sep 17 00:00:00 2001 From: Ingo Schwarze Date: Fri, 5 May 2017 02:06:19 +0000 Subject: Move handling of the roff(7) .ft request from the man(7) modules to the new roff(7) modules. As a side effect, mdoc(7) now handles .ft, too. Of course, do not use that. --- mdoc_man.c | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) (limited to 'mdoc_man.c') diff --git a/mdoc_man.c b/mdoc_man.c index 38fb57e6..20796006 100644 --- a/mdoc_man.c +++ b/mdoc_man.c @@ -1,4 +1,4 @@ -/* $Id: mdoc_man.c,v 1.110 2017/05/04 17:48:29 schwarze Exp $ */ +/* $Id: mdoc_man.c,v 1.111 2017/05/05 02:06:19 schwarze Exp $ */ /* * Copyright (c) 2011-2017 Ingo Schwarze * @@ -94,6 +94,7 @@ static int pre_fl(DECL_ARGS); static int pre_fn(DECL_ARGS); static int pre_fo(DECL_ARGS); static int pre_ft(DECL_ARGS); +static int pre_Ft(DECL_ARGS); static int pre_in(DECL_ARGS); static int pre_it(DECL_ARGS); static int pre_lk(DECL_ARGS); @@ -148,14 +149,14 @@ static const struct manact __manacts[MDOC_MAX - MDOC_Dd] = { { NULL, pre_fd, post_fd, NULL, NULL }, /* Fd */ { NULL, pre_fl, post_fl, NULL, NULL }, /* Fl */ { NULL, pre_fn, post_fn, NULL, NULL }, /* Fn */ - { NULL, pre_ft, post_font, NULL, NULL }, /* Ft */ + { NULL, pre_Ft, post_font, NULL, NULL }, /* Ft */ { NULL, pre_sy, post_font, NULL, NULL }, /* Ic */ { NULL, pre_in, post_in, NULL, NULL }, /* In */ { NULL, pre_li, post_font, NULL, NULL }, /* Li */ { cond_head, pre_enc, NULL, "\\- ", NULL }, /* Nd */ { NULL, pre_nm, post_nm, NULL, NULL }, /* Nm */ { cond_body, pre_enc, post_enc, "[", "]" }, /* Op */ - { NULL, pre_ft, post_font, NULL, NULL }, /* Ot */ + { NULL, pre_Ft, post_font, NULL, NULL }, /* Ot */ { NULL, pre_em, post_font, NULL, NULL }, /* Pa */ { NULL, pre_ex, NULL, NULL, NULL }, /* Rv */ { NULL, NULL, NULL, NULL, NULL }, /* St */ @@ -654,7 +655,10 @@ print_node(DECL_ARGS) } else if (n->tok < ROFF_MAX) { switch (n->tok) { case ROFF_br: - pre_br(meta, n); + do_sub = pre_br(meta, n); + break; + case ROFF_ft: + do_sub = pre_ft(meta, n); break; default: abort(); @@ -1314,7 +1318,7 @@ post_fo(DECL_ARGS) } static int -pre_ft(DECL_ARGS) +pre_Ft(DECL_ARGS) { pre_syn(n); @@ -1322,6 +1326,15 @@ pre_ft(DECL_ARGS) return 1; } +static int +pre_ft(DECL_ARGS) +{ + print_line(".ft", 0); + print_word(n->child->string); + outflags |= MMAN_nl; + return 0; +} + static int pre_in(DECL_ARGS) { -- cgit v1.2.3