diff options
author | Kristaps Dzonsons <kristaps@bsd.lv> | 2011-03-22 09:48:13 +0000 |
---|---|---|
committer | Kristaps Dzonsons <kristaps@bsd.lv> | 2011-03-22 09:48:13 +0000 |
commit | dfaf1a2588304baa4512616714d78b2fb5355b3b (patch) | |
tree | 49f095a628dd1f679f66bd441d09ec33ca8dbfb2 | |
parent | ac3643411d8c7b99be73c692f194ada5c63ff3fa (diff) | |
download | mandoc-dfaf1a2588304baa4512616714d78b2fb5355b3b.tar.gz |
Step 1 of restructuring: libmandoc.h. Move all compiler-set-specific
stuff into libmandoc.h, including old mdoc.h/man.h/roff.h functions now
used by read.c. The motivation behind this is to tighten the
relationship between the underlying compilers while keeping parse data
hidden from general callers (e.g., main.c).
While here, also move register values from mandoc.h into libmandoc.h as
noted by schwarze@. See above for explanation.
-rw-r--r-- | eqn.c | 1 | ||||
-rw-r--r-- | libmandoc.h | 99 | ||||
-rw-r--r-- | man.h | 9 | ||||
-rw-r--r-- | mandoc.h | 36 | ||||
-rw-r--r-- | mdoc.h | 9 | ||||
-rw-r--r-- | roff.h | 23 | ||||
-rw-r--r-- | tbl.c | 1 |
7 files changed, 89 insertions, 89 deletions
@@ -25,7 +25,6 @@ #include <time.h> #include "mandoc.h" -#include "roff.h" #include "libmandoc.h" #include "libroff.h" diff --git a/libmandoc.h b/libmandoc.h index 2cdd1095..fb439ff5 100644 --- a/libmandoc.h +++ b/libmandoc.h @@ -17,18 +17,97 @@ #ifndef LIBMANDOC_H #define LIBMANDOC_H +enum rofferr { + ROFF_CONT, /* continue processing line */ + ROFF_RERUN, /* re-run roff interpreter with offset */ + ROFF_APPEND, /* re-run main parser, appending next line */ + ROFF_REPARSE, /* re-run main parser on the result */ + ROFF_SO, /* include another file */ + ROFF_IGN, /* ignore current line */ + ROFF_TBL, /* a table row was successfully parsed */ + ROFF_EQN, /* an equation was successfully parsed */ + ROFF_ERR /* badness: puke and stop */ +}; + +/* + * Available registers (set in libroff, accessed elsewhere). + */ +enum regs { + REG_nS = 0, + REG__MAX +}; + +/* + * A register (struct reg) can consist of many types: this consists of + * normalised types from the original string form. + */ +union regval { + unsigned u; /* unsigned integer */ +}; + +/* + * A single register entity. If "set" is zero, the value of the + * register should be the default one, which is per-register. It's + * assumed that callers know which type in "v" corresponds to which + * register value. + */ +struct reg { + int set; /* whether set or not */ + union regval v; /* parsed data */ +}; + +/* + * The primary interface to setting register values is in libroff, + * although libmdoc and libman from time to time will manipulate + * registers (such as `.Sh SYNOPSIS' enabling REG_nS). + */ +struct regset { + struct reg regs[REG__MAX]; +}; + __BEGIN_DECLS -void mandoc_msg(enum mandocerr, struct mparse *, - int, int, const char *); -void mandoc_vmsg(enum mandocerr, struct mparse *, - int, int, const char *, ...); -int mandoc_special(char *); -char *mandoc_strdup(const char *); -char *mandoc_getarg(struct mparse *, char **, int, int *); -char *mandoc_normdate(struct mparse *, char *, int, int); -int mandoc_eos(const char *, size_t, int); -int mandoc_hyph(const char *, const char *); +struct roff; +struct mdoc; +struct man; + +void mandoc_msg(enum mandocerr, struct mparse *, + int, int, const char *); +void mandoc_vmsg(enum mandocerr, struct mparse *, + int, int, const char *, ...); +int mandoc_special(char *); +char *mandoc_strdup(const char *); +char *mandoc_getarg(struct mparse *, char **, int, int *); +char *mandoc_normdate(struct mparse *, char *, int, int); +int mandoc_eos(const char *, size_t, int); +int mandoc_hyph(const char *, const char *); + +void mdoc_free(struct mdoc *); +struct mdoc *mdoc_alloc(struct regset *, struct mparse *); +void mdoc_reset(struct mdoc *); +int mdoc_parseln(struct mdoc *, int, char *, int); +int mdoc_endparse(struct mdoc *); +int mdoc_addspan(struct mdoc *, const struct tbl_span *); +int mdoc_addeqn(struct mdoc *, const struct eqn *); + +void man_free(struct man *); +struct man *man_alloc(struct regset *, struct mparse *); +void man_reset(struct man *); +int man_parseln(struct man *, int, char *, int); +int man_endparse(struct man *); +int man_addspan(struct man *, const struct tbl_span *); +int man_addeqn(struct man *, const struct eqn *); + +void roff_free(struct roff *); +struct roff *roff_alloc(struct regset *, struct mparse *); +void roff_reset(struct roff *); +enum rofferr roff_parseln(struct roff *, int, + char **, size_t *, int, int *); +void roff_endparse(struct roff *); + +const struct tbl_span *roff_span(const struct roff *); +const struct eqn *roff_eqn(const struct roff *); + __END_DECLS @@ -116,15 +116,6 @@ __BEGIN_DECLS struct man; -void man_free(struct man *); -struct man *man_alloc(struct regset *, struct mparse *); -void man_reset(struct man *); -int man_parseln(struct man *, int, char *, int); -int man_endparse(struct man *); -int man_addspan(struct man *, - const struct tbl_span *); -int man_addeqn(struct man *, const struct eqn *); - const struct man_node *man_node(const struct man *); const struct man_meta *man_meta(const struct man *); @@ -277,42 +277,6 @@ struct eqn { }; /* - * Available registers (set in libroff, accessed elsewhere). - */ -enum regs { - REG_nS = 0, - REG__MAX -}; - -/* - * A register (struct reg) can consist of many types: this consists of - * normalised types from the original string form. - */ -union regval { - unsigned u; /* unsigned integer */ -}; - -/* - * A single register entity. If "set" is zero, the value of the - * register should be the default one, which is per-register. It's - * assumed that callers know which type in "v" corresponds to which - * register value. - */ -struct reg { - int set; /* whether set or not */ - union regval v; /* parsed data */ -}; - -/* - * The primary interface to setting register values is in libroff, - * although libmdoc and libman from time to time will manipulate - * registers (such as `.Sh SYNOPSIS' enabling REG_nS). - */ -struct regset { - struct reg regs[REG__MAX]; -}; - -/* * A punctuation delimiter, used only in mdoc(7) documents, is opening, * closing, or "middle mark" punctuation. These govern spacing. * Opening punctuation (e.g., the opening parenthesis) suppresses the @@ -423,17 +423,8 @@ __BEGIN_DECLS struct mdoc; -void mdoc_free(struct mdoc *); -struct mdoc *mdoc_alloc(struct regset *, struct mparse *); -void mdoc_reset(struct mdoc *); -int mdoc_parseln(struct mdoc *, int, char *, int); const struct mdoc_node *mdoc_node(const struct mdoc *); const struct mdoc_meta *mdoc_meta(const struct mdoc *); -int mdoc_endparse(struct mdoc *); -int mdoc_addspan(struct mdoc *, - const struct tbl_span *); -int mdoc_addeqn(struct mdoc *, - const struct eqn *); __END_DECLS @@ -17,31 +17,8 @@ #ifndef ROFF_H #define ROFF_H -enum rofferr { - ROFF_CONT, /* continue processing line */ - ROFF_RERUN, /* re-run roff interpreter with offset */ - ROFF_APPEND, /* re-run main parser, appending next line */ - ROFF_REPARSE, /* re-run main parser on the result */ - ROFF_SO, /* include another file */ - ROFF_IGN, /* ignore current line */ - ROFF_TBL, /* a table row was successfully parsed */ - ROFF_EQN, /* an equation was successfully parsed */ - ROFF_ERR /* badness: puke and stop */ -}; - __BEGIN_DECLS -struct roff; - -void roff_free(struct roff *); -struct roff *roff_alloc(struct regset *, struct mparse *); -void roff_reset(struct roff *); -enum rofferr roff_parseln(struct roff *, int, - char **, size_t *, int, int *); -void roff_endparse(struct roff *); -const struct tbl_span *roff_span(const struct roff *); -const struct eqn *roff_eqn(const struct roff *); - __END_DECLS #endif /*!ROFF_H*/ @@ -22,7 +22,6 @@ #include <time.h> #include "mandoc.h" -#include "roff.h" #include "libmandoc.h" #include "libroff.h" |