25 lines
506 B
Plaintext
25 lines
506 B
Plaintext
# Helper for chpwd_recent_dirs.
|
|
# Add a directory to the reply array unless we're skipping it.
|
|
# If skipping, return non-zero status.
|
|
|
|
local pat
|
|
local add=$1
|
|
local -a prune patterns
|
|
|
|
zstyle -a ':chpwd:' recent-dirs-prune prune
|
|
if (( ${#prune} )); then
|
|
patterns=(${${prune:#^pattern:*}##pattern:})
|
|
fi
|
|
|
|
for pat in $patterns; do
|
|
if [[ $add =~ ${~pat} ]]; then
|
|
return 1
|
|
fi
|
|
done
|
|
|
|
if [[ ${prune[(I)parent]} -ne 0 && $add = $reply[1]/* ]]; then
|
|
# replace
|
|
reply=($reply[2,-1])
|
|
fi
|
|
reply=($add $reply)
|