struct ohash;
struct roff_node;
struct roff_meta;
struct roff;
struct mdoc_arg;
enum roff_next {
ROFF_NEXT_SIBLING = 0,
ROFF_NEXT_CHILD
};
struct roff_man {
struct roff_meta meta;
struct roff *roff;
struct ohash *mdocmac;
struct ohash *manmac;
const char *os_s;
char *os_r;
struct roff_node *last;
struct roff_node *last_es;
int quick;
int flags;
#define ROFF_NOFILL (1 << 1)
#define MDOC_PBODY (1 << 2)
#define MDOC_NEWLINE (1 << 3)
#define MDOC_PHRASE (1 << 4)
#define MDOC_PHRASELIT (1 << 5)
#define MDOC_FREECOL (1 << 6)
#define MDOC_SYNOPSIS (1 << 7)
#define MDOC_KEEP (1 << 8)
#define MDOC_SMOFF (1 << 9)
#define MDOC_NODELIMC (1 << 10)
#define MAN_ELINE (1 << 11)
#define MAN_BLINE (1 << 12)
#define MDOC_PHRASEQF (1 << 13)
#define MDOC_PHRASEQL (1 << 14)
#define MDOC_PHRASEQN (1 << 15)
#define ROFF_NONOFILL (1 << 16)
#define MAN_NEWLINE MDOC_NEWLINE
enum roff_sec lastsec;
enum roff_sec lastnamed;
enum roff_next next;
char filesec;
};
struct roff_node *roff_node_alloc(struct roff_man *, int, int,
enum roff_type, int);
void roff_node_append(struct roff_man *, struct roff_node *);
void roff_word_alloc(struct roff_man *, int, int, const char *);
void roff_word_append(struct roff_man *, const char *);
void roff_elem_alloc(struct roff_man *, int, int, int);
struct roff_node *roff_block_alloc(struct roff_man *, int, int, int);
struct roff_node *roff_head_alloc(struct roff_man *, int, int, int);
struct roff_node *roff_body_alloc(struct roff_man *, int, int, int);
void roff_node_unlink(struct roff_man *, struct roff_node *);
void roff_node_relink(struct roff_man *, struct roff_node *);
void roff_node_free(struct roff_node *);
void roff_node_delete(struct roff_man *, struct roff_node *);
struct ohash *roffhash_alloc(enum roff_tok, enum roff_tok);
enum roff_tok roffhash_find(struct ohash *, const char *, size_t);
void roffhash_free(struct ohash *);
enum mandoc_esc roff_escape(const char *, const int, const int,
int *, int *, int *, int *, int *);
void roff_state_reset(struct roff_man *);
void roff_validate(struct roff_man *);
void man_breakscope(struct roff_man *, int);
void mdoc_argv_free(struct mdoc_arg *);