summaryrefslogtreecommitdiffstats
path: root/usr.bin/man
diff options
context:
space:
mode:
Diffstat (limited to 'usr.bin/man')
-rw-r--r--usr.bin/man/man.125
-rwxr-xr-xusr.bin/man/man.sh31
2 files changed, 43 insertions, 13 deletions
diff --git a/usr.bin/man/man.1 b/usr.bin/man/man.1
index 5647b6c..6705677 100644
--- a/usr.bin/man/man.1
+++ b/usr.bin/man/man.1
@@ -25,7 +25,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd September 26, 2014
+.Dd March 11, 2017
.Dt MAN 1
.Os
.Sh NAME
@@ -295,13 +295,22 @@ Corresponds to the
.Fl m
option.
.It Ev MANPATH
-Used to find the location of the manual files.
-See
-.Xr manpath 1
-for additional information.
-Corresponds to the
-.Fl M
-option.
+The standard search path used by
+.Xr man 1
+may be changed by specifying a path in the
+.Ev MANPATH
+environment variable.
+Invalid paths, or paths without manual databases, are ignored.
+Overridden by
+.Fl M .
+If
+.Ev 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.
.It Ev MANROFFSEQ
Used to determine the preprocessors for the manual source before running
.Xr nroff 1
diff --git a/usr.bin/man/man.sh b/usr.bin/man/man.sh
index 094ea11..ae928a1 100755
--- a/usr.bin/man/man.sh
+++ b/usr.bin/man/man.sh
@@ -68,7 +68,23 @@ build_manpath() {
# If the user has set a manpath, who are we to argue.
if [ -n "$MANPATH" ]; then
- return
+ case "$MANPATH" in
+ *:) PREPEND_MANPATH=${MANPATH} ;;
+ :*) APPEND_MANPATH=${MANPATH} ;;
+ *::*)
+ PREPEND_MANPATH=${MANPATH%%::*}
+ APPEND_MANPATH=${MANPATH#*::}
+ ;;
+ *) return ;;
+ esac
+ fi
+
+ if [ -n "$PREPEND_MANPATH" ]; then
+ IFS=:
+ for path in $PREPEND_MANPATH; do
+ add_to_manpath "$path"
+ done
+ unset IFS
fi
search_path
@@ -82,6 +98,13 @@ build_manpath() {
parse_configs
+ if [ -n "$APPEND_MANPATH" ]; then
+ IFS=:
+ for path in $APPEND_MANPATH; do
+ add_to_manpath "$path"
+ done
+ unset IFS
+ fi
# Trim leading colon
MANPATH=${manpath#:}
@@ -238,10 +261,6 @@ manpath_usage() {
# Usage: manpath_warnings
# Display some warnings to stderr.
manpath_warnings() {
- if [ -z "$Lflag" -a -n "$MANPATH" ]; then
- echo "(Warning: MANPATH environment variable set)" >&2
- fi
-
if [ -n "$Lflag" -a -n "$MANLOCALES" ]; then
echo "(Warning: MANLOCALES environment variable set)" >&2
fi
@@ -771,6 +790,8 @@ search_path() {
case "$path" in
*/bin) p="${path%/bin}/man"
add_to_manpath "$p"
+ p="${path%/bin}/share/man"
+ add_to_manpath "$p"
;;
*) ;;
esac
OpenPOWER on IntegriCloud