Date: Sun, 8 Jan 2017 11:26:33 -0800 From: Steve Kargl <sgk@troutmask.apl.washington.edu> To: freebsd-doc@freebsd.org, freebsd-current@freebsd.org, freebsd-hackers@freebsd.org Subject: MANPATH not handled correctly Message-ID: <20170108192633.GA42537@troutmask.apl.washington.edu>
next in thread | raw e-mail | index | archive | help
MANPATH is not handled correctly. According to the documentation in apropos(1) and whatis(1): MANPATH The standard search path used by man(1) may be changed by specifying a path in the MANPATH environment variable. Invalid paths, or paths without manual databases, are ignored. Overridden by -M. If MANPATH begins with a colon, it is appended to the default list; if it ends with a colon, it is prepended to the default list; or if it contains two adjacent colons, the standard search path is inserted between the colons. If none of these conditions are met, it overrides the standard search path. I have a manpage named mkpic in $HOME/man/man1. I also have the FreeBSD installed manpages, e.g., /usr/share/man/man1/cat.1.gz. If I have 'setenv MANPATH :$HOME/man' in my .cshrc file, then the following occurs: % setenv | grep MANPATH MANPATH=:/home/kargl/man % apropos mkpic (Warning: MANPATH environment variable set) mkpic(1) - construct a contour image in MIFF image format % apropos cat (Warning: MANPATH environment variable set) matrix(3) - Array and matrix allocation for FFT library So, the above description of MANPATH is incorrect as :/home/kargl/man should have been appended to the default MANPATH. Interestingly, manpath(1) seems to described what actually happens (long lines wrapped): % unsetenv MANPATH % manpath /home/kargl/man:/usr/local/man:/usr/share/man:/usr/share/openssl/man:\ /usr/local/lib/perl5/site_perl/man:/usr/local/lib/perl5/5.20/perl/man:\ /usr/local/share/xpdf/man % setenv MANPATH :$HOME/sman % manpath (Warning: MANPATH environment variable set) :/home/kargl/man The expected result according apropos(1) and whatis(1) for last command is % manpath /home/kargl/man:/usr/local/man:/usr/share/man:/usr/share/openssl/man:\ /usr/local/lib/perl5/site_perl/man:/usr/local/lib/perl5/5.20/perl/man:\ /usr/local/share/xpdf/man:/home/kargl/man Instead of (un)fixing the documentation for apropos(1) and whatis(1), it would be preferable to fix manpath to match the description in those manpages. In addition, the Warning should be removed or at least an option should be available to suppress the (useless/annoying) Warning. This would restore man(1), apropros(1), and whatis(1) to its historical behavior prior to svn revision 213317. If the documentation for apropos(1) and whatis(1) is unfixed, then manpath(1) should have HISTORY and BUGS sections. The BUGS section should explicitly not that MANPATH is no longer a changeable environmental variable by a user without incurring the Warning. -- Steve 20161221 https://www.youtube.com/watch?v=IbCHE-hONow
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20170108192633.GA42537>