summaryrefslogtreecommitdiff
path: root/Completion/compinit
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/compinit')
-rw-r--r--Completion/compinit16
1 files changed, 14 insertions, 2 deletions
diff --git a/Completion/compinit b/Completion/compinit
index d85ff072e..aa42a12de 100644
--- a/Completion/compinit
+++ b/Completion/compinit
@@ -230,6 +230,10 @@ comppostfuncs=()
compdef() {
local opt autol type func delete new i ret=0 cmd svc
+ local -a match mbegin mend
+
+ emulate -L zsh
+ setopt extendedglob
# Get the options.
@@ -364,10 +368,18 @@ compdef() {
else
case "$type" in
pattern)
- _patcomps[$1]="$func"
+ if [[ $1 = (#b)(*)=(*) ]]; then
+ _patcomps[$match[1]]="=$match[2]=$func"
+ else
+ _patcomps[$1]="$func"
+ fi
;;
postpattern)
- _postpatcomps[$1]="$func"
+ if [[ $1 = (#b)(*)=(*) ]]; then
+ _postpatcomps[$match[1]]="=$match[2]=$func"
+ else
+ _postpatcomps[$1]="$func"
+ fi
;;
*)
if [[ "$1" = *\=* ]]; then