[PATCH v2] man: don't skip default path which appears in config file

Denys Vlasenko vda.linux at googlemail.com
Tue Mar 26 16:46:56 UTC 2019


Applied, thanks!

On Fri, Mar 22, 2019 at 5:25 PM Ron Yorston <rmy at pobox.com> wrote:
>
> 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
>
> v2: xrealloc_vector has to be called with consecutive indices.  Not
>     starting from 0 is a no-no.
>
> Signed-off-by: Ron Yorston <rmy at pobox.com>
> ---
>  miscutils/man.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
>
> 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);
> --
> 2.20.1
>
> _______________________________________________
> busybox mailing list
> busybox at busybox.net
> http://lists.busybox.net/mailman/listinfo/busybox


More information about the busybox mailing list