ZSH compatibility issue determining array length affecting bootstrap and current command.

This commit is contained in:
Marco Vermeulen
2013-08-26 09:55:44 +01:00
parent 38623b17de
commit 8ffad35201
2 changed files with 10 additions and 8 deletions

View File

@@ -45,12 +45,8 @@ function __gvmtool_current {
echo "Not using any version of ${CANDIDATE}"
fi
else
# The candidates are assigned to an array for zsh compliance, a list of words is not iterable
# Arrays are the only way, but unfortunately zsh arrays are not backward compatible with bash
# In bash arrays are zero index based, in zsh they are 1 based(!)
INSTALLED_COUNT=0
# Starts at 0 for bash, ends at the candidate array size for zsh
for (( i=0; i <= ${#GVM_CANDIDATES}; i++ )); do
for (( i=0; i <= ${GVM_CANDIDATE_COUNT}; i++ )); do
# Eliminate empty entries due to incompatibility
if [[ -n ${GVM_CANDIDATES[${i}]} ]]; then
__gvmtool_determine_current_version "${GVM_CANDIDATES[${i}]}"

View File

@@ -153,10 +153,16 @@ fi
# Build _HOME environment variables and prefix them all to PATH
# The candidates are assigned to an array for zsh compliance, a list of words is not iterable
# Arrays are the only way, but unfortunately zsh arrays are not backward compatible with bash
# In bash arrays are zero index based, in zsh they are 1 based(!)
gvm_set_candidates
# bash/zsh hack: Starts at 0 for bash, ends at the candidate array size for zsh
for (( i=0; i <= ${#GVM_CANDIDATES}; i++ )); do
if [[ -z "$ZSH_VERSION" ]]; then
GVM_CANDIDATE_COUNT=${#GVM_CANDIDATES[@]}
else
GVM_CANDIDATE_COUNT=${#GVM_CANDIDATES}
fi
for (( i=0; i <= ${GVM_CANDIDATE_COUNT}; i++ )); do
# Eliminate empty entries due to incompatibility
if [[ -n ${GVM_CANDIDATES[${i}]} ]]; then
CANDIDATE_NAME="${GVM_CANDIDATES[${i}]}"