From 8caab103d87b7a9a96097272a4a43eb196519255 Mon Sep 17 00:00:00 2001 From: Kurtis Rader Date: Tue, 4 Jul 2017 13:43:06 -0700 Subject: [PATCH] harden `man` against undef vars --- share/functions/man.fish | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/share/functions/man.fish b/share/functions/man.fish index c9d3ff7f0..e0cacf4d9 100644 --- a/share/functions/man.fish +++ b/share/functions/man.fish @@ -1,20 +1,21 @@ function man --description "Format and display the on-line manual pages" - # 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 - # Notice local but exported variable - set -lx MANPATH (string join : $MANPATH) - if test -z "$MANPATH" - type -q manpath - and set MANPATH (command manpath) + set -l manpath + if set -q MANPATH + set manpath $MANPATH + else if command -qs manpath + set manpath (command manpath) end + # Notice local exported copy of the variable. + set -lx MANPATH $manpath + 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 + set MANPATH $fish_manpath:$MANPATH + # Invoke man with this manpath, and we're done. command man $argv return end