version 1.40, 2019/07/10 19:39:01 |
version 1.43, 2020/08/27 14:59:47 |
Line 163 manconf_free(struct manconf *conf) |
|
Line 163 manconf_free(struct manconf *conf) |
|
static void |
static void |
manconf_file(struct manconf *conf, const char *file) |
manconf_file(struct manconf *conf, const char *file) |
{ |
{ |
const char *const toks[] = { "manpath", "output", "_whatdb" }; |
const char *const toks[] = { "manpath", "output" }; |
char manpath_default[] = MANPATH_DEFAULT; |
char manpath_default[] = MANPATH_DEFAULT; |
|
|
FILE *stream; |
FILE *stream; |
Line 200 manconf_file(struct manconf *conf, const char *file) |
|
Line 200 manconf_file(struct manconf *conf, const char *file) |
|
} |
} |
|
|
switch (tok) { |
switch (tok) { |
case 2: /* _whatdb */ |
|
while (ep > cp && ep[-1] != '/') |
|
ep--; |
|
if (ep == cp) |
|
continue; |
|
*ep = '\0'; |
|
/* FALLTHROUGH */ |
|
case 0: /* manpath */ |
case 0: /* manpath */ |
manpath_add(&conf->manpath, cp, '\0'); |
manpath_add(&conf->manpath, cp, '\0'); |
*manpath_default = '\0'; |
*manpath_default = '\0'; |
|
|
manconf_output(struct manoutput *conf, const char *cp, int fromfile) |
manconf_output(struct manoutput *conf, const char *cp, int fromfile) |
{ |
{ |
const char *const toks[] = { |
const char *const toks[] = { |
|
/* Tokens requiring an argument. */ |
"includes", "man", "paper", "style", "indent", "width", |
"includes", "man", "paper", "style", "indent", "width", |
"tag", "fragment", "mdoc", "noval", "toc" |
"outfilename", "tagfilename", |
|
/* Token taking an optional argument. */ |
|
"tag", |
|
/* Tokens not taking arguments. */ |
|
"fragment", "mdoc", "noval", "toc" |
}; |
}; |
const size_t ntoks = sizeof(toks) / sizeof(toks[0]); |
const size_t ntoks = sizeof(toks) / sizeof(toks[0]); |
|
|
Line 252 manconf_output(struct manoutput *conf, const char *cp, |
|
Line 250 manconf_output(struct manoutput *conf, const char *cp, |
|
} |
} |
} |
} |
|
|
if (tok < 6 && *cp == '\0') { |
if (tok < 8 && *cp == '\0') { |
mandoc_msg(MANDOCERR_BADVAL_MISS, 0, 0, "-O %s=?", toks[tok]); |
mandoc_msg(MANDOCERR_BADVAL_MISS, 0, 0, "-O %s=?", toks[tok]); |
return -1; |
return -1; |
} |
} |
if (tok > 6 && tok < ntoks && *cp != '\0') { |
if (tok > 8 && tok < ntoks && *cp != '\0') { |
mandoc_msg(MANDOCERR_BADVAL, 0, 0, "-O %s=%s", toks[tok], cp); |
mandoc_msg(MANDOCERR_BADVAL, 0, 0, "-O %s=%s", toks[tok], cp); |
return -1; |
return -1; |
} |
} |
Line 313 manconf_output(struct manoutput *conf, const char *cp, |
|
Line 311 manconf_output(struct manoutput *conf, const char *cp, |
|
"-O width=%s is %s", cp, errstr); |
"-O width=%s is %s", cp, errstr); |
return -1; |
return -1; |
case 6: |
case 6: |
|
if (conf->outfilename != NULL) { |
|
oldval = mandoc_strdup(conf->outfilename); |
|
break; |
|
} |
|
conf->outfilename = mandoc_strdup(cp); |
|
return 0; |
|
case 7: |
|
if (conf->tagfilename != NULL) { |
|
oldval = mandoc_strdup(conf->tagfilename); |
|
break; |
|
} |
|
conf->tagfilename = mandoc_strdup(cp); |
|
return 0; |
|
/* |
|
* If the index of the following token changes, |
|
* do not forget to adjust the range check above the switch. |
|
*/ |
|
case 8: |
if (conf->tag != NULL) { |
if (conf->tag != NULL) { |
oldval = mandoc_strdup(conf->tag); |
oldval = mandoc_strdup(conf->tag); |
break; |
break; |
} |
} |
conf->tag = mandoc_strdup(cp); |
conf->tag = mandoc_strdup(cp); |
return 0; |
return 0; |
case 7: |
case 9: |
conf->fragment = 1; |
conf->fragment = 1; |
return 0; |
return 0; |
case 8: |
case 10: |
conf->mdoc = 1; |
conf->mdoc = 1; |
return 0; |
return 0; |
case 9: |
case 11: |
conf->noval = 1; |
conf->noval = 1; |
return 0; |
return 0; |
case 10: |
case 12: |
conf->toc = 1; |
conf->toc = 1; |
return 0; |
return 0; |
default: |
default: |