diff options
author | Ingo Schwarze <schwarze@openbsd.org> | 2014-10-20 15:50:24 +0000 |
---|---|---|
committer | Ingo Schwarze <schwarze@openbsd.org> | 2014-10-20 15:50:24 +0000 |
commit | 2b4aeafde92b2ab4a20470a50b2f77a0325611fe (patch) | |
tree | 1b1ea07478196650aa428334049b4188aa9dece6 | |
parent | 0284beff01aa6cf1819c49e16dde13c3eb602990 (diff) | |
download | mandoc-2b4aeafde92b2ab4a20470a50b2f77a0325611fe.tar.gz |
correct the spacing after in-line equations
that start at the beginning of an input line
but end before the end of an input line
-rw-r--r-- | man.c | 3 | ||||
-rw-r--r-- | man_term.c | 2 | ||||
-rw-r--r-- | mdoc.c | 3 | ||||
-rw-r--r-- | mdoc_term.c | 2 |
4 files changed, 6 insertions, 4 deletions
@@ -119,7 +119,8 @@ int man_parseln(struct man *man, int ln, char *buf, int offs) { - man->flags |= MAN_NEWLINE; + if (man->last->type != MAN_EQN || ln > man->last->line) + man->flags |= MAN_NEWLINE; return (roff_getcontrol(man->roff, buf, &offs) ? man_pmacro(man, ln, buf, offs) : @@ -990,7 +990,7 @@ print_man_node(DECL_ARGS) if ( ! (n->flags & MAN_LINE)) p->flags |= TERMP_NOSPACE; term_eqn(p, n->eqn); - if ( ! (n->flags & MAN_LINE)) + if (n->next != NULL && ! (n->next->flags & MAN_LINE)) p->flags |= TERMP_NOSPACE; return; case MAN_TBL: @@ -238,7 +238,8 @@ int mdoc_parseln(struct mdoc *mdoc, int ln, char *buf, int offs) { - mdoc->flags |= MDOC_NEWLINE; + if (mdoc->last->type != MDOC_EQN || ln > mdoc->last->line) + mdoc->flags |= MDOC_NEWLINE; /* * Let the roff nS register switch SYNOPSIS mode early, diff --git a/mdoc_term.c b/mdoc_term.c index 4b7ca183..5f94ba8e 100644 --- a/mdoc_term.c +++ b/mdoc_term.c @@ -347,7 +347,7 @@ print_mdoc_node(DECL_ARGS) if ( ! (n->flags & MDOC_LINE)) p->flags |= TERMP_NOSPACE; term_eqn(p, n->eqn); - if ( ! (n->flags & MDOC_LINE)) + if (n->next != NULL && ! (n->next->flags & MDOC_LINE)) p->flags |= TERMP_NOSPACE; break; case MDOC_TBL: |