From 605dd1092fcdf7930f0f9ef6039bf93c8ef31b3d Mon Sep 17 00:00:00 2001 From: zodiacg Date: Thu, 1 May 2014 23:12:32 +0800 Subject: [PATCH 1/5] Fix the problem that messes up MANPATH. Issue 393 --- nvm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 7d2bb1e..1549521 100644 --- a/nvm.sh +++ b/nvm.sh @@ -451,7 +451,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 From c2d4844b314c37c2e8b34b383bfacb7a1d690fbb Mon Sep 17 00:00:00 2001 From: zodiacg Date: Fri, 2 May 2014 14:08:33 +0800 Subject: [PATCH 2/5] Add a test for MANPATH --- .../Sourcing nvm.sh should set MANPATH correctly. | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100755 test/fast/Sourcing nvm.sh should set MANPATH correctly. 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..b2816f2 --- /dev/null +++ b/test/fast/Sourcing nvm.sh should set MANPATH correctly. @@ -0,0 +1,14 @@ +#!/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} + +T_MANPATH=`manpath` +T_MANPATH=`echo ${T_MANPATH} | awk -v RS=: -v ORS=: "/${T_NVM_DIR//\//\\/}/ "'{next} {print}' | sed 's/:*$//'` + +. ../../nvm.sh + +#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}" ] From 7b0bd40ede882a55cd1a88dc52ad856e93395f0c Mon Sep 17 00:00:00 2001 From: zodiacg Date: Fri, 2 May 2014 14:19:21 +0800 Subject: [PATCH 3/5] Add some debug outputs --- test/fast/Sourcing nvm.sh should set MANPATH correctly. | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/fast/Sourcing nvm.sh should set MANPATH correctly. b/test/fast/Sourcing nvm.sh should set MANPATH correctly. index b2816f2..281b700 100755 --- a/test/fast/Sourcing nvm.sh should set MANPATH correctly. +++ b/test/fast/Sourcing nvm.sh should set MANPATH correctly. @@ -4,11 +4,15 @@ 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_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}" ] From 61af7d2de96fc05c4505f96e10595a8cc7bb6184 Mon Sep 17 00:00:00 2001 From: zodiacg Date: Fri, 2 May 2014 14:34:51 +0800 Subject: [PATCH 4/5] Use sed instead of variable substitution --- test/fast/Sourcing nvm.sh should set MANPATH correctly. | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/fast/Sourcing nvm.sh should set MANPATH correctly. b/test/fast/Sourcing nvm.sh should set MANPATH correctly. index 281b700..25f6011 100755 --- a/test/fast/Sourcing nvm.sh should set MANPATH correctly. +++ b/test/fast/Sourcing nvm.sh should set MANPATH correctly. @@ -7,7 +7,8 @@ T_NVM_DIR=${T_NVM_DIR%/test/fast} echo $T_NVM_DIR T_MANPATH=`manpath` -T_MANPATH=`echo ${T_MANPATH} | awk -v RS=: -v ORS=: "/${T_NVM_DIR//\//\\/}/ "'{next} {print}' | sed 's/:*$//'` +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 From ef3a43d6fad1038934a83fec7e362923ca7de75f Mon Sep 17 00:00:00 2001 From: zodiacg Date: Fri, 2 May 2014 14:39:42 +0800 Subject: [PATCH 5/5] Fix sed script --- test/fast/Sourcing nvm.sh should set MANPATH correctly. | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/fast/Sourcing nvm.sh should set MANPATH correctly. b/test/fast/Sourcing nvm.sh should set MANPATH correctly. index 25f6011..16ece12 100755 --- a/test/fast/Sourcing nvm.sh should set MANPATH correctly. +++ b/test/fast/Sourcing nvm.sh should set MANPATH correctly. @@ -7,7 +7,7 @@ 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_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