=================================================================== RCS file: /cvs/mandoc/main.c,v retrieving revision 1.31 retrieving revision 1.35 diff -u -p -r1.31 -r1.35 --- mandoc/main.c 2009/06/18 10:32:00 1.31 +++ mandoc/main.c 2009/07/06 09:21:24 1.35 @@ -1,4 +1,4 @@ -/* $Id: main.c,v 1.31 2009/06/18 10:32:00 kristaps Exp $ */ +/* $Id: main.c,v 1.35 2009/07/06 09:21:24 kristaps Exp $ */ /* * Copyright (c) 2008, 2009 Kristaps Dzonsons * @@ -99,8 +99,7 @@ static int moptions(enum intt *, char *); static int woptions(int *, char *); static int merr(void *, int, int, const char *); static int manwarn(void *, int, int, const char *); -static int mdocwarn(void *, int, int, - enum mdoc_warn, const char *); +static int mdocwarn(void *, int, int, const char *); static int ffile(struct buf *, struct buf *, const char *, struct curparse *); static int fdesc(struct buf *, struct buf *, @@ -132,19 +131,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,12 +231,14 @@ man_init(struct curparse *curp) /* Defaults from mandoc.1. */ - pflags = MAN_IGN_MACRO | MAN_IGN_CHARS; + 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"); @@ -318,7 +319,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; @@ -552,7 +553,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"; @@ -562,7 +563,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; @@ -581,9 +583,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); } @@ -592,7 +595,7 @@ foptions(int *fflags, char *arg) static int woptions(int *wflags, char *arg) { - char *v; + char *v, *o; char *toks[5]; toks[0] = "all"; @@ -601,7 +604,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; @@ -616,9 +620,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); } @@ -639,31 +644,14 @@ merr(void *arg, int line, int col, const char *msg) static int -mdocwarn(void *arg, int line, int col, - enum mdoc_warn type, const char *msg) +mdocwarn(void *arg, int line, int col, const char *msg) { struct curparse *curp; - char *wtype; curp = (struct curparse *)arg; - wtype = NULL; - switch (type) { - case (WARN_COMPAT): - wtype = "compat"; - if (curp->wflags & WARN_WCOMPAT) - break; - return(1); - case (WARN_SYNTAX): - wtype = "syntax"; - if (curp->wflags & WARN_WSYNTAX) - break; - return(1); - } - - assert(wtype); - warnx("%s:%d: %s warning: %s (column %d)", - curp->file, line, wtype, msg, col); + warnx("%s:%d: warning: %s (column %d)", + curp->file, line, msg, col); if ( ! (curp->wflags & WARN_WERR)) return(1);