version 1.322, 2019/03/06 10:18:58 |
version 1.325, 2019/05/03 16:14:42 |
Line 125 main(int argc, char *argv[]) |
|
Line 125 main(int argc, char *argv[]) |
|
char *conf_file, *defpaths, *auxpaths; |
char *conf_file, *defpaths, *auxpaths; |
char *oarg, *tagarg; |
char *oarg, *tagarg; |
unsigned char *uc; |
unsigned char *uc; |
size_t i, sz; |
size_t i, sz, ssz; |
int prio, best_prio; |
int prio, best_prio; |
enum outmode outmode; |
enum outmode outmode; |
int fd, startdir; |
int fd, startdir; |
Line 355 main(int argc, char *argv[]) |
|
Line 355 main(int argc, char *argv[]) |
|
} else if (argc > 1 && |
} else if (argc > 1 && |
((uc = (unsigned char *)argv[0]) != NULL) && |
((uc = (unsigned char *)argv[0]) != NULL) && |
((isdigit(uc[0]) && (uc[1] == '\0' || |
((isdigit(uc[0]) && (uc[1] == '\0' || |
(isalpha(uc[1]) && uc[2] == '\0'))) || |
isalpha(uc[1]))) || |
(uc[0] == 'n' && uc[1] == '\0'))) { |
(uc[0] == 'n' && uc[1] == '\0'))) { |
search.sec = (char *)uc; |
search.sec = (char *)uc; |
argv++; |
argv++; |
Line 411 main(int argc, char *argv[]) |
|
Line 411 main(int argc, char *argv[]) |
|
res[sz].file = mandoc_strdup(argv[c]); |
res[sz].file = mandoc_strdup(argv[c]); |
res[sz].names = NULL; |
res[sz].names = NULL; |
res[sz].output = NULL; |
res[sz].output = NULL; |
|
res[sz].bits = 0; |
res[sz].ipath = SIZE_MAX; |
res[sz].ipath = SIZE_MAX; |
res[sz].sec = 10; |
res[sz].sec = 10; |
res[sz].form = FORM_SRC; |
res[sz].form = FORM_SRC; |
Line 433 main(int argc, char *argv[]) |
|
Line 434 main(int argc, char *argv[]) |
|
|
|
if (outmode == OUTMODE_ONE) { |
if (outmode == OUTMODE_ONE) { |
argc = 1; |
argc = 1; |
best_prio = 20; |
best_prio = 40; |
} else if (outmode == OUTMODE_ALL) |
} else if (outmode == OUTMODE_ALL) |
argc = (int)sz; |
argc = (int)sz; |
|
|
Line 452 main(int argc, char *argv[]) |
|
Line 453 main(int argc, char *argv[]) |
|
sec = res[i].file; |
sec = res[i].file; |
sec += strcspn(sec, "123456789"); |
sec += strcspn(sec, "123456789"); |
if (sec[0] == '\0') |
if (sec[0] == '\0') |
continue; |
continue; /* No section at all. */ |
prio = sec_prios[sec[0] - '1']; |
prio = sec_prios[sec[0] - '1']; |
if (sec[1] != '/') |
if (search.sec != NULL) { |
prio += 10; |
ssz = strlen(search.sec); |
|
if (strncmp(sec, search.sec, ssz) == 0) |
|
sec += ssz; |
|
} else |
|
sec++; /* Prefer without suffix. */ |
|
if (*sec != '/') |
|
prio += 10; /* Wrong dir name. */ |
|
if (search.sec != NULL && |
|
(strlen(sec) <= ssz + 3 || |
|
strcmp(sec + strlen(sec) - ssz, |
|
search.sec) != 0)) |
|
prio += 20; /* Wrong file ext. */ |
if (prio >= best_prio) |
if (prio >= best_prio) |
continue; |
continue; |
best_prio = prio; |
best_prio = prio; |
|
|
page->file = file; |
page->file = file; |
page->names = NULL; |
page->names = NULL; |
page->output = NULL; |
page->output = NULL; |
|
page->bits = NAME_FILE & NAME_MASK; |
page->ipath = ipath; |
page->ipath = ipath; |
page->sec = (*sec >= '1' && *sec <= '9') ? *sec - '1' + 1 : 10; |
page->sec = (*sec >= '1' && *sec <= '9') ? *sec - '1' + 1 : 10; |
page->form = form; |
page->form = form; |