Fix IFS issues - have to always unset after use

This commit is contained in:
Nathan Broadbent
2017-02-19 20:05:59 +07:00
parent 39f6596861
commit 6745822953
7 changed files with 18 additions and 16 deletions

View File

@@ -102,5 +102,6 @@ design() {
printf "Invalid command.\n\n" printf "Invalid command.\n\n"
design design
fi fi
unset IFS
} }

View File

@@ -39,6 +39,7 @@ EOF
if [ "${scmbDebug:-}" = "true" ]; then echo "Set \$$git_env_char$e => $file"; fi if [ "${scmbDebug:-}" = "true" ]; then echo "Set \$$git_env_char$e => $file"; fi
let e++ let e++
done done
unset IFS
} }
__git_alias "$git_branch_alias" "_scmb_git_branch_shortcuts" "" __git_alias "$git_branch_alias" "_scmb_git_branch_shortcuts" ""

View File

@@ -114,7 +114,7 @@ git_status_shortcuts() {
# so just use plain 'git status' # so just use plain 'git status'
git status git status
fi fi
IFS=$' \t\n' unset IFS
zsh_reset # Reset zsh environment to default zsh_reset # Reset zsh environment to default
} }
# Template function for 'git_status_shortcuts'. # Template function for 'git_status_shortcuts'.

View File

