aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/mdoc_man.c
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2017-05-07 17:31:45 +0000
committerIngo Schwarze <schwarze@openbsd.org>2017-05-07 17:31:45 +0000
commit72ffb5f81a5259c8b01aa48d71c3542bc8eed8d7 (patch)
tree31fa6b4a1d8a875e8da528874a5b9907e452f853 /mdoc_man.c
parent3bbe9ca77bfa0a811b6ac068444fadfbb440cb8e (diff)
downloadmandoc-72ffb5f81a5259c8b01aa48d71c3542bc8eed8d7.tar.gz
mandoc-72ffb5f81a5259c8b01aa48d71c3542bc8eed8d7.tar.zst
mandoc-72ffb5f81a5259c8b01aa48d71c3542bc8eed8d7.zip
Basic implementation of the roff(7) .ta (define tab stops) request.
This is the first feature made possible by the parser reorganization. Improves the formatting of the SYNOPSIS in many Xenocara GL manuals. Also important for ports, as reported by many, including naddy@.
Diffstat (limited to 'mdoc_man.c')
-rw-r--r--mdoc_man.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/mdoc_man.c b/mdoc_man.c
index 04e9c8d8..d926e386 100644
--- a/mdoc_man.c
+++ b/mdoc_man.c
@@ -1,4 +1,4 @@
-/* $Id: mdoc_man.c,v 1.113 2017/05/05 15:17:32 schwarze Exp $ */
+/* $Id: mdoc_man.c,v 1.114 2017/05/07 17:31:45 schwarze Exp $ */
/*
* Copyright (c) 2011-2017 Ingo Schwarze <schwarze@openbsd.org>
*
@@ -112,6 +112,7 @@ static void pre_sp(DECL_ARGS);
static int pre_sect(DECL_ARGS);
static int pre_sy(DECL_ARGS);
static void pre_syn(const struct roff_node *);
+static void pre_ta(DECL_ARGS);
static int pre_vt(DECL_ARGS);
static int pre_xr(DECL_ARGS);
static void print_word(const char *);
@@ -128,6 +129,7 @@ static const void_fp roff_manacts[ROFF_MAX] = {
pre_ft,
pre_ll,
pre_sp,
+ pre_ta,
};
static const struct manact __manacts[MDOC_MAX - MDOC_Dd] = {
@@ -443,7 +445,6 @@ static void
print_line(const char *s, int newflags)
{
- outflags &= ~MMAN_br;
outflags |= MMAN_nl;
print_word(s);
outflags |= newflags;
@@ -1715,6 +1716,15 @@ pre_sy(DECL_ARGS)
return 1;
}
+static void
+pre_ta(DECL_ARGS)
+{
+ print_line(".ta", 0);
+ for (n = n->child; n != NULL; n = n->next)
+ print_word(n->string);
+ outflags |= MMAN_nl;
+}
+
static int
pre_vt(DECL_ARGS)
{