diff options
-rw-r--r-- | TODO | 12 | ||||
-rw-r--r-- | main.c | 21 |
2 files changed, 16 insertions, 17 deletions
@@ -217,18 +217,6 @@ are mere guesses, and some may be wrong. --- missing misc features ---------------------------------------------- -- man 3am readline - does not work because man(1) only accepts digit + one letter, - otherwise explicit -s is currently required - https://github.com/void-linux/void-packages/issues/9868 - loc * exist * algo * size * imp *** - -- man 3 readline may show readline(3m) - because in manpage_compare, "3" and "3am" compare equal - https://github.com/void-linux/void-packages/issues/9868 - probably requires putting string version of section into struct manpage - loc * exist ** algo * size * imp *** - - dead .so links should be entered into the database to avoid: man -M. lvm-config man: outdated mandoc.db lacks lvm-config(8) entry, run makewhatis /co/void-man @@ -125,7 +125,7 @@ main(int argc, char *argv[]) char *conf_file, *defpaths, *auxpaths; char *oarg, *tagarg; unsigned char *uc; - size_t i, sz; + size_t i, sz, ssz; int prio, best_prio; enum outmode outmode; int fd, startdir; @@ -434,7 +434,7 @@ main(int argc, char *argv[]) if (outmode == OUTMODE_ONE) { argc = 1; - best_prio = 20; + best_prio = 40; } else if (outmode == OUTMODE_ALL) argc = (int)sz; @@ -453,10 +453,21 @@ main(int argc, char *argv[]) sec = res[i].file; sec += strcspn(sec, "123456789"); if (sec[0] == '\0') - continue; + continue; /* No section at all. */ prio = sec_prios[sec[0] - '1']; - if (sec[1] != '/') - prio += 10; + if (search.sec != NULL) { + 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) continue; best_prio = prio; |