E. zshall.1 sources the other man pages by using the roff(7) directive
".so man1/zshexpn.1" [Doc/zsh.yo:73]. That works fine when
installed, but when one does «man Doc/zshall.1» in the build tree, those
directives pull in the /installed/ zshexpn(1) man page.
Mikael points out that «ln -s Doc man1» is a workaround.
Now, it would have been nice if we could change that directive to have
zshall.1's source say the moral equivalent of "source ${0:h}/zshexpn.1",
but unless there's a portable roff(7) syntax for that, I think having
the build system create that symlink would actually be a good idea,
since it'd make «man Doc/zshall.1» work as expected in the build tree,
rather than silently let the installed man pages follow the just-built
leading section.
This wouldn't affect the installed tree in any way.
Why not just use <man -l Doc/zshall.1>, this puts man in "local" mode.
From the "man" man page:
-l, --local-file
Activate "local" mode. Format and display local manual files in‐
stead of searching through the system’s manual collection. Each
manual page argument will be interpreted as an nroff source file
in the correct format. No cat file is produced. If ’-’ is
listed as one of the arguments, input will be taken from stdin.
If this option is not used, then man will also fall back to in‐
terpreting manual page arguments as local file names if the argu‐
ment contains a "/" character, since that is a good indication
that the argument refers to a path on the file system.`
Regards,
Jim