1
0
mirror of https://github.com/Tarrasch/zsh-autoenv.git synced 2024-11-25 16:31:00 +02:00

Merge pull request #63 from blueyed/varstash-fixes

Varstash fixes
This commit is contained in:
Daniel Hahler 2017-04-27 20:19:17 +02:00 committed by GitHub
commit 435f54761b

View File

@ -34,7 +34,7 @@
# autostash PATH # autostash PATH
# export PATH=/something/else # export PATH=/something/else
# #
# You may also do both operations on line line, leaving only the very succinct # You may also do both operations in one line, resulting in the very succinct
# #
# autostash PATH=/something/else # autostash PATH=/something/else
# #
@ -55,7 +55,6 @@
# #
################################################################################ ################################################################################
function stash() { function stash() {
if [[ $1 == "-f" ]]; then if [[ $1 == "-f" ]]; then
local force=1; shift local force=1; shift
@ -135,18 +134,13 @@ function stash() {
# Handle any variable that may exist under this name # Handle any variable that may exist under this name
local vartype="$(declare -p $stash_which 2>/dev/null)" local vartype="$(declare -p $stash_which 2>/dev/null)"
if [[ -n $vartype ]]; then if [[ -n $vartype ]]; then
if [[ -n $ZSH_VERSION ]]; then if [[ $vartype == 'typeset -a'* ]]; then
local pattern="typeset"
else
local pattern="declare"
fi
if [[ $vartype == $pattern" -a"* ]]; then
# varible is an array # varible is an array
if [[ -z $already_stashed ]]; then if [[ -z $already_stashed ]]; then
eval "__varstash_array__$stash_name=(\"\${$stash_which""[@]}\")" eval "__varstash_array__$stash_name=(\"\${$stash_which""[@]}\")"
fi fi
elif [[ $vartype == $pattern" -x"* ]]; then elif [[ $vartype == "export "* || $vartype == 'typeset -x'* ]]; then
# variable is exported # variable is exported
if [[ -z $already_stashed ]]; then if [[ -z $already_stashed ]]; then
eval "export __varstash_export__$stash_name=\"\$$stash_which\"" eval "export __varstash_export__$stash_name=\"\$$stash_which\""