mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2024-11-12 08:50:08 +00:00
Merge pull request #4212 from NAR8789/master
Fix chpwd clobbering in dirhistory and last-working-dir
This commit is contained in:
commit
e3a01e5af1
3 changed files with 6 additions and 3 deletions
|
@ -49,7 +49,8 @@ function push_future() {
|
||||||
}
|
}
|
||||||
|
|
||||||
# Called by zsh when directory changes
|
# Called by zsh when directory changes
|
||||||
function chpwd() {
|
chpwd_functions+=(chpwd_dirhistory)
|
||||||
|
function chpwd_dirhistory() {
|
||||||
push_past $PWD
|
push_past $PWD
|
||||||
# If DIRHISTORY_CD is not set...
|
# If DIRHISTORY_CD is not set...
|
||||||
if [[ -z "${DIRHISTORY_CD+x}" ]]; then
|
if [[ -z "${DIRHISTORY_CD+x}" ]]; then
|
||||||
|
|
|
@ -11,7 +11,8 @@ if [[ -f ${dirstack_file} ]] && [[ ${#dirstack[*]} -eq 0 ]] ; then
|
||||||
[[ -d $dirstack[1] ]] && cd $dirstack[1] && cd $OLDPWD
|
[[ -d $dirstack[1] ]] && cd $dirstack[1] && cd $OLDPWD
|
||||||
fi
|
fi
|
||||||
|
|
||||||
chpwd() {
|
chpwd_functions+=(chpwd_dirpersist)
|
||||||
|
chpwd_dirpersist() {
|
||||||
if (( $DIRSTACKSIZE <= 0 )) || [[ -z $dirstack_file ]]; then return; fi
|
if (( $DIRSTACKSIZE <= 0 )) || [[ -z $dirstack_file ]]; then return; fi
|
||||||
local -ax my_stack
|
local -ax my_stack
|
||||||
my_stack=( ${PWD} ${dirstack} )
|
my_stack=( ${PWD} ${dirstack} )
|
||||||
|
|
|
@ -8,7 +8,8 @@ mkdir -p $ZSH_CACHE_DIR
|
||||||
cache_file="$ZSH_CACHE_DIR/last-working-dir"
|
cache_file="$ZSH_CACHE_DIR/last-working-dir"
|
||||||
|
|
||||||
# Updates the last directory once directory is changed.
|
# Updates the last directory once directory is changed.
|
||||||
function chpwd() {
|
chpwd_functions+=(chpwd_last_working_dir)
|
||||||
|
function chpwd_last_working_dir() {
|
||||||
# Use >| in case noclobber is set to avoid "file exists" error
|
# Use >| in case noclobber is set to avoid "file exists" error
|
||||||
pwd >| "$cache_file"
|
pwd >| "$cache_file"
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue