summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--man.c3
-rw-r--r--man_term.c2
-rw-r--r--mdoc.c3
-rw-r--r--mdoc_term.c2
4 files changed, 6 insertions, 4 deletions
diff --git a/man.c b/man.c
index ca4d0973..ba1ed6b4 100644
--- a/man.c
+++ b/man.c
@@ -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) :
diff --git a/man_term.c b/man_term.c
index 19ab14af..658e4e70 100644
--- a/man_term.c
+++ b/man_term.c
@@ -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:
diff --git a/mdoc.c b/mdoc.c
index cdaff456..02144ca0 100644
--- a/mdoc.c
+++ b/mdoc.c
@@ -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: