aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/main.c
diff options
context:
space:
mode:
authorKristaps Dzonsons <kristaps@bsd.lv>2011-03-20 16:02:05 +0000
committerKristaps Dzonsons <kristaps@bsd.lv>2011-03-20 16:02:05 +0000
commit71ddcd873082a3c68ed2be7b7661075fb09d5849 (patch)
tree7eb75a067079e8a591b76791b56f0b7673b109d5 /main.c
parent58ca7d3112e5d39b93ab732cf103b4b0b834b106 (diff)
downloadmandoc-71ddcd873082a3c68ed2be7b7661075fb09d5849.tar.gz
mandoc-71ddcd873082a3c68ed2be7b7661075fb09d5849.tar.zst
mandoc-71ddcd873082a3c68ed2be7b7661075fb09d5849.zip
Consolidate messages. Have all parse-time messages (in libmdoc,
libroff, etc., etc.) route into mandoc_msg() and mandoc_vmsg(), for the time being in libmandoc.h. This requires struct mparse to be passed into the allocation routines instead of mandocmsg and a void pointer. Then, move some of the functionality of the old mmsg() into read.c's mparse_mmsg() (check against wlevel and setting of file_status) and use main.c's mmsg() as simply a printing tool.
Diffstat (limited to 'main.c')
-rw-r--r--main.c39
1 files changed, 9 insertions, 30 deletions
diff --git a/main.c b/main.c
index bd8bba06..fcad33cd 100644
--- a/main.c
+++ b/main.c
@@ -1,4 +1,4 @@
-/* $Id: main.c,v 1.154 2011/03/20 11:41:24 kristaps Exp $ */
+/* $Id: main.c,v 1.155 2011/03/20 16:02:05 kristaps Exp $ */
/*
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2010, 2011 Ingo Schwarze <schwarze@openbsd.org>
@@ -75,16 +75,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",
@@ -195,8 +185,8 @@ static const char * const mandocerrs[MANDOCERR_MAX] = {
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 +243,7 @@ main(int argc, char *argv[])
/* NOTREACHED */
}
- curp.mp = mparse_alloc(type, evt_open, evt_close, mmsg, &curp);
+ curp.mp = mparse_alloc(type, evt_open, evt_close, curp.wlevel, mmsg, &curp);
argc -= optind;
argv += optind;
@@ -501,27 +491,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--;
- 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]);
+ fprintf(stderr, "%s:%d:%d: %s: %s",
+ file, line, col + 1,
+ mandoclevels[lvl], mandocerrs[t]);
if (msg)
fprintf(stderr, ": %s", msg);
fputc('\n', stderr);
-
- mparse_setstatus(cp->mp, level);
}