- if (NULL == (m->meta.name = strdup(buf)))
- return(mdoc_nerr(m, m->last, EMALLOC));
+ assert(MDOC_TEXT == n->child->type);
+ p = mdoc_a2st(n->child->string);
+ if (p != NULL) {
+ free(n->child->string);
+ n->child->string = mandoc_strdup(p);
+ }
+ return(1);
+}
+
+
+/*
+ * 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);
+ }