- /*
- * FIXME: this must be broken apart into a series of TEXT nodes,
- * each containing a single word.
- */
-
- assert(MDOC_TEXT == m->last->child->type);
- p = mdoc_a2st(m->last->child->string);
- assert(p);
- free(m->last->child->string);
- m->last->child->string = strdup(p);
- if (NULL == m->last->child->string)
- return(mdoc_nerr(m, m->last, EMALLOC));
- return(1);
-}
-
-
-static int
-post_at(POST_ARGS)
-{
- struct mdoc_node *n;
- const char *p;
-
- /*
- * FIXME: this must be broken apart into a series of TEXT nodes,
- * each containing a single word.
- */
-
- if (m->last->child) {
- assert(MDOC_TEXT == m->last->child->type);
- p = mdoc_a2att(m->last->child->string);
- assert(p);
- free(m->last->child->string);
- m->last->child->string = strdup(p);
- if (NULL == m->last->child->string)
- return(mdoc_nerr(m, m->last, EMALLOC));
- return(1);
- }
-
- n = m->last;
- m->next = MDOC_NEXT_CHILD;
-
- if ( ! mdoc_word_alloc(m, n->line, n->pos, "AT&T UNIX"))
- return(0);
-
- m->last = n;
- m->next = MDOC_NEXT_SIBLING;
- return(1);
-}
-
-
-static int
-post_sh(POST_ARGS)
-{
- enum mdoc_sec sec;
- char buf[64];
-
- /*
- * We keep track of the current section /and/ the "named"
- * section, which is one of the conventional ones, in order to
- * check ordering.
- */
-
- if (MDOC_HEAD != m->last->type)
- return(1);
-
- buf[0] = 0;
- if ( ! concat(m, m->last->child, buf, sizeof(buf)))
- return(0);
- if (SEC_CUSTOM != (sec = mdoc_atosec(buf)))
- m->lastnamed = sec;
-
- switch ((m->lastsec = sec)) {
- case (SEC_RETURN_VALUES):
- /* FALLTHROUGH */
- case (SEC_ERRORS):
- switch (m->meta.msec) {
- case (2):
- /* FALLTHROUGH */
- case (3):
- /* FALLTHROUGH */
- case (9):
- break;
- default:
- return(mdoc_nwarn(m, m->last, EBADSEC));
- }
- break;
- default:
- break;