]> git.cameronkatri.com Git - mandoc.git/blobdiff - mandoc.h
Move mdoc_isdelim() into mandoc.h as mandoc_isdelim(). This allows the
[mandoc.git] / mandoc.h
index 845c85a5c2923dad28ef80ba59386ce61ed3945a..447dbd55d8f3534daf538b51a1e104c98bf0057c 100644 (file)
--- a/mandoc.h
+++ b/mandoc.h
@@ -1,4 +1,4 @@
-/*     $Id: mandoc.h,v 1.56 2011/02/06 22:02:58 kristaps Exp $ */
+/*     $Id: mandoc.h,v 1.60 2011/03/17 09:16:38 kristaps Exp $ */
 /*
  * Copyright (c) 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  *
@@ -50,7 +50,8 @@ enum  mandocerr {
        MANDOCERR_NOTITLE, /* no title in document */
        MANDOCERR_UPPERCASE, /* document title should be all caps */
        MANDOCERR_BADMSEC, /* unknown manual section */
-       MANDOCERR_BADDATE, /* cannot parse date argument */
+       MANDOCERR_NODATE, /* date missing, using today's date */
+       MANDOCERR_BADDATE, /* cannot parse date, using it verbatim */
        MANDOCERR_PROLOGOOO, /* prologue macros out of order */
        MANDOCERR_PROLOGREP, /* duplicate prologue macro */
        MANDOCERR_BADPROLOG, /* macro not allowed in prologue */
@@ -271,6 +272,8 @@ struct      tbl_span {
 struct eqn {
        size_t            sz;
        char             *data;
+       int               line; /* invocation line */
+       int               pos; /* invocation position */
 };
 
 /*
@@ -309,14 +312,32 @@ struct    regset {
        struct reg        regs[REG__MAX];
 };
 
-__BEGIN_DECLS
-
 /*
- * Callback function for warnings, errors, and fatal errors as they
- * occur in the compilers libroff, libmdoc, and libman.
+ * A punctuation delimiter, used only in mdoc(7) documents, is opening,
+ * closing, or "middle mark" punctuation.  These govern spacing.
+ * Opening punctuation (e.g., the opening parenthesis) suppresses the
+ * following space; closing punctuation (e.g., the closing parenthesis)
+ * suppresses the leading space; middle punctuation (e.g., the vertical
+ * bar) can do either.  The middle punctuation delimiter bends the rules
+ * depending on usage.
  */
-typedef        int             (*mandocmsg)(enum mandocerr, void *,
-                               int, int, const char *);
+enum   mdelim {
+       DELIM_NONE = 0,
+       DELIM_OPEN,
+       DELIM_MIDDLE,
+       DELIM_CLOSE
+};
+
+typedef        int     (*mandocmsg)(enum mandocerr, void *,
+                       int, int, const char *);
+
+__BEGIN_DECLS
+
+void            *mandoc_calloc(size_t, size_t);
+void            *mandoc_malloc(size_t);
+void            *mandoc_realloc(void *, size_t);
+#define        DELIMSZ   6 /* hint: max possible size of a delimiter */
+enum mdelim      mandoc_isdelim(const char *);
 
 __END_DECLS