+ if (man->flags & MAN_BLINE && (tok == TOKEN_NONE ||
+ man_macros[tok].flags & MAN_BSCOPE)) {
+ n = man->last;
+ if (n->type == ROFFT_TEXT)
+ n = n->parent;
+ if ( ! (man_macros[n->tok].flags & MAN_BSCOPE))
+ n = n->parent;
+
+ assert(n->type == ROFFT_HEAD);
+ n = n->parent;
+ assert(n->type == ROFFT_BLOCK);
+ assert(man_macros[n->tok].flags & MAN_SCOPED);
+
+ mandoc_vmsg(MANDOCERR_BLK_LINE, man->parse,
+ n->line, n->pos, "%s breaks %s",
+ tok == TOKEN_NONE ? "TS" : man_macronames[tok],
+ man_macronames[n->tok]);
+
+ roff_node_delete(man, n);
+ man->flags &= ~MAN_BLINE;
+ }