From 57e22e87c2f76583fde01c9e5a89ff84fcde2ad7 Mon Sep 17 00:00:00 2001 From: David Adam Date: Fri, 9 Oct 2015 21:01:59 +0800 Subject: [PATCH] functions/man.fish: add fish into MANPATH even if it is already set Closes #2443. --- share/functions/man.fish | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/share/functions/man.fish b/share/functions/man.fish index 2b9bab517..25c81a4bb 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