=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/mandoc/main.c,v retrieving revision 1.1 retrieving revision 1.2 diff -c -r1.1 -r1.2 *** src/usr.bin/mandoc/main.c 2009/04/06 20:30:40 1.1 --- src/usr.bin/mandoc/main.c 2009/06/14 23:00:57 1.2 *************** *** 1,20 **** ! /* $Id: main.c,v 1.1 2009/04/06 20:30:40 kristaps Exp $ */ /* ! * Copyright (c) 2008, 2009 Kristaps Dzonsons * * Permission to use, copy, modify, and distribute this software for any ! * purpose with or without fee is hereby granted, provided that the ! * above copyright notice and this permission notice appear in all ! * copies. * ! * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL ! * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED ! * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE ! * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL ! * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR ! * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER ! * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR ! * PERFORMANCE OF THIS SOFTWARE. */ #include --- 1,18 ---- ! /* $Id: main.c,v 1.2 2009/06/14 23:00:57 schwarze Exp $ */ /* ! * Copyright (c) 2008, 2009 Kristaps Dzonsons * * Permission to use, copy, modify, and distribute this software for any ! * purpose with or without fee is hereby granted, provided that the above ! * copyright notice and this permission notice appear in all copies. * ! * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ! * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ! * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ! * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ! * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ! * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ! * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #include *************** *** 175,180 **** --- 173,180 ---- free(blk.buf); if (ln.buf) free(ln.buf); + + /* TODO: have a curp_free routine. */ if (curp.outfree) (*curp.outfree)(curp.outdata); if (curp.mdoc) *************** *** 207,214 **** mancb.man_err = merr; mancb.man_warn = manwarn; ! pflags = MAN_IGN_MACRO; if (curp->fflags & NO_IGN_MACRO) pflags &= ~MAN_IGN_MACRO; --- 207,221 ---- mancb.man_err = merr; mancb.man_warn = manwarn; ! /* ! * Default behaviour is to ignore unknown macros. This is ! * specified in mandoc.1. ! */ + pflags = MAN_IGN_MACRO; + + /* Override default behaviour... */ + if (curp->fflags & NO_IGN_MACRO) pflags &= ~MAN_IGN_MACRO; *************** *** 230,237 **** --- 237,252 ---- mdoccb.mdoc_err = merr; mdoccb.mdoc_warn = mdocwarn; + /* + * Default behaviour is to ignore unknown macros, escape + * sequences and characters (very liberal). This is specified + * in mandoc.1. + */ + pflags = MDOC_IGN_MACRO | MDOC_IGN_ESCAPE | MDOC_IGN_CHARS; + /* Override default behaviour... */ + if (curp->fflags & IGN_SCOPE) pflags |= MDOC_IGN_SCOPE; if (curp->fflags & NO_IGN_ESCAPE) *************** *** 339,345 **** continue; } ! /* Check for CPP-escaped newline. */ if (pos > 0 && '\\' == ln->buf[pos - 1]) { for (j = pos - 1; j >= 0; j--) --- 354,360 ---- continue; } ! /* Check for CPP-escaped newline. */ if (pos > 0 && '\\' == ln->buf[pos - 1]) { for (j = pos - 1; j >= 0; j--) *************** *** 606,614 **** struct curparse *curp; curp = (struct curparse *)arg; - warnx("%s:%d: error: %s (column %d)", curp->file, line, msg, col); return(0); } --- 621,630 ---- struct curparse *curp; curp = (struct curparse *)arg; warnx("%s:%d: error: %s (column %d)", curp->file, line, msg, col); + + /* Always exit on errors... */ return(0); } *************** *** 642,647 **** --- 658,668 ---- if ( ! (curp->wflags & WARN_WERR)) return(1); + + /* + * If the -Werror flag is passed in, as in gcc, then all + * warnings are considered as errors. + */ warnx("%s: considering warnings as errors", __progname); *************** *** 664,669 **** --- 685,695 ---- if ( ! (curp->wflags & WARN_WERR)) return(1); + + /* + * If the -Werror flag is passed in, as in gcc, then all + * warnings are considered as errors. + */ warnx("%s: considering warnings as errors", __progname);