summaryrefslogtreecommitdiffstats
path: root/eqn_term.c
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2017-08-23 20:49:15 +0000
committerIngo Schwarze <schwarze@openbsd.org>2017-08-23 20:49:15 +0000
commit4e5632836989cf756d334c0fdb519bb49814cb22 (patch)
tree0521be41156788168c4d5a4cf8f30fe111c52823 /eqn_term.c
parent12117bdb06c2ea3ee37d7508ce54c9626b3701a9 (diff)
downloadmandoc-4e5632836989cf756d334c0fdb519bb49814cb22.tar.gz
remove spacing after unary minus
Diffstat (limited to 'eqn_term.c')
-rw-r--r--eqn_term.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/eqn_term.c b/eqn_term.c
index 69c77409..159021e8 100644
--- a/eqn_term.c
+++ b/eqn_term.c
@@ -52,6 +52,7 @@ static void
eqn_box(struct termp *p, const struct eqn_box *bp)
{
const struct eqn_box *child;
+ const char *cp;
int delim;
/* Delimiters around this box? */
@@ -94,8 +95,9 @@ eqn_box(struct termp *p, const struct eqn_box *bp)
if (strchr("!\"'),.:;?]}", *bp->text) != NULL)
p->flags |= TERMP_NOSPACE;
term_word(p, bp->text);
- if (*bp->text != '\0' && strchr("\"'([{",
- bp->text[strlen(bp->text) - 1]) != NULL)
+ if ((cp = strchr(bp->text, '\0')) > bp->text &&
+ ((cp[-1] == '-' && bp->prev == NULL) ||
+ strchr("\"'([{", cp[-1]) != NULL))
p->flags |= TERMP_NOSPACE;
}