summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Cornellà <marc.cornella@live.com>2018-05-26 19:07:46 +0200
committerMarc Cornellà <marc.cornella@live.com>2018-05-26 19:07:46 +0200
commit2294bae06a27166dab9cebea60e76fb9de12d3d3 (patch)
tree63b93307407d8c989745e2151df0bc78e9c5fb84
parentd6aeaad83d73855776f7c937ef51428523295352 (diff)
parent66cb4005ab6cfcd6b092c1b482e767af214e83bb (diff)
downloadzsh-2294bae06a27166dab9cebea60e76fb9de12d3d3.tar.gz
zsh-2294bae06a27166dab9cebea60e76fb9de12d3d3.tar.bz2
zsh-2294bae06a27166dab9cebea60e76fb9de12d3d3.zip
Merge branch 'shrink-path-chpwd-fix'
Closes #5930.
-rw-r--r--plugins/shrink-path/shrink-path.plugin.zsh12
1 files changed, 3 insertions, 9 deletions
diff --git a/plugins/shrink-path/shrink-path.plugin.zsh b/plugins/shrink-path/shrink-path.plugin.zsh
index 6dd6a930f..e7eed1705 100644
--- a/plugins/shrink-path/shrink-path.plugin.zsh
+++ b/plugins/shrink-path/shrink-path.plugin.zsh
@@ -94,18 +94,12 @@ shrink_path () {
(( tilde )) && dir=${dir/$HOME/\~}
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] == \~* ]] {
- cd ${~tree[1]}
+ cd -q ${~tree[1]}
result=$tree[1]
shift tree
} else {
- cd /
+ cd -q /
}
for dir in $tree; {
if (( lastfull && $#tree == 1 )) {
@@ -122,7 +116,7 @@ shrink_path () {
(( short )) && break
done
result+="/$part"
- cd $dir
+ cd -q $dir
shift tree
}
echo ${result:-/}