Hi,
there seems to be a bug in compdef that prevents more than three
commands from using the same completion service. The problem can be
illustrated by the following commands:
$ compdef foo=mount
$ compdef bar=mount
$ compdef baz=mount
compdef: unknown command or service: mount
The cause of this error is an invalid use of the 'R' array subscript
flag. The following patch fixes the issue.
Best regards
Frank Benkstein.
diff -ur zsh-4.3.4/Completion/compinit zsh-4.3.4.fixed/Completion/compinit
--- zsh-4.3.4/Completion/compinit 2006-11-01 13:25:22.000000000 +0100
+++ zsh-4.3.4.fixed/Completion/compinit 2007-11-01 11:22:16.739402608 +0100
@@ -271,7 +271,7 @@
if [[ "$1" = *\=* ]]; then
cmd="${1%%\=*}"
svc="${1#*\=}"
- func="$_comps[${_services[(R)$svc]:-$svc}]"
+ func="$_comps[${_services[(r)$svc]:-$svc}]"
[[ -n ${_services[$svc]} ]] &&
svc=${_services[$svc]}
[[ -z "$func" ]] &&
--
GPG (Mail): 7093 7A43 CC40 463A 5564 599B 88F6 D625 BE63 866F
GPG (XMPP): 2243 DBBA F234 7C5A 6D71 3983 9F28 4D03 7110 6D51
Attachment:
signature.asc
Description: OpenPGP digital signature