aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRon Yorston <rmy@pobox.com>2019-03-22 16:25:32 +0000
committerDenys Vlasenko <vda.linux@googlemail.com>2019-03-26 17:46:21 +0100
commit3c6f3336e124be483e4852f022b1d07c1d2f7f2c (patch)
tree5d7fe8471ca058671bb773359c125277bfa4350d
parentfe78c9a8b727b0145fa93505cca621fe7962b9e9 (diff)
downloadbusybox-3c6f3336e124be483e4852f022b1d07c1d2f7f2c.tar.gz
man: don't skip default path which appears in config file
If the MANPATH environment variable isn't set a provisional default path of /usr/man is placed in man_path_list. This is only used if a configuration file doesn't contain an alternative path. If a configuration file lists the default path first: MANPATH /usr/man:/usr/share/man add_MANPATH() sees that the default entry is already present and skips it. As a result man_path_list only contains the second and subsequent components of the configured MANPATH. In such cases the path should not be skipped. function old new delta add_MANPATH 170 183 +13 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/0 up/down: 13/0) Total: 13 bytes Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--miscutils/man.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/miscutils/man.c b/miscutils/man.c
index 01155c8f0..9884325b7 100644
--- a/miscutils/man.c
+++ b/miscutils/man.c
@@ -209,8 +209,12 @@ static char **add_MANPATH(char **man_path_list, int *count_mp, char *path)
/* Do we already have path? */
path_element = man_path_list;
if (path_element) while (*path_element) {
- if (strcmp(*path_element, path) == 0)
+ if (strcmp(*path_element, path) == 0) {
+ /* Have path but haven't counted it, must be default */
+ if (*count_mp == 0)
+ break;
goto skip;
+ }
path_element++;
}
man_path_list = xrealloc_vector(man_path_list, 4, *count_mp);