=================================================================== RCS file: /cvs/mandoc/main.c,v retrieving revision 1.233 retrieving revision 1.237 diff -u -p -r1.233 -r1.237 --- mandoc/main.c 2015/04/16 16:36:21 1.233 +++ mandoc/main.c 2015/04/20 09:54:48 1.237 @@ -1,4 +1,4 @@ -/* $Id: main.c,v 1.233 2015/04/16 16:36:21 schwarze Exp $ */ +/* $Id: main.c,v 1.237 2015/04/20 09:54:48 schwarze Exp $ */ /* * Copyright (c) 2008-2012 Kristaps Dzonsons * Copyright (c) 2010-2012, 2014, 2015 Ingo Schwarze @@ -58,8 +58,8 @@ enum outmode { OUTMODE_ONE }; -typedef void (*out_mdoc)(void *, const struct mdoc *); -typedef void (*out_man)(void *, const struct man *); +typedef void (*out_mdoc)(void *, const struct roff_man *); +typedef void (*out_man)(void *, const struct roff_man *); typedef void (*out_free)(void *); enum outt { @@ -352,9 +352,15 @@ main(int argc, char *argv[]) sz = 0; #endif - if (sz == 0 && search.argmode == ARG_NAME) - fs_search(&search, &conf.manpath, - argc, argv, &res, &sz); + if (sz == 0) { + if (search.argmode == ARG_NAME) + fs_search(&search, &conf.manpath, + argc, argv, &res, &sz); + else + fprintf(stderr, + "%s: nothing appropriate\n", + progname); + } if (sz == 0) { rc = MANDOCLEVEL_BADARG; @@ -632,8 +638,7 @@ static void parse(struct curparse *curp, int fd, const char *file) { enum mandoclevel rctmp; - struct mdoc *mdoc; - struct man *man; + struct roff_man *man; /* Begin by parsing the file itself. */ @@ -720,14 +725,16 @@ parse(struct curparse *curp, int fd, const char *file) } } - mparse_result(curp->mp, &mdoc, &man, NULL); + mparse_result(curp->mp, &man, NULL); /* Execute the out device, if it exists. */ - if (man && curp->outman) + if (man == NULL) + return; + if (curp->outmdoc != NULL && man->macroset == MACROSET_MDOC) + (*curp->outmdoc)(curp->outdata, man); + if (curp->outman != NULL && man->macroset == MACROSET_MAN) (*curp->outman)(curp->outdata, man); - if (mdoc && curp->outmdoc) - (*curp->outmdoc)(curp->outdata, mdoc); } static void