summaryrefslogtreecommitdiffstats
path: root/man_macro.c
diff options
context:
space:
mode:
Diffstat (limited to 'man_macro.c')
-rw-r--r--man_macro.c28
1 files changed, 9 insertions, 19 deletions
diff --git a/man_macro.c b/man_macro.c
index 3c85f44c..550d162f 100644
--- a/man_macro.c
+++ b/man_macro.c
@@ -314,28 +314,14 @@ blk_dotted(MACRO_PROT_ARGS)
if ( ! rew_scope(MAN_BLOCK, m, ntok))
return(0);
- /*
- * XXX: manually adjust our next-line status. roff macros are,
- * for the moment, ignored, so we don't want to close out bodies
- * and so on.
- */
-
- switch (m->last->type) {
- case (MAN_BODY):
- m->next = MAN_NEXT_CHILD;
- break;
- default:
- break;
- }
-
/*
* Restore flags set when we got here and also stipulate that we
* don't post-process the line when exiting the macro op
- * function in man_pmacro().
+ * function in man_pmacro(). See blk_exp().
*/
- m->flags = m->svflags;
- m->flags |= MAN_ILINE;
+ m->flags = m->svflags | MAN_ILINE;
+ m->next = m->svnext;
return(1);
}
@@ -395,10 +381,14 @@ blk_exp(MACRO_PROT_ARGS)
return(0);
} else {
/*
- * Save our state; we restore it when exiting from the
- * roff instruction block.
+ * Save our state and next-scope indicator; we restore
+ * it when exiting from the roff instruction block. See
+ * blk_dotted().
*/
m->svflags = m->flags;
+ m->svnext = m->next;
+
+ /* Make sure we drop any line modes. */
m->flags = 0;
}