version 1.211, 2015/01/01 13:20:38 |
version 1.212, 2015/01/13 13:22:22 |
|
|
/* $Id$ */ |
/* $Id$ */ |
/* |
/* |
* Copyright (c) 2008-2012 Kristaps Dzonsons <kristaps@bsd.lv> |
* Copyright (c) 2008-2012 Kristaps Dzonsons <kristaps@bsd.lv> |
* Copyright (c) 2010, 2011, 2012, 2014 Ingo Schwarze <schwarze@openbsd.org> |
* Copyright (c) 2010-2012, 2014, 2015 Ingo Schwarze <schwarze@openbsd.org> |
* Copyright (c) 2010 Joerg Sonnenberger <joerg@netbsd.org> |
* Copyright (c) 2010 Joerg Sonnenberger <joerg@netbsd.org> |
* |
* |
* Permission to use, copy, modify, and distribute this software for any |
* Permission to use, copy, modify, and distribute this software for any |
Line 405 main(int argc, char *argv[]) |
|
Line 405 main(int argc, char *argv[]) |
|
if (search.argmode == ARG_FILE && ! moptions(&options, auxpaths)) |
if (search.argmode == ARG_FILE && ! moptions(&options, auxpaths)) |
return((int)MANDOCLEVEL_BADARG); |
return((int)MANDOCLEVEL_BADARG); |
|
|
if (use_pager && isatty(STDOUT_FILENO)) |
|
spawn_pager(); |
|
|
|
curp.mchars = mchars_alloc(); |
curp.mchars = mchars_alloc(); |
curp.mp = mparse_alloc(options, curp.wlevel, mmsg, |
curp.mp = mparse_alloc(options, curp.wlevel, mmsg, |
curp.mchars, defos); |
curp.mchars, defos); |
Line 418 main(int argc, char *argv[]) |
|
Line 415 main(int argc, char *argv[]) |
|
if (OUTT_MAN == curp.outtype) |
if (OUTT_MAN == curp.outtype) |
mparse_keep(curp.mp); |
mparse_keep(curp.mp); |
|
|
if (argc == 0) |
if (argc == 0) { |
|
if (use_pager && isatty(STDOUT_FILENO)) |
|
spawn_pager(); |
parse(&curp, STDIN_FILENO, "<stdin>", &rc); |
parse(&curp, STDIN_FILENO, "<stdin>", &rc); |
|
} |
|
|
while (argc) { |
while (argc) { |
|
rc = mparse_open(curp.mp, &fd, |
#if HAVE_SQLITE3 |
#if HAVE_SQLITE3 |
if (resp != NULL) { |
resp != NULL ? resp->file : |
rc = mparse_open(curp.mp, &fd, resp->file); |
#endif |
if (fd == -1) |
*argv); |
/* nothing */; |
|
|
if (fd != -1) { |
|
if (use_pager && isatty(STDOUT_FILENO)) |
|
spawn_pager(); |
|
use_pager = 0; |
|
|
|
#if HAVE_SQLITE3 |
|
if (resp == NULL) |
|
#endif |
|
parse(&curp, fd, *argv, &rc); |
|
#if HAVE_SQLITE3 |
else if (resp->form & FORM_SRC) { |
else if (resp->form & FORM_SRC) { |
/* For .so only; ignore failure. */ |
/* For .so only; ignore failure. */ |
chdir(paths.paths[resp->ipath]); |
chdir(paths.paths[resp->ipath]); |
Line 434 main(int argc, char *argv[]) |
|
Line 445 main(int argc, char *argv[]) |
|
} else |
} else |
rc = passthrough(resp->file, fd, |
rc = passthrough(resp->file, fd, |
synopsis_only); |
synopsis_only); |
resp++; |
|
} else |
|
#endif |
#endif |
{ |
|
rc = mparse_open(curp.mp, &fd, *argv++); |
|
if (fd != -1) |
|
parse(&curp, fd, argv[-1], &rc); |
|
} |
|
|
|
if (mparse_wait(curp.mp) != MANDOCLEVEL_OK) |
if (mparse_wait(curp.mp) != MANDOCLEVEL_OK) |
rc = MANDOCLEVEL_SYSERR; |
rc = MANDOCLEVEL_SYSERR; |
|
|
|
if (argc > 1 && curp.outtype <= OUTT_UTF8) |
|
ascii_sepline(curp.outdata); |
|
} |
|
|
if (MANDOCLEVEL_OK != rc && curp.wstop) |
if (MANDOCLEVEL_OK != rc && curp.wstop) |
break; |
break; |
|
|
if (--argc && curp.outtype <= OUTT_UTF8) |
#if HAVE_SQLITE3 |
ascii_sepline(curp.outdata); |
if (resp != NULL) |
|
resp++; |
|
else |
|
#endif |
|
argv++; |
|
if (--argc) |
|
mparse_reset(curp.mp); |
} |
} |
|
|
if (curp.outfree) |
if (curp.outfree) |
Line 616 parse(struct curparse *curp, int fd, const char *file, |
|
Line 630 parse(struct curparse *curp, int fd, const char *file, |
|
if (mdoc && curp->outmdoc) |
if (mdoc && curp->outmdoc) |
(*curp->outmdoc)(curp->outdata, mdoc); |
(*curp->outmdoc)(curp->outdata, mdoc); |
|
|
cleanup: |
cleanup: |
|
|
mparse_reset(curp->mp); |
|
|
|
if (*level < rc) |
if (*level < rc) |
*level = rc; |
*level = rc; |
} |
} |