aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/eqn_term.c
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2017-07-05 15:03:27 +0000
committerIngo Schwarze <schwarze@openbsd.org>2017-07-05 15:03:27 +0000
commitacb30a24128863f2d57ac9aa20a93c8dd243b80b (patch)
tree46474fe953b663899c9a6f1594eb3c8d197277ac /eqn_term.c
parent7db3d6e9ae386fc036279f2166b0ececc6cd6d27 (diff)
downloadmandoc-acb30a24128863f2d57ac9aa20a93c8dd243b80b.tar.gz
mandoc-acb30a24128863f2d57ac9aa20a93c8dd243b80b.tar.zst
mandoc-acb30a24128863f2d57ac9aa20a93c8dd243b80b.zip
The EQN_LISTONE box type is pointless.
Simplify by just using EQN_LIST with expectargs = 1. Noticed while investigating a bug report from bentley@. No functional change.
Diffstat (limited to 'eqn_term.c')
-rw-r--r--eqn_term.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/eqn_term.c b/eqn_term.c
index 43580152..33edf415 100644
--- a/eqn_term.c
+++ b/eqn_term.c
@@ -1,4 +1,4 @@
-/* $Id: eqn_term.c,v 1.9 2017/02/12 14:19:01 schwarze Exp $ */
+/* $Id: eqn_term.c,v 1.10 2017/07/05 15:03:27 schwarze Exp $ */
/*
* Copyright (c) 2011 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2014, 2015, 2017 Ingo Schwarze <schwarze@openbsd.org>
@@ -52,7 +52,7 @@ eqn_box(struct termp *p, const struct eqn_box *bp)
{
const struct eqn_box *child;
- if (bp->type == EQN_LIST ||
+ if ((bp->type == EQN_LIST && bp->expectargs > 1) ||
(bp->type == EQN_PILE && (bp->prev || bp->next)) ||
(bp->parent != NULL && bp->parent->pos == EQNPOS_SQRT)) {
if (bp->parent->type == EQN_SUBEXPR && bp->prev != NULL)
@@ -96,12 +96,15 @@ eqn_box(struct termp *p, const struct eqn_box *bp)
} else {
child = bp->first;
if (bp->type == EQN_MATRIX &&
- child != NULL && child->type == EQN_LIST)
+ child != NULL &&
+ child->type == EQN_LIST &&
+ child->expectargs > 1)
child = child->first;
while (child != NULL) {
eqn_box(p,
bp->type == EQN_PILE &&
child->type == EQN_LIST &&
+ child->expectargs > 1 &&
child->args == 1 ?
child->first : child);
child = child->next;
@@ -110,7 +113,7 @@ eqn_box(struct termp *p, const struct eqn_box *bp)
if (bp->font != EQNFONT_NONE)
term_fontpop(p);
- if (bp->type == EQN_LIST ||
+ if ((bp->type == EQN_LIST && bp->expectargs > 1) ||
(bp->type == EQN_PILE && (bp->prev || bp->next)) ||
(bp->parent != NULL && bp->parent->pos == EQNPOS_SQRT)) {
p->flags |= TERMP_NOSPACE;