+static int
+pre_offset(PRE_ARGS)
+{
+ int i;
+
+ /*
+ * Make sure that an empty offset produces an 8n length space as
+ * stipulated by mdoc.samples.
+ */
+
+ assert(n->args);
+ for (i = 0; i < (int)n->args->argc; i++) {
+ if (MDOC_Offset != n->args->argv[i].arg)
+ continue;
+ if (n->args->argv[i].sz)
+ break;
+ assert(1 == n->args->refcnt);
+ /* If no value set, length of <string>. */
+ n->args->argv[i].value =
+ calloc(1, sizeof(char *));
+ if (NULL == n->args->argv[i].value)
+ return(mdoc_nerr(m, n, EMALLOC));
+ n->args->argv[i].sz++;
+ n->args->argv[i].value[0] = strdup("8n");
+ if (NULL == n->args->argv[i].value[0])
+ return(mdoc_nerr(m, n, EMALLOC));
+ break;
+ }
+
+ return(1);
+}
+
+
+static int
+pre_bl(PRE_ARGS)
+{
+
+ return(MDOC_BLOCK == n->type ? pre_offset(m, n) : 1);
+}
+
+