version 1.257, 2018/12/13 05:23:38 |
version 1.258, 2018/12/13 11:55:46 |
|
|
/* $Id$ */ |
/* $Id$ */ |
/* |
/* |
* Copyright (c) 2010, 2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv> |
* Copyright (c) 2010, 2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv> |
* Copyright (c) 2010, 2012-2018 Ingo Schwarze <schwarze@openbsd.org> |
* Copyright (c) 2012-2018 Ingo Schwarze <schwarze@openbsd.org> |
* |
* |
* Permission to use, copy, modify, and distribute this software for any |
* Permission to use, copy, modify, and distribute this software for any |
* purpose with or without fee is hereby granted, provided that the above |
* purpose with or without fee is hereby granted, provided that the above |
|
|
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
|
* |
|
* Error handling, escape sequence, and character utilities. |
*/ |
*/ |
|
|
#define ASCII_NBRSP 31 /* non-breaking space */ |
#define ASCII_NBRSP 31 /* non-breaking space */ |
Line 241 enum mandocerr { |
|
Line 243 enum mandocerr { |
|
MANDOCERR_MAX |
MANDOCERR_MAX |
}; |
}; |
|
|
/* |
|
* Parse options. |
|
*/ |
|
#define MPARSE_MDOC 1 /* assume -mdoc */ |
|
#define MPARSE_MAN 2 /* assume -man */ |
|
#define MPARSE_SO 4 /* honour .so requests */ |
|
#define MPARSE_QUICK 8 /* abort the parse early */ |
|
#define MPARSE_UTF8 16 /* accept UTF-8 input */ |
|
#define MPARSE_LATIN1 32 /* accept ISO-LATIN-1 input */ |
|
|
|
enum mandoc_os { |
|
MANDOC_OS_OTHER = 0, |
|
MANDOC_OS_NETBSD, |
|
MANDOC_OS_OPENBSD |
|
}; |
|
|
|
enum mandoc_esc { |
enum mandoc_esc { |
ESCAPE_ERROR = 0, /* bail! unparsable escape */ |
ESCAPE_ERROR = 0, /* bail! unparsable escape */ |
ESCAPE_IGNORE, /* escape to be ignored */ |
ESCAPE_IGNORE, /* escape to be ignored */ |
Line 283 typedef void (*mandocmsg)(enum mandocerr, enum mandocl |
|
Line 269 typedef void (*mandocmsg)(enum mandocerr, enum mandocl |
|
const char *, int, int, const char *); |
const char *, int, int, const char *); |
|
|
|
|
struct mparse; |
|
struct roff_man; |
|
|
|
enum mandoc_esc mandoc_escape(const char **, const char **, int *); |
enum mandoc_esc mandoc_escape(const char **, const char **, int *); |
void mchars_alloc(void); |
void mchars_alloc(void); |
void mchars_free(void); |
void mchars_free(void); |
Line 294 const char *mchars_uc2str(int); |
|
Line 277 const char *mchars_uc2str(int); |
|
int mchars_num2uc(const char *, size_t); |
int mchars_num2uc(const char *, size_t); |
int mchars_spec2cp(const char *, size_t); |
int mchars_spec2cp(const char *, size_t); |
const char *mchars_spec2str(const char *, size_t, size_t *); |
const char *mchars_spec2str(const char *, size_t, size_t *); |
struct mparse *mparse_alloc(int, enum mandocerr, mandocmsg, |
|
enum mandoc_os, const char *); |
|
void mparse_free(struct mparse *); |
|
int mparse_open(struct mparse *, const char *); |
|
enum mandoclevel mparse_readfd(struct mparse *, int, const char *); |
|
enum mandoclevel mparse_readmem(struct mparse *, void *, size_t, |
|
const char *); |
|
void mparse_reset(struct mparse *); |
|
void mparse_result(struct mparse *, |
|
struct roff_man **, char **); |
|
void mparse_copy(const struct mparse *); |
|
const char *mparse_strerror(enum mandocerr); |
|
const char *mparse_strlevel(enum mandoclevel); |
|
void mparse_updaterc(struct mparse *, enum mandoclevel *); |
|