Use `nvm_num_version_groups` in `nvm_ls`
diff --git a/nvm.sh b/nvm.sh
index 8bca98c..0e2a8a0 100644
--- a/nvm.sh
+++ b/nvm.sh
@@ -247,14 +247,18 @@
return
fi
# If it looks like an explicit version, don't do anything funny
- if [ `expr "$PATTERN" : "v[0-9]*\.[0-9]*\.[0-9]*$"` != 0 ]; then
+ if [ "~$(echo "$PATTERN" | cut -c1-1)" = "~v" ] && [ "~$(nvm_num_version_groups "$PATTERN")" = "~3" ]; then
if [ -d "$(nvm_version_path "$PATTERN")" ]; then
VERSIONS="$PATTERN"
fi
else
PATTERN=$(nvm_format_version $PATTERN)
- if [ `expr "$PATTERN" : "v[0-9]*\.[0-9]*$"` != 0 ]; then
- PATTERN="$PATTERN."
+ if [ "~$PATTERN" != "~system" ]; then
+ local NUM_VERSION_GROUPS
+ NUM_VERSION_GROUPS="$(nvm_num_version_groups "$PATTERN")"
+ if [ "~$NUM_VERSION_GROUPS" = "~2" ] || [ "~$NUM_VERSION_GROUPS" = "~1" ]; then
+ PATTERN="$(echo "$PATTERN" | sed -e 's/\.*$//g')."
+ fi
fi
if [ -d "$(nvm_version_dir new)" ]; then
VERSIONS=`find "$(nvm_version_dir new)/" "$(nvm_version_dir old)/" -maxdepth 1 -type d -name "$PATTERN*" -exec basename '{}' ';' \