Merge branch 'shrink-path-chpwd-fix'

Closes #5930.
This commit is contained in:
Marc Cornellà 2018-05-26 19:07:46 +02:00
commit 2294bae06a

View File

@ -94,18 +94,12 @@ shrink_path () {
(( tilde )) && dir=${dir/$HOME/\~} (( tilde )) && dir=${dir/$HOME/\~}
tree=(${(s:/:)dir}) tree=(${(s:/:)dir})
( (
# unset chpwd_functions since we'll be calling `cd` and don't
# want any side-effects (eg., if the user was using auto-ls)
chpwd_functions=()
# unset chpwd since even if chpwd_functions is (), zsh will
# attempt to execute chpwd
unfunction chpwd 2> /dev/null
if [[ $tree[1] == \~* ]] { if [[ $tree[1] == \~* ]] {
cd ${~tree[1]} cd -q ${~tree[1]}
result=$tree[1] result=$tree[1]
shift tree shift tree
} else { } else {
cd / cd -q /
} }
for dir in $tree; { for dir in $tree; {
if (( lastfull && $#tree == 1 )) { if (( lastfull && $#tree == 1 )) {
@ -122,7 +116,7 @@ shrink_path () {
(( short )) && break (( short )) && break
done done
result+="/$part" result+="/$part"
cd $dir cd -q $dir
shift tree shift tree
} }
echo ${result:-/} echo ${result:-/}