summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mandoc_headers.322
-rw-r--r--read.c1
-rw-r--r--roff.h5
-rw-r--r--roff_int.h8
4 files changed, 26 insertions, 10 deletions
diff --git a/mandoc_headers.3 b/mandoc_headers.3
index b69582d4..1da42250 100644
--- a/mandoc_headers.3
+++ b/mandoc_headers.3
@@ -167,6 +167,9 @@ and the functions
and
.Fn mandoc_xr_free .
.It Qq Pa roff.h
+Common data types for all syntax trees and related functions;
+can be used everywhere.
+.Pp
Requires
.Qq Pa mandoc_ohash.h
for
@@ -189,10 +192,7 @@ Provides
the constant array
.Va roff_name
and the functions
-.Fn deroff ,
-.Fn roffhash_alloc ,
-.Fn roffhash_find ,
-.Fn roffhash_free ,
+.Fn deroff
and
.Fn roff_validate .
.Pp
@@ -300,14 +300,24 @@ from
.Pa roff.h
as an opaque type for function prototypes.
.It Qq Pa roff_int.h
+Parser internals shared by multiple parsers.
+Can be used in all parsers, but not in main programs or formatters.
+.Pp
Requires
.Qq Pa roff.h
for
-.Vt enum roff_type .
+.Vt enum roff_type
+and
+.Vt enum roff_tok .
.Pp
Provides functions named
.Fn roff_*
-to handle roff nodes and the two special functions
+to handle roff nodes,
+.Fn roffhash_alloc ,
+.Fn roffhash_find ,
+and
+.Fn roffhash_free ,
+and the two special functions
.Fn man_breakscope
and
.Fn mdoc_argv_free
diff --git a/read.c b/read.c
index 8bf0ef84..94a67f2e 100644
--- a/read.c
+++ b/read.c
@@ -39,6 +39,7 @@
#include "mdoc.h"
#include "man.h"
#include "libmandoc.h"
+#include "roff_int.h"
#define REPARSE_LIMIT 1000
diff --git a/roff.h b/roff.h
index 83b21f2c..4233a718 100644
--- a/roff.h
+++ b/roff.h
@@ -14,6 +14,8 @@
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Common data types for all syntax trees and related functions.
*/
struct ohash;
@@ -577,7 +579,4 @@ extern const char *const *roff_name;
void deroff(char **, const 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 *);
void roff_validate(struct roff_man *);
diff --git a/roff_int.h b/roff_int.h
index 051be1f6..f5213621 100644
--- a/roff_int.h
+++ b/roff_int.h
@@ -1,7 +1,7 @@
/* $Id$ */
/*
* Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
- * Copyright (c) 2013, 2014, 2015, 2018 Ingo Schwarze <schwarze@openbsd.org>
+ * Copyright (c) 2013,2014,2015,2017,2018 Ingo Schwarze <schwarze@openbsd.org>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -14,6 +14,8 @@
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Parser internals shared by multiple parsers.
*/
struct roff_node *roff_node_alloc(struct roff_man *, int, int,
@@ -30,6 +32,10 @@ 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 *);
+
/*
* Functions called from roff.c need to be declared here,
* not in libmdoc.h or libman.h, even if they are specific