In the fallback code to look for manual pages without using mandoc.db(5),
authorschwarze <schwarze@openbsd.org>
Sat, 4 Sep 2021 12:47:04 +0000 (12:47 +0000)
committerschwarze <schwarze@openbsd.org>
Sat, 4 Sep 2021 12:47:04 +0000 (12:47 +0000)
commit7db692201a1faa324a5d82f6c26bef47c585fddd
tree35103aa9756ae7d3541199ed25e01c04d938212b
parent497492a767d0f85ecf492381674e985a6c1fac06
In the fallback code to look for manual pages without using mandoc.db(5),
accept files "man<one-digit-section>/<name>.<full-section>"
in addition the already supported "man<full-section>/name.[01-9]*".
Needed for example on Alpine Linux which puts its Perl manuals
into "man3/<name>.3pm" and the POSIX manuals into "man3/<name>.3p".

While here, allow the glob(3) at the end of fs_lookup() to add multiple
matches to the result set.  This improves man -w output and may also
help some cases of plain man(1), allowing main() to prioritize properly
rather than fs_lookup() picking a random match.

None of this really matters for standard manpaths on OpenBSD because
both base system and ports developers are highly disciplined about
putting manual pages into properly named files and directories, but
even on OpenBSD, it may help to access some raw, unported third-party
manual page trees.

Issue reported and patch tested
by Soeren Tempel <soeren at soeren hyphen tempel dot net>.
usr.bin/mandoc/main.c