=================================================================== RCS file: /cvs/mandoc/mandoc.h,v retrieving revision 1.152 retrieving revision 1.161 diff -u -p -r1.152 -r1.161 --- mandoc/mandoc.h 2014/08/06 15:09:05 1.152 +++ mandoc/mandoc.h 2014/10/11 21:14:16 1.161 @@ -1,6 +1,6 @@ -/* $Id: mandoc.h,v 1.152 2014/08/06 15:09:05 schwarze Exp $ */ +/* $Id: mandoc.h,v 1.161 2014/10/11 21:14:16 schwarze Exp $ */ /* - * Copyright (c) 2010, 2011 Kristaps Dzonsons + * Copyright (c) 2010, 2011, 2014 Kristaps Dzonsons * Copyright (c) 2010-2014 Ingo Schwarze * * Permission to use, copy, modify, and distribute this software for any @@ -72,6 +72,9 @@ enum mandocerr { MANDOCERR_SEC_ORDER, /* sections out of conventional order: Sh title */ MANDOCERR_SEC_REP, /* duplicate section title: Sh title */ MANDOCERR_SEC_MSEC, /* unexpected section: Sh title for ... only */ + MANDOCERR_XR_ORDER, /* unusual Xr order: ... after ... */ + MANDOCERR_XR_PUNCT, /* unusual Xr punctuation: ... after ... */ + MANDOCERR_AN_MISSING, /* AUTHORS section without An macro */ /* related to macros and nesting */ MANDOCERR_MACRO_OBS, /* obsolete macro: macro */ @@ -110,6 +113,8 @@ enum mandocerr { MANDOCERR_BL_REP, /* skipping duplicate list type: Bl -type */ MANDOCERR_BL_SKIPW, /* skipping -width argument: Bl -type */ MANDOCERR_AT_BAD, /* unknown AT&T UNIX version: At version */ + MANDOCERR_FA_COMMA, /* comma in function argument: arg */ + MANDOCERR_FN_PAREN, /* parenthesis in function name: arg */ MANDOCERR_RS_BAD, /* invalid content in Rs block: macro */ MANDOCERR_SM_BAD, /* invalid Boolean argument: macro arg */ MANDOCERR_FT_BAD, /* unknown font, skipping request: ft font */ @@ -171,9 +176,16 @@ enum mandocerr { /* ===== system errors ===== */ + MANDOCERR_SYSDUP, /* cannot dup file descriptor */ + MANDOCERR_SYSEXEC, /* cannot exec */ + MANDOCERR_SYSEXIT, /* gunzip failed with code */ + MANDOCERR_SYSFORK, /* cannot fork */ MANDOCERR_SYSOPEN, /* cannot open file */ - MANDOCERR_SYSSTAT, /* cannot stat file */ + MANDOCERR_SYSPIPE, /* cannot open pipe */ MANDOCERR_SYSREAD, /* cannot read file */ + MANDOCERR_SYSSIG, /* gunzip died from signal */ + MANDOCERR_SYSSTAT, /* cannot stat file */ + MANDOCERR_SYSWAIT, /* wait failed */ MANDOCERR_MAX }; @@ -295,23 +307,12 @@ enum eqn_boxt { EQN_ROOT, /* root of parse tree */ EQN_TEXT, /* text (number, variable, whatever) */ EQN_SUBEXPR, /* nested `eqn' subexpression */ - EQN_LIST, /* subexpressions list */ - EQN_MATRIX /* matrix subexpression */ + EQN_LIST, /* list (braces, etc.) */ + EQN_LISTONE, /* singleton list */ + EQN_PILE, /* vertical pile */ + EQN_MATRIX /* pile of piles */ }; -enum eqn_markt { - EQNMARK_NONE = 0, - EQNMARK_DOT, - EQNMARK_DOTDOT, - EQNMARK_HAT, - EQNMARK_TILDE, - EQNMARK_VEC, - EQNMARK_DYAD, - EQNMARK_BAR, - EQNMARK_UNDER, - EQNMARK__MAX -}; - enum eqn_fontt { EQNFONT_NONE = 0, EQNFONT_ROMAN, @@ -323,11 +324,14 @@ enum eqn_fontt { enum eqn_post { EQNPOS_NONE = 0, - EQNPOS_OVER, EQNPOS_SUP, + EQNPOS_SUBSUP, EQNPOS_SUB, EQNPOS_TO, EQNPOS_FROM, + EQNPOS_FROMTO, + EQNPOS_OVER, + EQNPOS_SQRT, EQNPOS__MAX }; @@ -355,12 +359,16 @@ struct eqn_box { struct eqn_box *first; /* first child node */ struct eqn_box *last; /* last child node */ struct eqn_box *next; /* node sibling */ + struct eqn_box *prev; /* node sibling */ struct eqn_box *parent; /* node sibling */ char *text; /* text (or NULL) */ - char *left; - char *right; + char *left; /* fence left-hand */ + char *right; /* fence right-hand */ + char *top; /* expression over-symbol */ + char *bottom; /* expression under-symbol */ + size_t args; /* arguments in parent */ + size_t expectargs; /* max arguments in parent */ enum eqn_post pos; /* position of next box */ - enum eqn_markt mark; /* a mark about the box */ enum eqn_fontt font; /* font of box */ enum eqn_pilet pile; /* equation piling */ }; @@ -423,6 +431,8 @@ struct mparse *mparse_alloc(int, enum mandoclevel, ma const char *); void mparse_free(struct mparse *); void mparse_keep(struct mparse *); +enum mandoclevel mparse_open(struct mparse *, int *, const char *, + pid_t *); enum mandoclevel mparse_readfd(struct mparse *, int, const char *); enum mandoclevel mparse_readmem(struct mparse *, const void *, size_t, const char *); @@ -432,6 +442,7 @@ void mparse_result(struct mparse *, const char *mparse_getkeep(const struct mparse *); const char *mparse_strerror(enum mandocerr); const char *mparse_strlevel(enum mandoclevel); +enum mandoclevel mparse_wait(struct mparse *, pid_t); __END_DECLS