diff --git a/autoenv.zsh b/autoenv.zsh index 452e5c3..d3f0f2e 100644 --- a/autoenv.zsh +++ b/autoenv.zsh @@ -256,6 +256,9 @@ _autoenv_source() { # This should not get done for recursion (via autoenv_source_parent), # and can be useful to have in general after autoenv was used. # unset autoenv_event autoenv_from_dir autoenv_to_dir autoenv_env_file + if [[ $autoenv_event == leave ]]; then + unset autoenv_env_file + fi } _autoenv_get_file_upwards() { diff --git a/tests/leave.t b/tests/leave.t index 473a273..62b7b8d 100644 --- a/tests/leave.t +++ b/tests/leave.t @@ -113,3 +113,12 @@ Test that "leave" is not triggered when entering an outside dir via symlink. LEFT outside: PWD:leave.t pwd:leave.t from:symlink to:leave.t event:leave $ cd sub/symlink ENTERED outside: PWD:symlink pwd:symlink from:leave.t to:symlink event:enter + +$autoenv_env_file should be reset when leaving. + + $ echo $autoenv_env_file + */leave.t/sub/symlink/.env (glob) + $ cd ../.. + LEFT outside: PWD:leave.t pwd:leave.t from:symlink to:leave.t event:leave + $ echo ${autoenv_env_file:-empty} + empty