=================================================================== RCS file: /cvs/mandoc/roff.h,v retrieving revision 1.66 retrieving revision 1.73 diff -u -p -r1.66 -r1.73 --- mandoc/roff.h 2018/12/30 00:49:56 1.66 +++ mandoc/roff.h 2020/04/06 10:16:18 1.73 @@ -1,7 +1,7 @@ -/* $Id: roff.h,v 1.66 2018/12/30 00:49:56 schwarze Exp $ */ +/* $Id: roff.h,v 1.73 2020/04/06 10:16:18 schwarze Exp $ */ /* + * Copyright (c) 2013-2015, 2017-2020 Ingo Schwarze * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons - * Copyright (c) 2013,2014,2015,2017,2018 Ingo Schwarze * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -73,9 +73,11 @@ enum roff_type { enum roff_tok { ROFF_br = 0, ROFF_ce, + ROFF_fi, ROFF_ft, ROFF_ll, ROFF_mc, + ROFF_nf, ROFF_po, ROFF_rj, ROFF_sp, @@ -160,7 +162,6 @@ enum roff_tok { ROFF_fcolor, ROFF_fdeferlig, ROFF_feature, - /* MAN_fi; ignored in mdoc(7) */ ROFF_fkern, ROFF_fl, ROFF_flig, @@ -220,7 +221,6 @@ enum roff_tok { ROFF_mso, ROFF_na, ROFF_ne, - /* MAN_nf; ignored in mdoc(7) */ ROFF_nh, ROFF_nhychar, ROFF_nm, @@ -437,6 +437,7 @@ enum roff_tok { MDOC__Q, MDOC__U, MDOC_Ta, + MDOC_Tg, MDOC_MAX, MAN_TH, MAN_SH, @@ -459,8 +460,6 @@ enum roff_tok { MAN_I, MAN_IR, MAN_RI, - MAN_nf, - MAN_fi, MAN_RE, MAN_RS, MAN_DT, @@ -514,14 +513,17 @@ struct roff_node { int flags; #define NODE_VALID (1 << 0) /* Has been validated. */ #define NODE_ENDED (1 << 1) /* Gone past body end mark. */ -#define NODE_EOS (1 << 2) /* At sentence boundary. */ +#define NODE_BROKEN (1 << 2) /* Must validate parent when ending. */ #define NODE_LINE (1 << 3) /* First macro/text on line. */ -#define NODE_SYNPRETTY (1 << 4) /* SYNOPSIS-style formatting. */ -#define NODE_BROKEN (1 << 5) /* Must validate parent when ending. */ -#define NODE_DELIMO (1 << 6) -#define NODE_DELIMC (1 << 7) -#define NODE_NOSRC (1 << 8) /* Generated node, not in input file. */ -#define NODE_NOPRT (1 << 9) /* Shall not print anything. */ +#define NODE_DELIMO (1 << 4) +#define NODE_DELIMC (1 << 5) +#define NODE_EOS (1 << 6) /* At sentence boundary. */ +#define NODE_SYNPRETTY (1 << 7) /* SYNOPSIS-style formatting. */ +#define NODE_NOFILL (1 << 8) /* Fill mode switched off. */ +#define NODE_NOSRC (1 << 9) /* Generated node, not in input file. */ +#define NODE_NOPRT (1 << 10) /* Shall not print anything. */ +#define NODE_ID (1 << 11) /* Target for deep linking. */ +#define NODE_HREF (1 << 12) /* Link to another place in this page. */ int prev_font; /* Before entering this node. */ int aux; /* Decoded node data, type-dependent. */ enum roff_tok tok; /* Request or macro ID. */ @@ -549,4 +551,10 @@ struct roff_meta { extern const char *const *roff_name; -void deroff(char **, const struct roff_node *); +int arch_valid(const char *, enum mandoc_os); +void deroff(char **, const struct roff_node *); +struct roff_node *roff_node_child(struct roff_node *); +struct roff_node *roff_node_next(struct roff_node *); +struct roff_node *roff_node_prev(struct roff_node *); +int roff_node_transparent(struct roff_node *); +int roff_tok_transparent(enum roff_tok);