=================================================================== RCS file: /cvs/mandoc/main.c,v retrieving revision 1.154 retrieving revision 1.156 diff -u -p -r1.154 -r1.156 --- mandoc/main.c 2011/03/20 11:41:24 1.154 +++ mandoc/main.c 2011/03/20 16:05:21 1.156 @@ -1,4 +1,4 @@ -/* $Id: main.c,v 1.154 2011/03/20 11:41:24 kristaps Exp $ */ +/* $Id: main.c,v 1.156 2011/03/20 16:05:21 kristaps Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2010, 2011 Ingo Schwarze @@ -54,7 +54,6 @@ enum outt { struct curparse { struct mparse *mp; - const char *file; /* current file-name */ enum mandoclevel wlevel; /* ignore messages below this */ int wstop; /* stop after a file with a warning */ enum outt outtype; /* which output to use */ @@ -75,16 +74,6 @@ static const char * const mandoclevels[MANDOCLEVEL_MAX "SYSERR" }; -static const enum mandocerr mandoclimits[MANDOCLEVEL_MAX] = { - MANDOCERR_OK, - MANDOCERR_WARNING, - MANDOCERR_WARNING, - MANDOCERR_ERROR, - MANDOCERR_FATAL, - MANDOCERR_MAX, - MANDOCERR_MAX -}; - static const char * const mandocerrs[MANDOCERR_MAX] = { "ok", @@ -192,11 +181,9 @@ static const char * const mandocerrs[MANDOCERR_MAX] = "static buffer exhausted", }; -static void evt_close(void *, const char *); -static int evt_open(void *, const char *); static int moptions(enum mparset *, char *); -static void mmsg(enum mandocerr, void *, - int, int, const char *); +static void mmsg(enum mandocerr, enum mandoclevel, + const char *, int, int, const char *); static void parse(struct curparse *, int, const char *, enum mandoclevel *); static int toptions(struct curparse *, char *); @@ -253,7 +240,7 @@ main(int argc, char *argv[]) /* NOTREACHED */ } - curp.mp = mparse_alloc(type, evt_open, evt_close, mmsg, &curp); + curp.mp = mparse_alloc(type, curp.wlevel, mmsg, &curp); argc -= optind; argv += optind; @@ -303,24 +290,7 @@ usage(void) exit((int)MANDOCLEVEL_BADARG); } -static int -evt_open(void *arg, const char *file) -{ - - evt_close(arg, file); - return(1); -} - static void -evt_close(void *arg, const char *file) -{ - struct curparse *p; - - p = (struct curparse *)arg; - p->file = file; -} - -static void parse(struct curparse *curp, int fd, const char *file, enum mandoclevel *level) { @@ -501,27 +471,16 @@ woptions(struct curparse *curp, char *arg) } static void -mmsg(enum mandocerr t, void *arg, int ln, int col, const char *msg) +mmsg(enum mandocerr t, enum mandoclevel lvl, + const char *file, int line, int col, const char *msg) { - struct curparse *cp; - enum mandoclevel level; - level = MANDOCLEVEL_FATAL; - while (t < mandoclimits[level]) - /* LINTED */ - level--; + fprintf(stderr, "%s:%d:%d: %s: %s", + file, line, col + 1, + mandoclevels[lvl], mandocerrs[t]); - cp = (struct curparse *)arg; - if (level < cp->wlevel) - return; - - fprintf(stderr, "%s:%d:%d: %s: %s", cp->file, ln, col + 1, - mandoclevels[level], mandocerrs[t]); - if (msg) fprintf(stderr, ": %s", msg); fputc('\n', stderr); - - mparse_setstatus(cp->mp, level); }