diff --git a/autoenv.zsh b/autoenv.zsh index f770d8a..1211f9c 100644 --- a/autoenv.zsh +++ b/autoenv.zsh @@ -261,7 +261,7 @@ _autoenv_chpwd_handler() { local prev_file prev_dir for prev_file in ${_autoenv_stack_entered}; do prev_dir=${prev_file:A:h} - if ! [[ ${PWD}/ == ${prev_dir}/* ]]; then + if ! [[ ${PWD:A}/ == ${prev_dir}/* ]]; then local env_file_leave=$prev_dir/$AUTOENV_FILE_LEAVE if _autoenv_check_authorized_env_file $env_file_leave; then _autoenv_source $env_file_leave leave $prev_dir diff --git a/tests/cwd.t b/tests/cwd.t index ea77aa0..32687c2 100644 --- a/tests/cwd.t +++ b/tests/cwd.t @@ -24,3 +24,14 @@ The actual tests. $ cd sub/sub2 ENTERED: PWD:sub from:cwd.t to:sub2 + +Check that symlinked dirs get handled correctly. + + $ cd ../.. + LEFT: PWD:sub from:sub2 to:cwd.t + $ ln -s sub sub_linked + $ cd sub_linked + ENTERED: PWD:sub from:cwd.t to:sub_linked + $ cd sub2 + ENTERED: PWD:sub from:sub_linked to:sub2 + $ cd .