functions/man.fish: add fish into MANPATH even if it is already set

Closes #2443.
This commit is contained in:
David Adam 2015-10-09 21:01:59 +08:00
parent 0b3406bdc0
commit 57e22e87c2

View file

@ -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)
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
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