diff --git a/usr.bin/man/man.1 b/usr.bin/man/man.1 index 06ed24e6b396..58f43e5864e7 100644 --- a/usr.bin/man/man.1 +++ b/usr.bin/man/man.1 @@ -225,6 +225,13 @@ will search the following paths when considering section 4 manual pages in .It .Pa /usr/share/man/man4 .El +.Ss Displaying Specific Manual Files +The +.Nm +utility also supports displaying a specific manual page if passed a path +to the file as long as it contains a +.Sq / +character. .Sh ENVIRONMENT The following environment variables affect the execution of .Nm : diff --git a/usr.bin/man/man.sh b/usr.bin/man/man.sh index cca7638cf082..454a3c31379f 100755 --- a/usr.bin/man/man.sh +++ b/usr.bin/man/man.sh @@ -356,6 +356,20 @@ man_display_page() { man_find_and_display() { local found_page locpath p path sect + # Check to see if it's a file. But only if it has a '/' in + # the filename. + case "$1" in + */*) if [ -f "$1" -a -r "$1" ]; then + decho "Found a usable page, displaying that" + found_page=yes + unset use_cat + manpage="$1" + man_display_page + return + fi + ;; + esac + IFS=: for sect in $MANSECT; do decho "Searching section $sect" 2