On Sat, Apr 03, 2021 at 02:33:05AM +0200, Klemens Nanni wrote:
> It has always bothered me that linting manuals complained about missing
> manuals from packages despite their path being part of the default
> MANPATH:
> 
> No local man(1) config:
> 
>       $ echo $MANPATH
>       ksh: MANPATH: parameter not set
>       $ cat /etc/man.conf
>       cat: /etc/man.conf: No such file or directory
> 
> man(1) finds tog(1), but mandoc(1) does not:
> 
>       $ mandoc -T lint `man -w tog` | grep 'not found'
>       mandoc: /usr/local/man/man1/tog.1:35:6: STYLE: referenced manual not 
> found: Xr git-repository 5 (2 times)
>       mandoc: /usr/local/man/man1/tog.1:188:6: STYLE: referenced manual not 
> found: Xr got 1 (6 times)
> 
> Not having those STYLE "issues" also makes `mandoc -T lint' more useful
> for automatic regression/pre-commit/etc. checks in ports using it since
> even STYLE messages result in a non-zero exit status, i.e. `make test'
> for a totally fine manual would fail.
> 
> Using `-W warning' to omit STYLE message entirely is undesired because
> it silences other useful style hints as well and parsing output to work
> around all this is hackish at best.
> 
> So let's lint manuals with the default MANPATH instead of the limited
> base one.
> 
> Feedback? Objections? OK?
That was the wrong diff (again), sorry.

Index: main.c
===================================================================
RCS file: /cvs/src/usr.bin/mandoc/main.c,v
retrieving revision 1.256
diff -u -p -r1.256 main.c
--- main.c      19 Feb 2021 19:49:49 -0000      1.256
+++ main.c      3 Apr 2021 00:29:56 -0000
@@ -962,7 +962,7 @@ check_xr(void)
        size_t                   sz;
 
        if (paths.sz == 0)
-               manpath_base(&paths);
+               manpath_default(&paths);
 
        for (xr = mandoc_xr_get(); xr != NULL; xr = xr->next) {
                if (xr->line == -1)
Index: manconf.h
===================================================================
RCS file: /cvs/src/usr.bin/mandoc/manconf.h,v
retrieving revision 1.9
diff -u -p -r1.9 manconf.h
--- manconf.h   21 Jul 2020 15:08:49 -0000      1.9
+++ manconf.h   3 Apr 2021 00:29:57 -0000
@@ -55,4 +55,4 @@ struct        manconf {
 void    manconf_parse(struct manconf *, const char *, char *, char *);
 int     manconf_output(struct manoutput *, const char *, int);
 void    manconf_free(struct manconf *);
-void    manpath_base(struct manpaths *);
+void    manpath_default(struct manpaths *);
Index: manpath.c
===================================================================
RCS file: /cvs/src/usr.bin/mandoc/manpath.c,v
retrieving revision 1.30
diff -u -p -r1.30 manpath.c
--- manpath.c   27 Aug 2020 14:59:42 -0000      1.30
+++ manpath.c   3 Apr 2021 00:33:53 -0000
@@ -93,10 +93,10 @@ manconf_parse(struct manconf *conf, cons
 }
 
 void
-manpath_base(struct manpaths *dirs)
+manpath_default(struct manpaths *dirs)
 {
-       char path_base[] = MANPATH_BASE;
-       manpath_parseline(dirs, path_base, '\0');
+       char path_default[] = MANPATH_DEFAULT;
+       manpath_parseline(dirs, path_default, '\0');
 }
 
 /*

Reply via email to