]> git.cameronkatri.com Git - mandoc.git/blobdiff - roff.h
Make it more explicit that the statement "-O tag does not work with less(1)"
[mandoc.git] / roff.h
diff --git a/roff.h b/roff.h
index 8af8661bcd26f5034fa8c797e84b3f2ff75ef71b..2933eb9c0bf83eb88fd4f2501185e01e98ed70e2 100644 (file)
--- a/roff.h
+++ b/roff.h
@@ -1,7 +1,7 @@
-/*     $Id: roff.h,v 1.66 2018/12/30 00:49:56 schwarze Exp $   */
+/* $Id: roff.h,v 1.74 2020/04/08 11:56:03 schwarze Exp $       */
 /*
+ * Copyright (c) 2013-2015, 2017-2020 Ingo Schwarze <schwarze@openbsd.org>
  * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
- * 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
@@ -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,
@@ -507,6 +506,7 @@ struct      roff_node {
        struct mdoc_arg  *args;    /* BLOCK/ELEM */
        union mdoc_data  *norm;    /* Normalized arguments. */
        char             *string;  /* TEXT */
+       char             *tag;     /* For less(1) :t and HTML id=. */
        struct tbl_span  *span;    /* TBL */
        struct eqn_box   *eqn;     /* EQN */
        int               line;    /* Input file line number. */
@@ -514,14 +514,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 +552,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);