Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: Global-alias problem with _expand
- X-seq: zsh-workers 12948
- From: Sven Wischnowsky <wischnow@xxxxxxxxxxxxxxxxxxxxxxx>
- To: zsh-workers@xxxxxxxxxxxxxx
- Subject: Re: Global-alias problem with _expand
- Date: Tue, 10 Oct 2000 17:04:34 +0200 (MET DST)
- In-reply-to: "Bart Schaefer"'s message of Tue, 10 Oct 2000 14:29:01 +0000
- Mailing-list: contact zsh-workers-help@xxxxxxxxxxxxxx; run by ezmlm
Bart Schaefer wrote:
> On Oct 10, 10:13am, Sven Wischnowsky wrote:
> }
> } Rats. Look:
> }
> } % alias -g 'T=|foo'
> } % eval 'exp=( T )'
> } zsh: parse error near `|'
> }
> } Anyone know how to avoid that?
>
> By redirecting stderr on the eval?
Now where did I get the impression from that the error kept the rest
from the function from being executed? Sigh.
Bye
Sven
Index: Completion/Core/_expand
===================================================================
RCS file: /cvsroot/zsh/zsh/Completion/Core/_expand,v
retrieving revision 1.31
diff -u -r1.31 _expand
--- Completion/Core/_expand 2000/10/10 09:00:15 1.31
+++ Completion/Core/_expand 2000/10/10 15:03:52
@@ -12,7 +12,6 @@
[[ _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
@@ -49,12 +48,6 @@
( "$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")
@@ -66,7 +59,7 @@
if [[ "$force" = *s* ]] ||
zstyle -T ":completion:${curcontext}:" substitute; then
[[ ! -o ignorebraces && "${#${exp}//[^\{]}" = "${#${exp}//[^\}]}" ]] &&
- eval exp\=\( ${${(q)exp}:gs/\\{/\{/:gs/\\}/\}/} \)
+ eval exp\=\( ${${(q)exp}:gs/\\{/\{/:gs/\\}/\}/} \) 2>/dev/null
eval 'exp=( ${${(e)exp//\\[
]/ }//(#b)([
])/\\$match[1]} )' 2>/dev/null
@@ -90,20 +83,14 @@
(( $#exp )) || exp=("$subd[@]")
-if [[ $#exp -eq 1 && "${exp[1]//\\}" = "${word//\\}"(|\(N\)) ]]; then
- galiases=( $gal )
- return 1
-fi
+[[ $#exp -eq 1 && "${exp[1]//\\}" = "${word//\\}"(|\(N\)) ]] && return 1
# With subst-globs-only we bail out if there were no glob expansions,
# regardless of any substitutions
-if { [[ "$force" = *o* ]] ||
- zstyle -t ":completion:${curcontext}:" subst-globs-only } &&
- [[ "$subd" = "$exp"(|\(N\)) ]]; then
- galiases=( $gal )
- return 1
-fi
+{ [[ "$force" = *o* ]] ||
+ zstyle -t ":completion:${curcontext}:" subst-globs-only } &&
+ [[ "$subd" = "$exp"(|\(N\)) ]] && return 1
zstyle -s ":completion:${curcontext}:" keep-prefix tmp || tmp=changed
if [[ "$word" = [\~\$]*/* && "$tmp" = (yes|true|on|1|changed) ]]; then
@@ -114,12 +101,7 @@
[[ "$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.
--
Sven Wischnowsky wischnow@xxxxxxxxxxxxxxxxxxxxxxx
Messages sorted by:
Reverse Date,
Date,
Thread,
Author