aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/roff.h
diff options
context:
space:
mode:
Diffstat (limited to 'roff.h')
-rw-r--r--roff.h45
1 files changed, 5 insertions, 40 deletions
diff --git a/roff.h b/roff.h
index 624fcb00..8af8661b 100644
--- a/roff.h
+++ b/roff.h
@@ -1,4 +1,4 @@
-/* $Id: roff.h,v 1.65 2018/12/14 06:33:14 schwarze Exp $ */
+/* $Id: roff.h,v 1.66 2018/12/30 00:49:56 schwarze Exp $ */
/*
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2013,2014,2015,2017,2018 Ingo Schwarze <schwarze@openbsd.org>
@@ -21,6 +21,8 @@
struct ohash;
struct mdoc_arg;
union mdoc_data;
+struct tbl_span;
+struct eqn_box;
enum roff_macroset {
MACROSET_NONE = 0,
@@ -478,11 +480,6 @@ enum roff_tok {
MAN_MAX
};
-enum roff_next {
- ROFF_NEXT_SIBLING = 0,
- ROFF_NEXT_CHILD
-};
-
/*
* Indicates that a BODY's formatting has ended, but
* the scope is still open. Used for badly nested blocks.
@@ -534,6 +531,7 @@ struct roff_node {
};
struct roff_meta {
+ struct roff_node *first; /* The first node parsed. */
char *msec; /* Manual section, usually a digit. */
char *vol; /* Manual volume title. */
char *os; /* Operating system. */
@@ -541,47 +539,14 @@ struct roff_meta {
char *title; /* Manual title, usually CAPS. */
char *name; /* Leading manual name. */
char *date; /* Normalized date. */
+ char *sodest; /* .so target file name or NULL. */
int hasbody; /* Document is not empty. */
int rcsids; /* Bits indexed by enum mandoc_os. */
enum mandoc_os os_e; /* Operating system. */
-};
-
-struct roff_man {
- struct roff_meta meta; /* Document meta-data. */
- struct roff *roff; /* Roff parser state data. */
- struct ohash *mdocmac; /* Mdoc macro lookup table. */
- struct ohash *manmac; /* Man macro lookup table. */
- const char *os_s; /* Default operating system. */
- struct roff_node *first; /* The first node parsed. */
- struct roff_node *last; /* The last node parsed. */
- struct roff_node *last_es; /* The most recent Es node. */
- int quick; /* Abort parse early. */
- int flags; /* Parse flags. */
-#define MDOC_LITERAL (1 << 1) /* In a literal scope. */
-#define MDOC_PBODY (1 << 2) /* In the document body. */
-#define MDOC_NEWLINE (1 << 3) /* First macro/text in a line. */
-#define MDOC_PHRASE (1 << 4) /* In a Bl -column phrase. */
-#define MDOC_PHRASELIT (1 << 5) /* Literal within a phrase. */
-#define MDOC_FREECOL (1 << 6) /* `It' invocation should close. */
-#define MDOC_SYNOPSIS (1 << 7) /* SYNOPSIS-style formatting. */
-#define MDOC_KEEP (1 << 8) /* In a word keep. */
-#define MDOC_SMOFF (1 << 9) /* Spacing is off. */
-#define MDOC_NODELIMC (1 << 10) /* Disable closing delimiter handling. */
-#define MAN_ELINE (1 << 11) /* Next-line element scope. */
-#define MAN_BLINE (1 << 12) /* Next-line block scope. */
-#define MDOC_PHRASEQF (1 << 13) /* Quote first word encountered. */
-#define MDOC_PHRASEQL (1 << 14) /* Quote last word of this phrase. */
-#define MDOC_PHRASEQN (1 << 15) /* Quote first word of the next phrase. */
-#define MAN_LITERAL MDOC_LITERAL
-#define MAN_NEWLINE MDOC_NEWLINE
enum roff_macroset macroset; /* Kind of high-level macros used. */
- enum roff_sec lastsec; /* Last section seen. */
- enum roff_sec lastnamed; /* Last standard section seen. */
- enum roff_next next; /* Where to put the next node. */
};
extern const char *const *roff_name;
void deroff(char **, const struct roff_node *);
-void roff_validate(struct roff_man *);