=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/mandoc/man_macro.c,v retrieving revision 1.13 retrieving revision 1.14 diff -c -r1.13 -r1.14 *** src/usr.bin/mandoc/man_macro.c 2010/03/29 22:56:52 1.13 --- src/usr.bin/mandoc/man_macro.c 2010/04/02 11:37:07 1.14 *************** *** 1,4 **** ! /* $Id: man_macro.c,v 1.13 2010/03/29 22:56:52 schwarze Exp $ */ /* * Copyright (c) 2008, 2009 Kristaps Dzonsons * --- 1,4 ---- ! /* $Id: man_macro.c,v 1.14 2010/04/02 11:37:07 schwarze Exp $ */ /* * Copyright (c) 2008, 2009 Kristaps Dzonsons * *************** *** 310,329 **** 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; ! } ! return(1); } --- 310,323 ---- if ( ! rew_scope(MAN_BLOCK, m, ntok)) return(0); ! /* ! * 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(). See blk_exp(). */ ! m->flags = m->svflags | MAN_ILINE; ! m->next = m->svnext; return(1); } *************** *** 381,386 **** --- 375,391 ---- return(0); if ( ! rew_scope(MAN_BLOCK, m, tok)) return(0); + } else { + /* + * 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; } if ( ! man_block_alloc(m, line, ppos, tok))