summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKristaps Dzonsons <kristaps@bsd.lv>2011-03-22 09:48:13 +0000
committerKristaps Dzonsons <kristaps@bsd.lv>2011-03-22 09:48:13 +0000
commitdfaf1a2588304baa4512616714d78b2fb5355b3b (patch)
tree49f095a628dd1f679f66bd441d09ec33ca8dbfb2
parentac3643411d8c7b99be73c692f194ada5c63ff3fa (diff)
downloadmandoc-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.c1
-rw-r--r--libmandoc.h99
-rw-r--r--man.h9
-rw-r--r--mandoc.h36
-rw-r--r--mdoc.h9
-rw-r--r--roff.h23
-rw-r--r--tbl.c1
7 files changed, 89 insertions, 89 deletions
diff --git a/eqn.c b/eqn.c
index 41f22968..897b45e9 100644
--- a/eqn.c
+++ b/eqn.c
@@ -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
diff --git a/man.h b/man.h
index f9b19bd1..9311e11a 100644
--- a/man.h
+++ b/man.h
@@ -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 *);
diff --git a/mandoc.h b/mandoc.h
index dceb0c32..3378518e 100644
--- a/mandoc.h
+++ b/mandoc.h
@@ -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
diff --git a/mdoc.h b/mdoc.h
index 349f65a0..999be1f5 100644
--- a/mdoc.h
+++ b/mdoc.h
@@ -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
diff --git a/roff.h b/roff.h
index 95d6d108..e2fa959f 100644
--- a/roff.h
+++ b/roff.h
@@ -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*/
diff --git a/tbl.c b/tbl.c
index 7bc66cf1..5861a5e2 100644
--- a/tbl.c
+++ b/tbl.c
@@ -22,7 +22,6 @@
#include <time.h>
#include "mandoc.h"
-#include "roff.h"
#include "libmandoc.h"
#include "libroff.h"