+ const struct mdoc_node *n;
+ const struct mdoc_block *b;
+
+ /* XXX - we skip over possible trailing HEAD tokens. */
+
+ if (MDOC_HEAD == node->type)
+ return(0);
+ else if (MDOC_BLOCK != node->type)
+ return(1);
+
+ b = &node->data.block;
+
+ if (NULL == (n = b->head->child)) {
+ if (arg_hasattr(MDOC_Emphasis, b->argc, b->argv))
+ TERMPAIR_SETFLAG(p, pair, ttypes[TTYPE_EMPH]);
+ else if (arg_hasattr(MDOC_Symbolic, b->argc, b->argv))
+ TERMPAIR_SETFLAG(p, pair, ttypes[TTYPE_SYMB]);
+
+ return(1);
+ }
+
+ assert(MDOC_TEXT == n->type);
+
+ if (0 == strcmp("Em", n->data.text.string))
+ TERMPAIR_SETFLAG(p, pair, ttypes[TTYPE_EMPH]);
+ else if (0 == strcmp("Sy", n->data.text.string))
+ TERMPAIR_SETFLAG(p, pair, ttypes[TTYPE_EMPH]);