diff --git a/nvm.sh b/nvm.sh index ec5c6e4..38944b3 100644 --- a/nvm.sh +++ b/nvm.sh @@ -475,7 +475,7 @@ nvm() { if [ -z "$MANPATH" ]; then MANPATH=$(manpath) fi - MANPATH=${MANPATH#*$NVM_DIR/*/man:} + MANPATH=${MANPATH%$NVM_DIR/*/share/man*}${MANPATH#*$NVM_DIR/*/share/man:} if [ `expr "$MANPATH" : ".*$NVM_DIR/.*/share/man"` != 0 ]; then MANPATH=${MANPATH%$NVM_DIR/*/share/man*}$NVM_DIR/$VERSION/share/man${MANPATH#*$NVM_DIR/*/share/man} else diff --git a/test/fast/Sourcing nvm.sh should set MANPATH correctly. b/test/fast/Sourcing nvm.sh should set MANPATH correctly. new file mode 100755 index 0000000..16ece12 --- /dev/null +++ b/test/fast/Sourcing nvm.sh should set MANPATH correctly. @@ -0,0 +1,19 @@ +#!/bin/sh +mkdir -p ../../v0.10.26/share/man +echo v0.10.26 >../../alias/default + +T_NVM_DIR=$(pwd) +T_NVM_DIR=${T_NVM_DIR%/test/fast} +echo $T_NVM_DIR + +T_MANPATH=`manpath` +T_NVM_DIR=`echo $T_NVM_DIR | sed 's/\//\\\\\//g'` +T_MANPATH=`echo ${T_MANPATH} | awk -v RS=: -v ORS=: "/${T_NVM_DIR}/ "'{next} {print}' | sed 's/:*$//'` +echo $T_MANPATH + +. ../../nvm.sh +echo $MANPATH +echo ${MANPATH#*$NVM_DIR/*/man:} + +#The nvm entry should be the first one of MANPATH and remain other entries exist. +[ `expr "$MANPATH" : ".*$NVM_DIR/.*/share/man"` != 0 ] && [ "${MANPATH#*$NVM_DIR/*/man:}" = "${T_MANPATH}" ]