Fix (auto)unstashing when being sourced from a subdir (#79)

Fixes https://github.com/Tarrasch/zsh-autoenv/issues/77.
This commit is contained in:
Daniel Hahler 2017-12-14 00:53:25 +01:00 committed by GitHub
parent 9074633a29
commit d6bfdff968
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 6 deletions

View File

@ -293,8 +293,6 @@ _autoenv_source() {
if \grep -qE '\b(autostash|autounstash|stash|unstash)\b' $autoenv_env_file; then
source ${${funcsourcetrace[1]%:*}:h}/lib/varstash
fi
# NOTE: Varstash uses $PWD as default for varstash_dir, we might set it to
# ${autoenv_env_file:h}.
fi
# Source the env file.
@ -306,7 +304,8 @@ _autoenv_source() {
restore_xtrace=1
setopt localoptions xtrace
fi
source $autoenv_env_file
varstash_dir=${autoenv_env_file:h} source $autoenv_env_file
if (( restore_xtrace )); then
setopt noxtrace
fi

View File

@ -4,7 +4,7 @@ Test unstash behavior on leaving.
Setup test environment.
$ mkdir sub
$ mkdir -p sub/sub2
$ echo 'echo ENTER; stash FOO=changed' >| sub/$AUTOENV_FILE_ENTER
$ echo 'echo LEAVE; unstash FOO' >| sub/$AUTOENV_FILE_LEAVE
$ test_autoenv_auth_env_files sub
@ -12,14 +12,14 @@ Setup test environment.
Activating the env stashes it and applies a new value.
$ cd sub
$ cd sub/sub2
ENTER
$ echo $FOO
changed
Leaving the directory unstashes it (varstash_dir is set to prev dir).
$ cd ..
$ cd -
LEAVE
$ echo $FOO
orig