mirror of
git://git.code.sf.net/p/zsh/code
synced 2024-11-19 21:44:11 +01:00
temporarily remove global aliases to avoid error message inside the evals (12942)
This commit is contained in:
parent
7bb0338a78
commit
ae4ba457c4
@ -1,5 +1,8 @@
|
||||
2000-10-10 Sven Wischnowsky <wischnow@zsh.org>
|
||||
|
||||
* 12942: Completion/Core/_expand: temporarily remove global
|
||||
aliases to avoid error message inside the evals
|
||||
|
||||
* 12941: Src/Zle/compmatch.c: follow-up to 12930, make it first
|
||||
try exact character matches, but enable it to go back to try match
|
||||
specs if it fails after accepting such character matches
|
||||
|
@ -12,6 +12,7 @@ setopt localoptions nonomatch
|
||||
[[ _matcher_num -gt 1 ]] && return 1
|
||||
|
||||
local exp word sort expr expl subd suf=" " force opt asp tmp opre pre epre
|
||||
local gal
|
||||
|
||||
(( $# )) &&
|
||||
while getopts gsco opt; do
|
||||
@ -48,6 +49,12 @@ zstyle -t ":completion:${curcontext}:" accept-exact ||
|
||||
( "$word" = *\$[a-zA-Z0-9_]## &&
|
||||
${#parameters[(I)${word##*\$}*]} -ne 1 ) ]] && return 1 }
|
||||
|
||||
# We have to temporarily remove the global aliases because they can make
|
||||
# the evals fail.
|
||||
|
||||
gal=( ${(kv)galiases} )
|
||||
(( $#gal )) && builtin unalias ${(k)galiases}
|
||||
|
||||
# In exp we will collect the expansions.
|
||||
|
||||
exp=("$word")
|
||||
@ -83,14 +90,20 @@ subd=("$exp[@]")
|
||||
|
||||
(( $#exp )) || exp=("$subd[@]")
|
||||
|
||||
[[ $#exp -eq 1 && "${exp[1]//\\}" = "${word//\\}"(|\(N\)) ]] && return 1
|
||||
if [[ $#exp -eq 1 && "${exp[1]//\\}" = "${word//\\}"(|\(N\)) ]]; then
|
||||
galiases=( $gal )
|
||||
return 1
|
||||
fi
|
||||
|
||||
# With subst-globs-only we bail out if there were no glob expansions,
|
||||
# regardless of any substitutions
|
||||
|
||||
{ [[ "$force" = *o* ]] ||
|
||||
zstyle -t ":completion:${curcontext}:" subst-globs-only } &&
|
||||
[[ "$subd" = "$exp"(|\(N\)) ]] && return 1
|
||||
if { [[ "$force" = *o* ]] ||
|
||||
zstyle -t ":completion:${curcontext}:" subst-globs-only } &&
|
||||
[[ "$subd" = "$exp"(|\(N\)) ]]; then
|
||||
galiases=( $gal )
|
||||
return 1
|
||||
fi
|
||||
|
||||
zstyle -s ":completion:${curcontext}:" keep-prefix tmp || tmp=changed
|
||||
if [[ "$word" = [\~\$]*/* && "$tmp" = (yes|true|on|1|changed) ]]; then
|
||||
@ -101,7 +114,12 @@ if [[ "$word" = [\~\$]*/* && "$tmp" = (yes|true|on|1|changed) ]]; then
|
||||
[[ "$tmp" != changed || $#exp -gt 1 ||
|
||||
"${opre}${exp[1]#${pre}}" != "$word" ]] && exp=( ${opre}${^exp#${pre}} )
|
||||
fi
|
||||
|
||||
galiases=( $gal )
|
||||
|
||||
[[ $#exp -eq 1 && "$exp[1]" = "$word" ]] && return 1
|
||||
else
|
||||
galiases=( $gal )
|
||||
fi
|
||||
|
||||
# Now add as matches whatever the user requested.
|
||||
|
Loading…
Reference in New Issue
Block a user