=================================================================== RCS file: /cvs/mandoc/mdoc_macro.c,v retrieving revision 1.137 retrieving revision 1.138 diff -u -p -r1.137 -r1.138 --- mandoc/mdoc_macro.c 2014/07/07 21:36:20 1.137 +++ mandoc/mdoc_macro.c 2014/07/30 17:06:26 1.138 @@ -1,4 +1,4 @@ -/* $Id: mdoc_macro.c,v 1.137 2014/07/07 21:36:20 schwarze Exp $ */ +/* $Id: mdoc_macro.c,v 1.138 2014/07/30 17:06:26 schwarze Exp $ */ /* * Copyright (c) 2008-2012 Kristaps Dzonsons * Copyright (c) 2010, 2012, 2013 Ingo Schwarze @@ -424,6 +424,8 @@ rew_dohalt(enum mdoct tok, enum mdoc_type type, return(REWIND_NONE); /* FALLTHROUGH */ case MDOC_Sh: + if (MDOC_ROOT == p->parent->type) + return(REWIND_THIS); if (MDOC_Nd == p->tok || MDOC_Ss == p->tok || MDOC_Sh == p->tok) return(REWIND_MORE); @@ -1034,6 +1036,22 @@ blk_full(MACRO_PROT_ARGS) char *p; nl = MDOC_NEWLINE & mdoc->flags; + + /* Skip items outside lists. */ + + if (tok == MDOC_It) { + for (n = mdoc->last; n; n = n->parent) + if (n->tok == MDOC_Bl) + break; + if (n == NULL) { + mandoc_vmsg(MANDOCERR_IT_STRAY, mdoc->parse, + line, ppos, "It %s", buf + *pos); + if ( ! mdoc_elem_alloc(mdoc, line, ppos, + MDOC_br, NULL)) + return(0); + return(rew_elem(mdoc, MDOC_br)); + } + } /* Close out prior implicit scope. */