]> git.cameronkatri.com Git - mandoc.git/blobdiff - mdoc_state.c
Without HAVE_ERR, don't try to include <err.h>, it probably isn't there.
[mandoc.git] / mdoc_state.c
index 061092ce3db2fe6ff71baba38f39b66579b4bc3d..cbd7376309e8e810d504dfa712e273d927daf139 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: mdoc_state.c,v 1.1 2015/10/20 02:01:32 schwarze Exp $ */
+/*     $Id: mdoc_state.c,v 1.3 2015/10/30 18:53:54 schwarze Exp $ */
 /*
  * Copyright (c) 2014, 2015 Ingo Schwarze <schwarze@openbsd.org>
  *
@@ -30,6 +30,7 @@
 typedef        void    (*state_handler)(STATE_ARGS);
 
 static void     state_bd(STATE_ARGS);
+static void     state_bl(STATE_ARGS);
 static void     state_dl(STATE_ARGS);
 static void     state_sh(STATE_ARGS);
 static void     state_sm(STATE_ARGS);
@@ -46,7 +47,7 @@ static        const state_handler state_handlers[MDOC_MAX] = {
        state_dl,       /* Dl */
        state_bd,       /* Bd */
        NULL,           /* Ed */
-       NULL,           /* Bl */
+       state_bl,       /* Bl */
        NULL,           /* El */
        NULL,           /* It */
        NULL,           /* Ad */
@@ -194,6 +195,9 @@ state_bd(STATE_ARGS)
            (n->type != ROFFT_BODY || n->end != ENDBODY_NOT))
                return;
 
+       if (n->parent->args == NULL)
+               return;
+
        arg = n->parent->args->argv[0].arg;
        if (arg != MDOC_Literal && arg != MDOC_Unfilled)
                return;
@@ -201,6 +205,25 @@ state_bd(STATE_ARGS)
        state_dl(mdoc, n);
 }
 
+static void
+state_bl(STATE_ARGS)
+{
+
+       if (n->type != ROFFT_HEAD || n->parent->args == NULL)
+               return;
+
+       switch(n->parent->args->argv[0].arg) {
+       case MDOC_Diag:
+               n->norm->Bl.type = LIST_diag;
+               break;
+       case MDOC_Column:
+               n->norm->Bl.type = LIST_column;
+               break;
+       default:
+               break;
+       }
+}
+
 static void
 state_dl(STATE_ARGS)
 {