version 1.290, 2017/05/16 19:06:30 |
version 1.293, 2017/06/24 14:38:32 |
|
|
|
|
struct curparse { |
struct curparse { |
struct mparse *mp; |
struct mparse *mp; |
enum mandoclevel wlevel; /* ignore messages below this */ |
struct manoutput *outopts; /* output options */ |
|
void *outdata; /* data for output */ |
|
char *os_s; /* operating system for display */ |
int wstop; /* stop after a file with a warning */ |
int wstop; /* stop after a file with a warning */ |
|
enum mandocerr mmin; /* ignore messages below this */ |
|
enum mandoc_os os_e; /* check base system conventions */ |
enum outt outtype; /* which output to use */ |
enum outt outtype; /* which output to use */ |
void *outdata; /* data for output */ |
|
struct manoutput *outopts; /* output options */ |
|
}; |
}; |
|
|
|
|
Line 119 main(int argc, char *argv[]) |
|
Line 121 main(int argc, char *argv[]) |
|
struct manpage *res, *resp; |
struct manpage *res, *resp; |
const char *progname, *sec, *thisarg; |
const char *progname, *sec, *thisarg; |
char *conf_file, *defpaths, *auxpaths; |
char *conf_file, *defpaths, *auxpaths; |
char *defos, *oarg; |
char *oarg; |
unsigned char *uc; |
unsigned char *uc; |
size_t i, sz; |
size_t i, sz; |
int prio, best_prio; |
int prio, best_prio; |
Line 183 main(int argc, char *argv[]) |
|
Line 185 main(int argc, char *argv[]) |
|
|
|
memset(&curp, 0, sizeof(struct curparse)); |
memset(&curp, 0, sizeof(struct curparse)); |
curp.outtype = OUTT_LOCALE; |
curp.outtype = OUTT_LOCALE; |
curp.wlevel = MANDOCLEVEL_BADARG; |
curp.mmin = MANDOCERR_MAX; |
curp.outopts = &conf.output; |
curp.outopts = &conf.output; |
options = MPARSE_SO | MPARSE_UTF8 | MPARSE_LATIN1; |
options = MPARSE_SO | MPARSE_UTF8 | MPARSE_LATIN1; |
defos = NULL; |
|
|
|
use_pager = 1; |
use_pager = 1; |
tag_files = NULL; |
tag_files = NULL; |
Line 222 main(int argc, char *argv[]) |
|
Line 223 main(int argc, char *argv[]) |
|
warnx("-I %s: Bad argument", optarg); |
warnx("-I %s: Bad argument", optarg); |
return (int)MANDOCLEVEL_BADARG; |
return (int)MANDOCLEVEL_BADARG; |
} |
} |
if (defos) { |
if (curp.os_s != NULL) { |
warnx("-I %s: Duplicate argument", optarg); |
warnx("-I %s: Duplicate argument", optarg); |
return (int)MANDOCLEVEL_BADARG; |
return (int)MANDOCLEVEL_BADARG; |
} |
} |
defos = mandoc_strdup(optarg + 3); |
curp.os_s = mandoc_strdup(optarg + 3); |
break; |
break; |
case 'K': |
case 'K': |
if ( ! koptions(&options, optarg)) |
if ( ! koptions(&options, optarg)) |
Line 446 main(int argc, char *argv[]) |
|
Line 447 main(int argc, char *argv[]) |
|
moptions(&options, auxpaths); |
moptions(&options, auxpaths); |
|
|
mchars_alloc(); |
mchars_alloc(); |
curp.mp = mparse_alloc(options, curp.wlevel, mmsg, defos); |
curp.mp = mparse_alloc(options, curp.mmin, mmsg, |
|
curp.os_e, curp.os_s); |
|
|
/* |
/* |
* Conditionally start up the lookaside buffer before parsing. |
* Conditionally start up the lookaside buffer before parsing. |
|
|
mansearch_free(res, sz); |
mansearch_free(res, sz); |
} |
} |
|
|
free(defos); |
free(curp.os_s); |
|
|
/* |
/* |
* When using a pager, finish writing both temporary files, |
* When using a pager, finish writing both temporary files, |
Line 937 toptions(struct curparse *curp, char *arg) |
|
Line 939 toptions(struct curparse *curp, char *arg) |
|
curp->outtype = OUTT_ASCII; |
curp->outtype = OUTT_ASCII; |
else if (0 == strcmp(arg, "lint")) { |
else if (0 == strcmp(arg, "lint")) { |
curp->outtype = OUTT_LINT; |
curp->outtype = OUTT_LINT; |
curp->wlevel = MANDOCLEVEL_WARNING; |
curp->mmin = MANDOCERR_BASE; |
} else if (0 == strcmp(arg, "tree")) |
} else if (0 == strcmp(arg, "tree")) |
curp->outtype = OUTT_TREE; |
curp->outtype = OUTT_TREE; |
else if (0 == strcmp(arg, "man")) |
else if (0 == strcmp(arg, "man")) |
Line 950 toptions(struct curparse *curp, char *arg) |
|
Line 952 toptions(struct curparse *curp, char *arg) |
|
curp->outtype = OUTT_UTF8; |
curp->outtype = OUTT_UTF8; |
else if (0 == strcmp(arg, "locale")) |
else if (0 == strcmp(arg, "locale")) |
curp->outtype = OUTT_LOCALE; |
curp->outtype = OUTT_LOCALE; |
else if (0 == strcmp(arg, "xhtml")) |
|
curp->outtype = OUTT_HTML; |
|
else if (0 == strcmp(arg, "ps")) |
else if (0 == strcmp(arg, "ps")) |
curp->outtype = OUTT_PS; |
curp->outtype = OUTT_PS; |
else if (0 == strcmp(arg, "pdf")) |
else if (0 == strcmp(arg, "pdf")) |
|
|
woptions(struct curparse *curp, char *arg) |
woptions(struct curparse *curp, char *arg) |
{ |
{ |
char *v, *o; |
char *v, *o; |
const char *toks[8]; |
const char *toks[11]; |
|
|
toks[0] = "stop"; |
toks[0] = "stop"; |
toks[1] = "all"; |
toks[1] = "all"; |
toks[2] = "style"; |
toks[2] = "base"; |
toks[3] = "warning"; |
toks[3] = "style"; |
toks[4] = "error"; |
toks[4] = "warning"; |
toks[5] = "unsupp"; |
toks[5] = "error"; |
toks[6] = "fatal"; |
toks[6] = "unsupp"; |
toks[7] = NULL; |
toks[7] = "fatal"; |
|
toks[8] = "openbsd"; |
|
toks[9] = "netbsd"; |
|
toks[10] = NULL; |
|
|
while (*arg) { |
while (*arg) { |
o = arg; |
o = arg; |
Line 987 woptions(struct curparse *curp, char *arg) |
|
Line 990 woptions(struct curparse *curp, char *arg) |
|
break; |
break; |
case 1: |
case 1: |
case 2: |
case 2: |
curp->wlevel = MANDOCLEVEL_STYLE; |
curp->mmin = MANDOCERR_BASE; |
break; |
break; |
case 3: |
case 3: |
curp->wlevel = MANDOCLEVEL_WARNING; |
curp->mmin = MANDOCERR_STYLE; |
break; |
break; |
case 4: |
case 4: |
curp->wlevel = MANDOCLEVEL_ERROR; |
curp->mmin = MANDOCERR_WARNING; |
break; |
break; |
case 5: |
case 5: |
curp->wlevel = MANDOCLEVEL_UNSUPP; |
curp->mmin = MANDOCERR_ERROR; |
break; |
break; |
case 6: |
case 6: |
curp->wlevel = MANDOCLEVEL_BADARG; |
curp->mmin = MANDOCERR_UNSUPP; |
break; |
break; |
|
case 7: |
|
curp->mmin = MANDOCERR_MAX; |
|
break; |
|
case 8: |
|
curp->mmin = MANDOCERR_BASE; |
|
curp->os_e = MANDOC_OS_OPENBSD; |
|
break; |
|
case 9: |
|
curp->mmin = MANDOCERR_BASE; |
|
curp->os_e = MANDOC_OS_NETBSD; |
|
break; |
default: |
default: |
warnx("-W %s: Bad argument", o); |
warnx("-W %s: Bad argument", o); |
return 0; |
return 0; |
Line 1021 mmsg(enum mandocerr t, enum mandoclevel lvl, |
|
Line 1035 mmsg(enum mandocerr t, enum mandoclevel lvl, |
|
if (line) |
if (line) |
fprintf(stderr, "%d:%d:", line, col + 1); |
fprintf(stderr, "%d:%d:", line, col + 1); |
|
|
fprintf(stderr, " %s", mparse_strlevel(lvl)); |
fprintf(stderr, " %s", |
|
t < MANDOCERR_STYLE ? "BASE" : mparse_strlevel(lvl)); |
|
|
if (NULL != (mparse_msg = mparse_strerror(t))) |
if ((mparse_msg = mparse_strerror(t)) != NULL) |
fprintf(stderr, ": %s", mparse_msg); |
fprintf(stderr, ": %s", mparse_msg); |
|
|
if (msg) |
if (msg) |