=================================================================== RCS file: /cvs/mandoc/mdoc_macro.c,v retrieving revision 1.114 retrieving revision 1.115 diff -u -p -r1.114 -r1.115 --- mandoc/mdoc_macro.c 2012/01/02 15:48:05 1.114 +++ mandoc/mdoc_macro.c 2012/01/05 00:43:51 1.115 @@ -1,4 +1,4 @@ -/* $Id: mdoc_macro.c,v 1.114 2012/01/02 15:48:05 kristaps Exp $ */ +/* $Id: mdoc_macro.c,v 1.115 2012/01/05 00:43:51 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2010 Ingo Schwarze @@ -994,16 +994,6 @@ blk_full(MACRO_PROT_ARGS) enum margverr av; char *p; - /* - * Exception: `-diag' lists are not parsed, but lists in general - * are parsed. - */ - nparsed = 0; - if (MDOC_It == tok && NULL != m->last && - MDOC_Bl == m->last->tok && - LIST_diag == m->last->norm->Bl.type) - nparsed = 1; - nl = MDOC_NEWLINE & m->flags; /* Close out prior implicit scope. */ @@ -1046,6 +1036,14 @@ blk_full(MACRO_PROT_ARGS) return(0); head = body = NULL; + + /* + * Exception: Heads of `It' macros in `-diag' lists are not + * parsed, even though `It' macros in general are parsed. + */ + nparsed = MDOC_It == tok && + MDOC_Bl == m->last->parent->tok && + LIST_diag == m->last->parent->norm->Bl.type; /* * The `Nd' macro has all arguments in its body: it's a hybrid