summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--Completion/Core/_expand8
2 files changed, 8 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 3eaf88a56..d3a7dd340 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2000-06-29 Sven Wischnowsky <wischnow@zsh.org>
+ * 12118: Completion/Core/_expand: don't expand partially typed
+ parameter expansions
+
* 12115: Completion/Core/_expand, Doc/Zsh/compsys.yo: change
suffix style to still do expansion if the suffix contains
something to expand
diff --git a/Completion/Core/_expand b/Completion/Core/_expand
index 12c31860b..77d9c8794 100644
--- a/Completion/Core/_expand
+++ b/Completion/Core/_expand
@@ -33,7 +33,9 @@ else
word="$IPREFIX$PREFIX$SUFFIX$ISUFFIX"
fi
-[[ "$word" = *\$\{[^\}]# ]] && return 1
+[[ "$word" = *\$(|\{[^\}]#) ||
+ ( "$word" = *\$[a-zA-Z0-9_]## && $+parameters[${word##*\$}] -eq 0 ) ]] &&
+ return 1
zstyle -T ":completion:${curcontext}:" suffix &&
[[ "$word" = (\~*/|\$(|[=~#^+])[a-zA-Z0-9_\[\]]##[^a-zA-Z0-9_\[\]]|\$\{*\}?)[^\$\{\}\(\)\<\>?^*#~]# ]] &&
@@ -44,8 +46,8 @@ zstyle -t ":completion:${curcontext}:" accept-exact ||
{ [[ "$word" = \~(|[-+]) ||
( "$word" = \~[-+][1-9]## && $word[3,-1] -le $#dirstack ) ||
( "$word" = \~* && ${#userdirs[(I)${word[2,-1]}*]}+${#nameddirs[(I)${word[2,-1]}*]} -ne 1 ) ||
- ( "$word" = \$[a-zA-Z0-9_]## &&
- ${#parameters[(I)${word[2,-1]}*]} -ne 1 ) ]] && return 1 }
+ ( "$word" = *\$[a-zA-Z0-9_]## &&
+ ${#parameters[(I)${word##*\$}*]} -ne 1 ) ]] && return 1 }
# In exp we will collect the expansions.