+
+ /* If no meta name, set it from the child. */
+
+ buf[0] = '\0';
+
+ for (nn = mdoc->last->child; nn; nn = nn->next) {
+ /* XXX - copied from concat(). */
+ assert(MDOC_TEXT == nn->type);
+
+ if (strlcat(buf, nn->string, BUFSIZ) >= BUFSIZ) {
+ mdoc_nmsg(mdoc, nn, MANDOCERR_MEM);
+ return(0);
+ }
+
+ if (NULL == nn->next)
+ continue;
+
+ if (strlcat(buf, " ", BUFSIZ) >= BUFSIZ) {
+ mdoc_nmsg(mdoc, nn, MANDOCERR_MEM);
+ return(0);
+ }
+ }
+
+ mdoc->meta.name = mandoc_strdup(buf);
+ return(1);
+}
+
+static int
+post_literal(POST_ARGS)
+{
+
+ /*
+ * The `Dl' (note "el" not "one") and `Bd' macros unset the
+ * MDOC_LITERAL flag as they leave. Note that `Bd' only sets
+ * this in literal mode, but it doesn't hurt to just switch it
+ * off in general since displays can't be nested.
+ */
+
+ if (MDOC_BODY == mdoc->last->type)
+ mdoc->last->flags &= ~MDOC_LITERAL;
+
+ return(1);