=================================================================== RCS file: /cvs/mandoc/mandoc.h,v retrieving revision 1.174 retrieving revision 1.189 diff -u -p -r1.174 -r1.189 --- mandoc/mandoc.h 2014/12/01 04:05:32 1.174 +++ mandoc/mandoc.h 2015/01/26 18:42:30 1.189 @@ -1,7 +1,7 @@ -/* $Id: mandoc.h,v 1.174 2014/12/01 04:05:32 schwarze Exp $ */ +/* $Id: mandoc.h,v 1.189 2015/01/26 18:42:30 schwarze Exp $ */ /* * Copyright (c) 2010, 2011, 2014 Kristaps Dzonsons - * Copyright (c) 2010-2014 Ingo Schwarze + * Copyright (c) 2010-2015 Ingo Schwarze * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -31,7 +31,7 @@ enum mandoclevel { MANDOCLEVEL_RESERVED, MANDOCLEVEL_WARNING, /* warnings: syntax, whitespace, etc. */ MANDOCLEVEL_ERROR, /* input has been thrown away */ - MANDOCLEVEL_FATAL, /* input is borked */ + MANDOCLEVEL_UNSUPP, /* input needs unimplemented features */ MANDOCLEVEL_BADARG, /* bad argument in invocation */ MANDOCLEVEL_SYSERR, /* system error */ MANDOCLEVEL_MAX @@ -127,6 +127,11 @@ enum mandocerr { MANDOCERR_ESC_BAD, /* invalid escape sequence: esc */ MANDOCERR_STR_UNDEF, /* undefined string, using "": name */ + /* related to tables */ + MANDOCERR_TBLLAYOUT_SPAN, /* tbl line starts with span */ + MANDOCERR_TBLLAYOUT_DOWN, /* tbl column starts with span */ + MANDOCERR_TBLLAYOUT_VERT, /* skipping vertical bar in tbl layout */ + MANDOCERR_ERROR, /* ===== start of errors ===== */ /* related to equations */ @@ -136,22 +141,28 @@ enum mandocerr { MANDOCERR_EQNEOF, /* unexpected end of equation */ /* related to tables */ - MANDOCERR_TBL, /* bad table syntax */ - MANDOCERR_TBLOPT, /* bad table option */ - MANDOCERR_TBLLAYOUT, /* bad table layout */ - MANDOCERR_TBLNOLAYOUT, /* no table layout cells specified */ + MANDOCERR_TBLOPT_ALPHA, /* non-alphabetic character in tbl options */ + MANDOCERR_TBLOPT_BAD, /* skipping unknown tbl option: option */ + MANDOCERR_TBLOPT_NOARG, /* missing tbl option argument */ + MANDOCERR_TBLOPT_ARGSZ, /* wrong tbl option argument size */ + MANDOCERR_TBLLAYOUT_NONE, /* empty tbl layout */ + MANDOCERR_TBLLAYOUT_CHAR, /* invalid character in tbl layout: char */ + MANDOCERR_TBLLAYOUT_PAR, /* unmatched parenthesis in tbl layout */ MANDOCERR_TBLNODATA, /* no table data cells specified */ MANDOCERR_TBLIGNDATA, /* ignore data in cell */ MANDOCERR_TBLBLOCK, /* data block still open */ MANDOCERR_TBLEXTRADAT, /* ignoring extra data cells */ /* related to document structure and macros */ + MANDOCERR_FILE, /* cannot open file */ MANDOCERR_ROFFLOOP, /* input stack limit exceeded, infinite loop? */ - MANDOCERR_BADCHAR, /* skipping bad character: number */ + MANDOCERR_CHAR_BAD, /* skipping bad character: number */ MANDOCERR_MACRO, /* skipping unknown macro: macro */ + MANDOCERR_REQ_INSEC, /* skipping insecure request: request */ MANDOCERR_IT_STRAY, /* skipping item outside list: It ... */ MANDOCERR_TA_STRAY, /* skipping column outside column list: Ta */ MANDOCERR_BLK_NOTOPEN, /* skipping end of block that is not open */ + MANDOCERR_RE_NOTOPEN, /* fewer RS blocks open, skipping: RE arg */ MANDOCERR_BLK_BROKEN, /* inserting missing end of block: macro ... */ MANDOCERR_BLK_NOEND, /* appending missing end of block: macro */ @@ -164,36 +175,27 @@ enum mandocerr { MANDOCERR_OS_UNAME, /* uname(3) system call failed, using UNKNOWN */ MANDOCERR_ST_BAD, /* unknown standard specifier: St standard */ MANDOCERR_IT_NONUM, /* skipping request without numeric argument */ + MANDOCERR_SO_PATH, /* NOT IMPLEMENTED: .so with absolute path or ".." */ + MANDOCERR_SO_FAIL, /* .so request failed */ MANDOCERR_ARG_SKIP, /* skipping all arguments: macro args */ MANDOCERR_ARG_EXCESS, /* skipping excess arguments: macro ... args */ MANDOCERR_DIVZERO, /* divide by zero */ - MANDOCERR_FATAL, /* ===== start of fatal errors ===== */ + MANDOCERR_UNSUPP, /* ===== start of unsupported features ===== */ MANDOCERR_TOOLARGE, /* input too large */ - MANDOCERR_SO_PATH, /* NOT IMPLEMENTED: .so with absolute path or ".." */ - MANDOCERR_SO_FAIL, /* .so request failed */ + MANDOCERR_CHAR_UNSUPP, /* unsupported control character: number */ + MANDOCERR_REQ_UNSUPP, /* unsupported roff request: request */ + MANDOCERR_TBLLAYOUT_MOD, /* unsupported tbl layout modifier: m */ + MANDOCERR_TBLMACRO, /* ignoring macro in table: macro */ + MANDOCERR_TBLEQN, /* eqn in tbl */ - /* ===== 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_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 }; struct tbl_opts { char tab; /* cell-separator */ char decimal; /* decimal point */ - int linesize; int opts; #define TBL_OPT_CENTRE (1 << 0) #define TBL_OPT_EXPAND (1 << 1) @@ -202,6 +204,7 @@ struct tbl_opts { #define TBL_OPT_ALLBOX (1 << 4) #define TBL_OPT_NOKEEP (1 << 5) #define TBL_OPT_NOSPACE (1 << 6) +#define TBL_OPT_NOWARN (1 << 7) int cols; /* number of columns */ }; @@ -408,19 +411,20 @@ enum mandoc_esc { ESCAPE_NUMBERED, /* a numbered glyph */ ESCAPE_UNICODE, /* a unicode codepoint */ ESCAPE_NOSPACE, /* suppress space if the last on a line */ - ESCAPE_SKIPCHAR /* skip the next character */ + ESCAPE_SKIPCHAR, /* skip the next character */ + ESCAPE_OVERSTRIKE /* overstrike all chars in the argument */ }; typedef void (*mandocmsg)(enum mandocerr, enum mandoclevel, const char *, int, int, const char *); +__BEGIN_DECLS + struct mparse; struct mchars; struct mdoc; struct man; -__BEGIN_DECLS - enum mandoc_esc mandoc_escape(const char **, const char **, int *); struct mchars *mchars_alloc(void); void mchars_free(struct mchars *); @@ -437,7 +441,7 @@ void mparse_free(struct mparse *); void mparse_keep(struct mparse *); enum mandoclevel mparse_open(struct mparse *, int *, const char *); enum mandoclevel mparse_readfd(struct mparse *, int, const char *); -enum mandoclevel mparse_readmem(struct mparse *, const void *, size_t, +enum mandoclevel mparse_readmem(struct mparse *, void *, size_t, const char *); void mparse_reset(struct mparse *); void mparse_result(struct mparse *,