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" 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 # 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 # 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 # Notice local but exported variable
set -l fish_manpath (dirname $__fish_datadir)/fish/man set -lx MANPATH (string join : $MANPATH)
if test -d "$fish_manpath" if test -z "$MANPATH"
# Notice local but exported variable type -q manpath; and set MANPATH (command manpath)
set -lx MANPATH "$fish_manpath":(command manpath) end
set -l fish_manpath (dirname $__fish_datadir)/fish/man
# Invoke man with this manpath, and we're done if test -d "$fish_manpath" -a -n "$MANPATH"
command man $argv set MANPATH "$fish_manpath":$MANPATH
return
end # 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, # If fish's man pages could not be found, just invoke man normally
# just invoke man normally
command man $argv command man $argv
end end