+/*
+ * Look up the standard string in a table. We know that it exists from
+ * the validation phase, so assert on failure. If a standard key wasn't
+ * supplied, supply the default ``AT&T UNIX''.
+ */
+static int
+post_at(POST_ARGS)
+{
+ struct mdoc_node *nn;
+ const char *p, *q;
+ char *buf;
+ size_t sz;
+
+ if (n->child) {
+ assert(MDOC_TEXT == n->child->type);
+ p = mdoc_a2att(n->child->string);
+ if (p) {
+ free(n->child->string);
+ n->child->string = mandoc_strdup(p);
+ } else {
+ p = "AT&T UNIX ";
+ q = n->child->string;
+ sz = strlen(p) + strlen(q) + 1;
+ buf = mandoc_malloc(sz);
+ strlcpy(buf, p, sz);
+ strlcat(buf, q, sz);
+ free(n->child->string);
+ n->child->string = buf;
+ }
+ return(1);
+ }
+
+ nn = n;
+ m->next = MDOC_NEXT_CHILD;
+ if ( ! mdoc_word_alloc(m, nn->line, nn->pos, "AT&T UNIX"))
+ return(0);
+ m->last = nn;
+ return(1);
+}
+
+
+/*
+ * Mark the current section. The ``named'' section (lastnamed) is set
+ * whenever the current section isn't a custom section--we use this to
+ * keep track of section ordering. Also check that the section is
+ * allowed within the document's manual section.
+ */