aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2019-01-04 03:24:33 +0000
committerIngo Schwarze <schwarze@openbsd.org>2019-01-04 03:24:33 +0000
commitdde3bc1c0523727a21bd5f43ec4d4f06bc7b8278 (patch)
tree9cad576afc4f46f4fbf530816bff6c58606fa88a
parentf6aa1baa5ceeef9b9eb07bfb1be21257d01a42dc (diff)
downloadmandoc-dde3bc1c0523727a21bd5f43ec4d4f06bc7b8278.tar.gz
mandoc-dde3bc1c0523727a21bd5f43ec4d4f06bc7b8278.tar.zst
mandoc-dde3bc1c0523727a21bd5f43ec4d4f06bc7b8278.zip
Simplify the roff(7) .ce and .rj terminal formatter by using the
new TERMP_CENTER and TERMP_RIGHT flags. No functional change.
-rw-r--r--roff_term.c19
1 files changed, 4 insertions, 15 deletions
diff --git a/roff_term.c b/roff_term.c
index 6ce4b7fb..f10bb61d 100644
--- a/roff_term.c
+++ b/roff_term.c
@@ -1,6 +1,6 @@
-/* $Id: roff_term.c,v 1.18 2018/12/31 07:08:12 schwarze Exp $ */
+/* $Id: roff_term.c,v 1.19 2019/01/04 03:24:33 schwarze Exp $ */
/*
- * Copyright (c) 2010,2014,2015,2017,2018 Ingo Schwarze <schwarze@openbsd.org>
+ * Copyright (c) 2010,2014,2015,2017-2019 Ingo Schwarze <schwarze@openbsd.org>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -79,27 +79,16 @@ static void
roff_term_pre_ce(ROFF_TERM_ARGS)
{
const struct roff_node *nc1, *nc2;
- size_t len, lm;
roff_term_pre_br(p, n);
- lm = p->tcol->offset;
+ p->flags |= n->tok == ROFF_ce ? TERMP_CENTER : TERMP_RIGHT;
nc1 = n->child->next;
while (nc1 != NULL) {
nc2 = nc1;
- len = 0;
do {
- if (nc2->type == ROFFT_TEXT) {
- if (len)
- len++;
- len += term_strlen(p, nc2->string);
- }
nc2 = nc2->next;
} while (nc2 != NULL && (nc2->type != ROFFT_TEXT ||
(nc2->flags & NODE_LINE) == 0));
- p->tcol->offset = len >= p->tcol->rmargin ? 0 :
- lm + len >= p->tcol->rmargin ? p->tcol->rmargin - len :
- n->tok == ROFF_rj ? p->tcol->rmargin - len :
- (lm + p->tcol->rmargin - len) / 2;
while (nc1 != nc2) {
if (nc1->type == ROFFT_TEXT)
term_word(p, nc1->string);
@@ -110,7 +99,7 @@ roff_term_pre_ce(ROFF_TERM_ARGS)
p->flags |= TERMP_NOSPACE;
term_flushln(p);
}
- p->tcol->offset = lm;
+ p->flags &= ~(TERMP_CENTER | TERMP_RIGHT);
}
static void