=================================================================== RCS file: /cvs/mandoc/main.c,v retrieving revision 1.176 retrieving revision 1.179 diff -u -p -r1.176 -r1.179 --- mandoc/main.c 2014/06/21 16:18:25 1.176 +++ mandoc/main.c 2014/08/16 23:04:25 1.179 @@ -1,4 +1,4 @@ -/* $Id: main.c,v 1.176 2014/06/21 16:18:25 schwarze Exp $ */ +/* $Id: main.c,v 1.179 2014/08/16 23:04:25 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2010, 2011, 2012, 2014 Ingo Schwarze @@ -16,10 +16,10 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -#ifdef HAVE_CONFIG_H #include "config.h" -#endif +#include + #include #include #include @@ -68,6 +68,10 @@ struct curparse { char outopts[BUFSIZ]; /* buf of output opts */ }; +#if HAVE_SQLITE3 +int apropos(int, char**); +#endif + static int moptions(int *, char *); static void mmsg(enum mandocerr, enum mandoclevel, const char *, int, int, const char *); @@ -96,6 +100,12 @@ main(int argc, char *argv[]) else ++progname; +#if HAVE_SQLITE3 + if (0 == strncmp(progname, "apropos", 7) || + 0 == strncmp(progname, "whatis", 6)) + return(apropos(argc, argv)); +#endif + memset(&curp, 0, sizeof(struct curparse)); options = MPARSE_SO; @@ -411,14 +421,17 @@ static void mmsg(enum mandocerr t, enum mandoclevel lvl, const char *file, int line, int col, const char *msg) { + const char *mparse_msg; fprintf(stderr, "%s: %s:", progname, file); if (line) fprintf(stderr, "%d:%d:", line, col + 1); - fprintf(stderr, " %s: %s", mparse_strlevel(lvl), - mparse_strerror(t)); + fprintf(stderr, " %s", mparse_strlevel(lvl)); + + if (NULL != (mparse_msg = mparse_strerror(t))) + fprintf(stderr, ": %s", mparse_msg); if (msg) fprintf(stderr, ": %s", msg);