-/* $Id: mdoc_state.c,v 1.10 2018/08/17 20:33:38 schwarze Exp $ */
+/* $Id: mdoc_state.c,v 1.15 2019/01/01 07:42:04 schwarze Exp $ */
/*
* Copyright (c) 2014, 2015, 2017 Ingo Schwarze <schwarze@openbsd.org>
*
#include <sys/types.h>
#include <assert.h>
+#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "roff.h"
#include "mdoc.h"
#include "libmandoc.h"
+#include "roff_int.h"
#include "libmdoc.h"
#define STATE_ARGS struct roff_man *mdoc, struct roff_node *n
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);
NULL, /* Ss */
NULL, /* Pp */
NULL, /* D1 */
- state_dl, /* Dl */
- state_bd, /* Bd */
+ NULL, /* Dl */
+ NULL, /* Bd */
NULL, /* Ed */
state_bl, /* Bl */
NULL, /* El */
(*handler)(mdoc, n);
}
-void
-mdoc_state_reset(struct roff_man *mdoc)
-{
-
- roff_setreg(mdoc->roff, "nS", 0, '=');
- mdoc->flags = 0;
-}
-
-static void
-state_bd(STATE_ARGS)
-{
- enum mdocargt arg;
-
- if (n->type != ROFFT_HEAD &&
- (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;
-
- state_dl(mdoc, n);
-}
-
static void
state_bl(STATE_ARGS)
{
}
}
-static void
-state_dl(STATE_ARGS)
-{
-
- switch (n->type) {
- case ROFFT_HEAD:
- mdoc->flags |= MDOC_LITERAL;
- break;
- case ROFFT_BODY:
- mdoc->flags &= ~MDOC_LITERAL;
- break;
- default:
- break;
- }
-}
-
static void
state_sh(STATE_ARGS)
{