=================================================================== RCS file: /cvs/mandoc/read.c,v retrieving revision 1.7 retrieving revision 1.11 diff -u -p -r1.7 -r1.11 --- mandoc/read.c 2011/03/28 21:49:42 1.7 +++ mandoc/read.c 2011/04/04 23:04:38 1.11 @@ -1,4 +1,4 @@ -/* $Id: read.c,v 1.7 2011/03/28 21:49:42 kristaps Exp $ */ +/* $Id: read.c,v 1.11 2011/04/04 23:04:38 kristaps Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2010, 2011 Ingo Schwarze @@ -15,6 +15,10 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include #include @@ -662,6 +666,8 @@ mparse_alloc(enum mparset inttype, enum mandoclevel wl { struct mparse *curp; + assert(wlevel <= MANDOCLEVEL_FATAL); + curp = mandoc_calloc(1, sizeof(struct mparse)); curp->wlevel = wlevel; @@ -709,8 +715,10 @@ void mparse_result(struct mparse *curp, struct mdoc **mdoc, struct man **man) { - *mdoc = curp->mdoc; - *man = curp->man; + if (mdoc) + *mdoc = curp->mdoc; + if (man) + *man = curp->man; } void @@ -740,7 +748,8 @@ mandoc_msg(enum mandocerr er, struct mparse *m, if (level < m->wlevel) return; - (*m->mmsg)(er, level, m->file, ln, col, msg); + if (m->mmsg) + (*m->mmsg)(er, level, m->file, ln, col, msg); if (m->file_status < level) m->file_status = level;