=================================================================== RCS file: /cvs/mandoc/main.c,v retrieving revision 1.150 retrieving revision 1.151 diff -u -p -r1.150 -r1.151 --- mandoc/main.c 2011/03/15 16:23:51 1.150 +++ mandoc/main.c 2011/03/16 15:28:35 1.151 @@ -1,4 +1,4 @@ -/* $Id: main.c,v 1.150 2011/03/15 16:23:51 kristaps Exp $ */ +/* $Id: main.c,v 1.151 2011/03/16 15:28:35 kristaps Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2010, 2011 Ingo Schwarze @@ -77,6 +77,7 @@ enum outt { }; struct curparse { + enum mandoclevel exit_status; /* status of all file parses */ const char *file; /* current file-name */ enum mandoclevel file_status; /* error status of current parse */ int fd; /* current file-descriptor */ @@ -241,7 +242,6 @@ static void version(void) __attribute__((noreturn)) static int woptions(struct curparse *, char *); static const char *progname; -static enum mandoclevel exit_status = MANDOCLEVEL_OK; int main(int argc, char *argv[]) @@ -260,6 +260,7 @@ main(int argc, char *argv[]) curp.inttype = INTT_AUTO; curp.outtype = OUTT_ASCII; curp.wlevel = MANDOCLEVEL_FATAL; + curp.exit_status = MANDOCLEVEL_OK; /* LINTED */ while (-1 != (c = getopt(argc, argv, "m:O:T:VW:"))) @@ -300,7 +301,7 @@ main(int argc, char *argv[]) while (*argv) { ffile(*argv, &curp); - if (MANDOCLEVEL_OK != exit_status && curp.wstop) + if (MANDOCLEVEL_OK != curp.exit_status && curp.wstop) break; ++argv; } @@ -314,7 +315,7 @@ main(int argc, char *argv[]) if (curp.roff) roff_free(curp.roff); - return((int)exit_status); + return((int)curp.exit_status); } @@ -359,7 +360,7 @@ ffile(const char *file, struct curparse *curp) if (-1 == (curp->fd = open(curp->file, O_RDONLY, 0))) { perror(curp->file); - exit_status = MANDOCLEVEL_SYSERR; + curp->exit_status = MANDOCLEVEL_SYSERR; return; } @@ -618,8 +619,8 @@ fdesc(struct curparse *curp) assert(curp->roff); roff_reset(curp->roff); - if (exit_status < curp->file_status) - exit_status = curp->file_status; + if (curp->exit_status < curp->file_status) + curp->exit_status = curp->file_status; return; }