]> git.cameronkatri.com Git - mandoc.git/blobdiff - libmdoc.h
Backed out check for `Ex' manual sec (ok schwarze@, joerg@), in turn backing out...
[mandoc.git] / libmdoc.h
index c14306c4237df703c851c36dd444753aaec2cda0..f632a4e5afe59880568a48b31f5df4e4efe76042 100644 (file)
--- a/libmdoc.h
+++ b/libmdoc.h
@@ -1,4 +1,4 @@
-/*     $Id: libmdoc.h,v 1.35 2010/05/07 05:34:56 kristaps Exp $ */
+/*     $Id: libmdoc.h,v 1.44 2010/05/14 17:31:25 kristaps Exp $ */
 /*
  * Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
  *
@@ -28,9 +28,11 @@ struct       mdoc {
        void             *data;
        struct mdoc_cb    cb;
        int               flags;
-#define        MDOC_HALT        (1 << 0)       /* Error in parse. Halt. */
-#define        MDOC_LITERAL     (1 << 1)       /* In a literal scope. */
-#define        MDOC_PBODY       (1 << 2)       /* In the document body. */
+#define        MDOC_HALT        (1 << 0) /* error in parse: halt */
+#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_PHRASELIT   (1 << 4) /* in a literal within a phrase */
        int               pflags;
        enum mdoc_next    next;
        struct mdoc_node *last;
@@ -77,7 +79,6 @@ enum  merr {
        ENOLINE,
        EPROLOOO,
        EPROLREP,
-       EBADMSEC,
        EBADSEC,
        EFONT,
        EBADDATE,
@@ -111,13 +112,22 @@ struct    mdoc_macro {
        /* Reserved words in arguments treated as text. */
 };
 
-enum   margerr {
+enum   margserr {
        ARGS_ERROR,
        ARGS_EOLN,
        ARGS_WORD,
        ARGS_PUNCT,
        ARGS_QWORD,
-       ARGS_PHRASE
+       ARGS_PHRASE,
+       ARGS_PPHRASE,
+       ARGS_PEND
+};
+
+enum   margverr {
+       ARGV_ERROR,
+       ARGV_EOLN,
+       ARGV_ARG,
+       ARGV_WORD
 };
 
 extern const struct mdoc_macro *const mdoc_macros;
@@ -153,10 +163,9 @@ enum mdoct   mdoc_hash_find(const char *);
 int              mdoc_iscdelim(char);
 int              mdoc_isdelim(const char *);
 size_t           mdoc_isescape(const char *);
-enum   mdoc_sec  mdoc_atosec(const char *);
+enum   mdoc_sec  mdoc_str2sec(const char *);
 time_t           mdoc_atotime(const char *);
-
-size_t           mdoc_macro2len(int);
+size_t           mdoc_macro2len(enum mdoct);
 const char      *mdoc_a2att(const char *);
 const char      *mdoc_a2lib(const char *);
 const char      *mdoc_a2st(const char *);
@@ -169,21 +178,18 @@ int                 mdoc_valid_post(struct mdoc *);
 int              mdoc_action_pre(struct mdoc *, 
                        const struct mdoc_node *);
 int              mdoc_action_post(struct mdoc *);
-int              mdoc_argv(struct mdoc *, int, enum mdoct,
+enum margverr    mdoc_argv(struct mdoc *, int, enum mdoct,
                        struct mdoc_arg **, int *, char *);
-#define        ARGV_ERROR      (-1)
-#define        ARGV_EOLN       (0)
-#define        ARGV_ARG        (1)
-#define        ARGV_WORD       (2)
 void             mdoc_argv_free(struct mdoc_arg *);
 void             mdoc_argn_free(struct mdoc_arg *, int);
-enum margerr     mdoc_args(struct mdoc *, int,
+enum margserr    mdoc_args(struct mdoc *, int,
                        int *, char *, enum mdoct, char **);
-enum margerr     mdoc_zargs(struct mdoc *, int, 
+enum margserr    mdoc_zargs(struct mdoc *, int, 
                        int *, char *, int, char **);
-#define        ARGS_DELIM      (1 << 1)        /* See args(). */
-#define        ARGS_TABSEP     (1 << 2)        /* See args(). */
-#define        ARGS_NOWARN     (1 << 3)        /* See args(). */
+#define        ARGS_DELIM      (1 << 1)
+#define        ARGS_TABSEP     (1 << 2)
+#define        ARGS_NOWARN     (1 << 3)
+#define ARGS_PPHRASED  (1 << 4)
 
 int              mdoc_macroend(struct mdoc *);