=================================================================== RCS file: /cvs/mandoc/main.c,v retrieving revision 1.30 retrieving revision 1.34 diff -u -p -r1.30 -r1.34 --- mandoc/main.c 2009/06/16 20:22:23 1.30 +++ mandoc/main.c 2009/07/04 11:10:36 1.34 @@ -1,4 +1,4 @@ -/* $Id: main.c,v 1.30 2009/06/16 20:22:23 kristaps Exp $ */ +/* $Id: main.c,v 1.34 2009/07/04 11:10:36 kristaps Exp $ */ /* * Copyright (c) 2008, 2009 Kristaps Dzonsons * @@ -132,19 +132,19 @@ main(int argc, char *argv[]) switch (c) { case ('f'): if ( ! foptions(&curp.fflags, optarg)) - return(0); + return(EXIT_FAILURE); break; case ('m'): if ( ! moptions(&curp.inttype, optarg)) - return(0); + return(EXIT_FAILURE); break; case ('T'): if ( ! toptions(&curp.outtype, optarg)) - return(0); + return(EXIT_FAILURE); break; case ('W'): if ( ! woptions(&curp.wflags, optarg)) - return(0); + return(EXIT_FAILURE); break; case ('V'): version(); @@ -232,10 +232,14 @@ man_init(struct curparse *curp) /* Defaults from mandoc.1. */ - pflags = MAN_IGN_MACRO; + pflags = MAN_IGN_MACRO | MAN_IGN_ESCAPE | MAN_IGN_CHARS; if (curp->fflags & NO_IGN_MACRO) pflags &= ~MAN_IGN_MACRO; + if (curp->fflags & NO_IGN_CHARS) + pflags &= ~MAN_IGN_CHARS; + if (curp->fflags & NO_IGN_ESCAPE) + pflags &= ~MAN_IGN_ESCAPE; if (NULL == (man = man_alloc(curp, pflags, &mancb))) warnx("memory exhausted"); @@ -316,7 +320,7 @@ fdesc(struct buf *blk, struct buf *ln, struct curparse */ if (-1 == fstat(curp->fd, &st)) - warnx("%s", curp->file); + warn("%s", curp->file); else if ((size_t)st.st_blksize > sz) sz = st.st_blksize; @@ -550,7 +554,7 @@ toptions(enum outt *tflags, char *arg) static int foptions(int *fflags, char *arg) { - char *v; + char *v, *o; char *toks[6]; toks[0] = "ign-scope"; @@ -560,7 +564,8 @@ foptions(int *fflags, char *arg) toks[4] = "strict"; toks[5] = NULL; - while (*arg) + while (*arg) { + o = arg; switch (getsubopt(&arg, toks, &v)) { case (0): *fflags |= IGN_SCOPE; @@ -579,9 +584,10 @@ foptions(int *fflags, char *arg) NO_IGN_MACRO | NO_IGN_CHARS; break; default: - warnx("bad argument: -f%s", arg); + warnx("bad argument: -f%s", o); return(0); } + } return(1); } @@ -590,7 +596,7 @@ foptions(int *fflags, char *arg) static int woptions(int *wflags, char *arg) { - char *v; + char *v, *o; char *toks[5]; toks[0] = "all"; @@ -599,7 +605,8 @@ woptions(int *wflags, char *arg) toks[3] = "error"; toks[4] = NULL; - while (*arg) + while (*arg) { + o = arg; switch (getsubopt(&arg, toks, &v)) { case (0): *wflags |= WARN_WALL; @@ -614,9 +621,10 @@ woptions(int *wflags, char *arg) *wflags |= WARN_WERR; break; default: - warnx("bad argument: -W%s", arg); + warnx("bad argument: -W%s", o); return(0); } + } return(1); }