=================================================================== RCS file: /cvs/mandoc/main.c,v retrieving revision 1.214 retrieving revision 1.217 diff -u -p -r1.214 -r1.217 --- mandoc/main.c 2015/01/14 21:27:17 1.214 +++ mandoc/main.c 2015/01/20 21:16:51 1.217 @@ -1,4 +1,4 @@ -/* $Id: main.c,v 1.214 2015/01/14 21:27:17 schwarze Exp $ */ +/* $Id: main.c,v 1.217 2015/01/20 21:16:51 schwarze Exp $ */ /* * Copyright (c) 2008-2012 Kristaps Dzonsons * Copyright (c) 2010-2012, 2014, 2015 Ingo Schwarze @@ -19,6 +19,7 @@ #include "config.h" #include +#include /* MACHINE */ #include #include @@ -176,7 +177,7 @@ main(int argc, char *argv[]) memset(&curp, 0, sizeof(struct curparse)); curp.outtype = OUTT_LOCALE; - curp.wlevel = MANDOCLEVEL_FATAL; + curp.wlevel = MANDOCLEVEL_BADARG; options = MPARSE_SO | MPARSE_UTF8 | MPARSE_LATIN1; defos = NULL; @@ -328,6 +329,10 @@ main(int argc, char *argv[]) argv++; argc--; } + if (search.arch == NULL) + search.arch = getenv("MACHINE"); + if (search.arch == NULL) + search.arch = MACHINE; } rc = MANDOCLEVEL_OK; @@ -647,11 +652,6 @@ parse(struct curparse *curp, int fd, const char *file, rc = mparse_readfd(curp->mp, fd, file); - /* Stop immediately if the parse has failed. */ - - if (MANDOCLEVEL_FATAL <= rc) - goto cleanup; - /* * With -Wstop and warnings or errors of at least the requested * level, do not produce output. @@ -889,14 +889,15 @@ static int woptions(struct curparse *curp, char *arg) { char *v, *o; - const char *toks[6]; + const char *toks[7]; toks[0] = "stop"; toks[1] = "all"; toks[2] = "warning"; toks[3] = "error"; - toks[4] = "fatal"; - toks[5] = NULL; + toks[4] = "unsupp"; + toks[5] = "fatal"; + toks[6] = NULL; while (*arg) { o = arg; @@ -913,7 +914,10 @@ woptions(struct curparse *curp, char *arg) curp->wlevel = MANDOCLEVEL_ERROR; break; case 4: - curp->wlevel = MANDOCLEVEL_FATAL; + curp->wlevel = MANDOCLEVEL_UNSUPP; + break; + case 5: + curp->wlevel = MANDOCLEVEL_BADARG; break; default: fprintf(stderr, "%s: -W %s: Bad argument\n",