]> git.cameronkatri.com Git - mandoc.git/blobdiff - mdoc.h
Using putchar for single-character prints (noted by Joerg Sonnenberger).
[mandoc.git] / mdoc.h
diff --git a/mdoc.h b/mdoc.h
index dc4d108b94abdad9cae19db1abd8d8192accb993..184d08e11d1cb78f6a420371c48b15b101c4fffb 100644 (file)
--- a/mdoc.h
+++ b/mdoc.h
@@ -1,4 +1,4 @@
-/*     $Id: mdoc.h,v 1.60 2009/06/17 10:53:32 kristaps Exp $ */
+/*     $Id: mdoc.h,v 1.73 2009/10/30 05:58:38 kristaps Exp $ */
 /*
  * Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
  *
@@ -17,8 +17,6 @@
 #ifndef MDOC_H
 #define MDOC_H
 
-#include <time.h>
-
 /*
  * This library implements a validating scanner/parser for ``mdoc'' roff
  * macro documents, a.k.a. BSD manual page documents.  The mdoc.c file
 #define        MDOC_En          115
 #define        MDOC_Dx          116
 #define        MDOC__Q          117
-#define        MDOC_MAX         118
+#define MDOC_br                 118
+#define MDOC_sp                 119
+#define MDOC__U                 120
+#define        MDOC_MAX         121
 
 /* What follows is a list of ALL possible macro arguments. */
 
 #define        MDOC_Emphasis    23
 #define        MDOC_Symbolic    24
 #define        MDOC_Nested      25
-#define        MDOC_ARG_MAX     26
-
-/* Warnings are either syntax or groff-compatibility. */
-enum   mdoc_warn {
-       WARN_SYNTAX,
-       WARN_COMPAT
-};
+#define        MDOC_Centred     26
+#define        MDOC_ARG_MAX     27
 
 /* Type of a syntax node. */
 enum   mdoc_type {
@@ -204,8 +200,9 @@ enum        mdoc_sec {
        SEC_SYNOPSIS,
        SEC_DESCRIPTION,
        SEC_IMPLEMENTATION,
+       SEC_EXIT_STATUS,
        SEC_RETURN_VALUES,
-       SEC_ENVIRONMENT,
+       SEC_ENVIRONMENT, 
        SEC_FILES,
        SEC_EXAMPLES,
        SEC_DIAGNOSTICS,
@@ -217,6 +214,7 @@ enum        mdoc_sec {
        SEC_AUTHORS,
        SEC_CAVEATS,
        SEC_BUGS,
+       SEC_SECURITY,
        SEC_CUSTOM              /* User-defined. */
 };
 
@@ -252,6 +250,7 @@ struct      mdoc_node {
        struct mdoc_node *child;
        struct mdoc_node *next;
        struct mdoc_node *prev;
+       int               nchild;
        int               line;
        int               pos;
        int               tok;
@@ -261,7 +260,6 @@ struct      mdoc_node {
        enum mdoc_type    type;
        enum mdoc_sec     sec;
 
-       /* FIXME: union/struct this with #defines. */
        struct mdoc_arg  *args;         /* BLOCK/ELEM */
        struct mdoc_node *head;         /* BLOCK */
        struct mdoc_node *body;         /* BLOCK */
@@ -275,11 +273,10 @@ struct    mdoc_node {
 #define        MDOC_IGN_CHARS   (1 << 3) /* Ignore disallowed chars. */
 
 /* Call-backs for parse messages. */
-/* FIXME: unify somehow with man_cb. */
+
 struct mdoc_cb {
        int     (*mdoc_err)(void *, int, int, const char *);
-       int     (*mdoc_warn)(void *, int, int, 
-                       enum mdoc_warn, const char *);
+       int     (*mdoc_warn)(void *, int, int, const char *);
 };
 
 /* See mdoc.3 for documentation. */
@@ -295,16 +292,12 @@ struct    mdoc;
 
 void             mdoc_free(struct mdoc *);
 struct mdoc     *mdoc_alloc(void *, int, const struct mdoc_cb *);
-int              mdoc_reset(struct mdoc *);
+void             mdoc_reset(struct mdoc *);
 int              mdoc_parseln(struct mdoc *, int, char *buf);
 const struct mdoc_node *mdoc_node(const struct mdoc *);
 const struct mdoc_meta *mdoc_meta(const struct mdoc *);
 int              mdoc_endparse(struct mdoc *);
 
-const char      *mdoc_a2att(const char *);
-const char      *mdoc_a2lib(const char *);
-const char      *mdoc_a2st(const char *);
-
 __END_DECLS
 
 #endif /*!MDOC_H*/