aboutsummaryrefslogtreecommitdiffhomepage
path: root/share/functions/man.fish
diff options
context:
space:
mode:
authorGravatar David Adam <zanchey@ucc.gu.uwa.edu.au>2015-10-09 21:01:59 +0800
committerGravatar David Adam <zanchey@ucc.gu.uwa.edu.au>2015-10-09 21:01:59 +0800
commit57e22e87c2f76583fde01c9e5a89ff84fcde2ad7 (patch)
treecde100f95cd83a92f195b9ef0ae075d8f3782456 /share/functions/man.fish
parent0b3406bdc0049ac560921c3a0b23516989ab153e (diff)
functions/man.fish: add fish into MANPATH even if it is already set
Closes #2443.
Diffstat (limited to 'share/functions/man.fish')
-rw-r--r--share/functions/man.fish29
1 files changed, 15 insertions, 14 deletions
diff --git a/share/functions/man.fish b/share/functions/man.fish
index 2b9bab51..25c81a4b 100644
--- a/share/functions/man.fish
+++ b/share/functions/man.fish
@@ -1,22 +1,23 @@
function man --description "Format and display the on-line manual pages"
- # Work around OS X's "builtin" manpage that everything symlinks to,
+ # Work around the "builtin" manpage that everything symlinks to,
# by prepending our fish datadir to man. This also ensures that man gives fish's
# man pages priority, without having to put fish's bin directories first in $PATH
- # Temporarily set a MANPATH, unless one is set already
- if not set -q MANPATH
- set -l fish_manpath (dirname $__fish_datadir)/fish/man
- if test -d "$fish_manpath"
- # Notice local but exported variable
- set -lx MANPATH "$fish_manpath":(command manpath)
-
- # Invoke man with this manpath, and we're done
- command man $argv
- return
- end
+
+ # Notice local but exported variable
+ set -lx MANPATH (string join : $MANPATH)
+ if test -z "$MANPATH"
+ type -q manpath; and set MANPATH (command manpath)
+ end
+ set -l fish_manpath (dirname $__fish_datadir)/fish/man
+ if test -d "$fish_manpath" -a -n "$MANPATH"
+ set MANPATH "$fish_manpath":$MANPATH
+
+ # Invoke man with this manpath, and we're done
+ command man $argv
+ return
end
- # If MANPATH is set explicitly, or fish's man pages could not be found,
- # just invoke man normally
+ # If fish's man pages could not be found, just invoke man normally
command man $argv
end