@@ -116,7 +116,7 @@ function git_index() {
fi fi
fi fi
fi fi
IFS=$' \t\n' unset IFS
} }
_git_index_dirs_without_home() { _git_index_dirs_without_home() {
@@ -131,7 +131,7 @@ function _find_git_repos() {
echo ${repo%/.git} # Return project folder, with trailing ':' echo ${repo%/.git} # Return project folder, with trailing ':'
_find_git_submodules $repo # Detect any submodules _find_git_submodules $repo # Detect any submodules
done done
IFS=$' \t\n' unset IFS
} }
# List all submodules for a git repo, if any. # List all submodules for a git repo, if any.
@@ -150,7 +150,7 @@ function _rebuild_git_index() {
for repo in $(echo -e "$(_find_git_repos)\n$(echo $GIT_REPOS | sed "s/:/\\\\n/g")"); do for repo in $(echo -e "$(_find_git_repos)\n$(echo $GIT_REPOS | sed "s/:/\\\\n/g")"); do
echo $(basename $repo | sed "s/ /_/g") $repo echo $(basename $repo | sed "s/ /_/g") $repo
done | sort | cut -d " " -f2- >| "$GIT_REPO_DIR/.git_index" done | sort | cut -d " " -f2- >| "$GIT_REPO_DIR/.git_index"
IFS=$' \t\n' unset IFS
if [ "$1" != "--silent" ]; then if [ "$1" != "--silent" ]; then
echo -e "===== Indexed $_bld_col$(_git_index_count)$_txt_col repos in $GIT_REPO_DIR/.git_index" echo -e "===== Indexed $_bld_col$(_git_index_count)$_txt_col repos in $GIT_REPO_DIR/.git_index"
@@ -225,7 +225,7 @@ _git_index_update_all_branches() {
echo "=== Skipping $branch: remote and merge refs are not configured." echo "=== Skipping $branch: remote and merge refs are not configured."
fi fi
done done
IFS=$' \t\n' unset IFS
# Update all remotes if there are any branches to update # Update all remotes if there are any branches to update
if [ -n "${branches[*]}" ]; then git fetch --all 2> /dev/null; fi if [ -n "${branches[*]}" ]; then git fetch --all 2> /dev/null; fi
@@ -268,7 +268,7 @@ function _git_index_batch_cmd() {
cwd="$PWD" cwd="$PWD"
if [ -n "$1" ]; then if [ -n "$1" ]; then
echo -e "== Running command for $_bld_col$(_git_index_count)$_txt_col repos...\n" echo -e "== Running command for $_bld_col$(_git_index_count)$_txt_col repos...\n"
IFS=$' \t\n' unset IFS
local base_path local base_path
for base_path in $(sed -e "s/--.*//" "$GIT_REPO_DIR/.git_index" | \grep . | sort); do for base_path in $(sed -e "s/--.*//" "$GIT_REPO_DIR/.git_index" | \grep . | sort); do
builtin cd "$base_path" builtin cd "$base_path"
@@ -313,7 +313,7 @@ if [ $shell = 'bash' ]; then
else else
COMPREPLY=($(compgen -W '$(sed -e "s:.*/::" -e "s:$:/:" "$GIT_REPO_DIR/.git_index" | sort)' -- $curw)) COMPREPLY=($(compgen -W '$(sed -e "s:.*/::" -e "s:$:/:" "$GIT_REPO_DIR/.git_index" | sort)' -- $curw))
fi fi
IFS=$' \t\n' unset IFS
return 0 return 0
} }
else else

View File

@@ -125,11 +125,11 @@ if [ "$shell_ls_aliases_enabled" = "true" ] && which ruby > /dev/null 2>&1; then
fi fi
# Parse path from args # Parse path from args
OLDIFS="$IFS"; IFS=$'\n' IFS=$'\n'
for arg in $@; do for arg in $@; do
if [ -d "$arg" ]; then local rel_path="${arg%/}"; fi if [ -d "$arg" ]; then local rel_path="${arg%/}"; fi
done done
IFS="$OLDIFS" unset IFS
# Replace user/group with user symbol, if defined at ~/.user_sym # Replace user/group with user symbol, if defined at ~/.user_sym
# Before : -rw-rw-r-- 1 ndbroadbent ndbroadbent 1.1K Sep 19 21:39 scm_breeze.sh # Before : -rw-rw-r-- 1 ndbroadbent ndbroadbent 1.1K Sep 19 21:39 scm_breeze.sh
@@ -175,14 +175,14 @@ EOF
ll_files="$(\ls "$@")" ll_files="$(\ls "$@")"
fi fi
OLDIFS="$IFS"; IFS=$'\n' IFS=$'\n'
for file in $ll_files; do for file in $ll_files; do
if [ -n "$rel_path" ]; then file="$rel_path/$file"; fi if [ -n "$rel_path" ]; then file="$rel_path/$file"; fi
export $git_env_char$e="$(eval $_abs_path_command \"${file//\"/\\\"}\")" export $git_env_char$e="$(eval $_abs_path_command \"${file//\"/\\\"}\")"
if [ "${scmbDebug:-}" = "true" ]; then echo "Set \$$git_env_char$e => $file"; fi if [ "${scmbDebug:-}" = "true" ]; then echo "Set \$$git_env_char$e => $file"; fi
let e++ let e++
done done
IFS="$OLDIFS" unset IFS
# Turn off shwordsplit unless it was on previously # Turn off shwordsplit unless it was on previously
if [[ $shell == "zsh" ]] && [ -z "$SHWORDSPLIT_ON" ]; then unsetopt shwordsplit; fi if [[ $shell == "zsh" ]] && [ -z "$SHWORDSPLIT_ON" ]; then unsetopt shwordsplit; fi

View File

@@ -43,7 +43,7 @@ git_status_shortcuts() {
if [ "${scmbDebug:-}" = "true" ]; then echo "Set \$$git_env_char$e => $file"; fi if [ "${scmbDebug:-}" = "true" ]; then echo "Set \$$git_env_char$e => $file"; fi
let e++ let e++
done done
IFS=$' \t\n' unset IFS
if [ "${scmbDebug:-}" = "true" ]; then echo "------------------------"; fi if [ "${scmbDebug:-}" = "true" ]; then echo "------------------------"; fi
# Print status # Print status
@@ -91,7 +91,7 @@ git_silent_add_shortcuts() {
echo -e "# Added '$file'" echo -e "# Added '$file'"
fi fi
done done
IFS=$' \t\n' unset IFS
echo "#" echo "#"
fi fi
} }
@@ -186,7 +186,7 @@ _git_resolve_merge_conflict() {
git add "$file" git add "$file"
echo -e "# Added $1 version of '$file'" echo -e "# Added $1 version of '$file'"
done done
IFS=$' \t\n' unset IFS
echo -e "# -- If you have finished resolving conflicts, commit the resolutions with 'git commit'" echo -e "# -- If you have finished resolving conflicts, commit the resolutions with 'git commit'"
fi fi
} }

View File

@@ -63,7 +63,7 @@ EOF
for dir in $GIT_REPOS; do for dir in $GIT_REPOS; do
mkdir -p $dir; cd $dir; git init; mkdir -p $dir; cd $dir; git init;
done done
IFS=$' \t\n' unset IFS
verboseGitCommands verboseGitCommands
@@ -74,7 +74,7 @@ oneTimeTearDown() {
rm -rf "${GIT_REPO_DIR}" rm -rf "${GIT_REPO_DIR}"
IFS=":" IFS=":"
for dir in $GIT_REPOS; do rm -rf $dir; done for dir in $GIT_REPOS; do rm -rf $dir; done
IFS=$' \t\n' unset IFS
} }
ensureIndex() { ensureIndex() {