void man_validate(struct roff_man *man) { man->last = man->first; man_node_validate(man); man->flags &= ~MAN_LITERAL; }
void man_node_validate(struct roff_man *man) { struct roff_node *n; v_check *cp; n = man->last; man->last = man->last->child; while (man->last != NULL) { man_node_validate(man); if (man->last == n) man->last = man->last->child; else man->last = man->last->next; } man->last = n; man->next = ROFF_NEXT_SIBLING; switch (n->type) { case ROFFT_TEXT: check_text(man, n); break; case ROFFT_ROOT: check_root(man, n); break; case ROFFT_EQN: case ROFFT_TBL: break; default: cp = man_valids + n->tok; if (*cp) (*cp)(man, n); if (man->last == n) man_state(man, n); break; } }