=================================================================== RCS file: /cvs/mandoc/mandoc.h,v retrieving revision 1.55 retrieving revision 1.61 diff -u -p -r1.55 -r1.61 --- mandoc/mandoc.h 2011/02/06 20:36:36 1.55 +++ mandoc/mandoc.h 2011/03/17 12:08:01 1.61 @@ -1,4 +1,4 @@ -/* $Id: mandoc.h,v 1.55 2011/02/06 20:36:36 kristaps Exp $ */ +/* $Id: mandoc.h,v 1.61 2011/03/17 12:08:01 kristaps Exp $ */ /* * Copyright (c) 2010, 2011 Kristaps Dzonsons * @@ -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 */ @@ -260,6 +261,7 @@ struct tbl_span { struct tbl_row *layout; /* layout row */ struct tbl_dat *first; struct tbl_dat *last; + int line; /* parse line */ int flags; #define TBL_SPAN_FIRST (1 << 0) #define TBL_SPAN_LAST (1 << 1) @@ -270,6 +272,8 @@ struct tbl_span { struct eqn { size_t sz; char *data; + int line; /* invocation line */ + int pos; /* invocation position */ }; /* @@ -308,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 void (*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