Using pwd -L inside the chpwd_functions hook inside zsh returns an invalid path. Here are some steps to reproduce this:
function print_dir() { pwd -L } ;
chpwd_functions=(print_dir) ;
mkdir -p /tmp/chdir-test/symbolic-links/ ;
mkdir -p /tmp/chdir-test/actual-directories/folder1 ;
mkdir -p /tmp/chdir-test/actual-directories/folder2 ;
ln -s /tmp/chdir-test/actual-directories/folder1 /tmp/chdir-test/symbolic-links ;
# This works fine:
cd /tmp/chdir-test/symbolic-links/folder1 ;
# >> /tmp/chdir-test/symbolic-links/folder1
# This prints a path that does not exist (try it with cd!)
cd ../folder2 ;
# >> /tmp/chdir-test/symbolic-links/folder2
# This works fine
pwd -L ;
# >> /tmp/chdir-test/actual-directories/folder2
Thanks,