Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: Darwin _defaults completion bug
- X-seq: zsh-users 8522
- From: Motoi Washida <a66@xxxxxxxxxxxxx>
- To: lists <lists@xxxxxxxxxxxxxxxx>
- Subject: Re: Darwin _defaults completion bug
- Date: Fri, 18 Feb 2005 15:55:53 +0900
- Cc: zsh-users@xxxxxxxxxx
- In-reply-to: <bb57a9a834f9731d92eac69b1260728e@xxxxxxxxxxxxxxxx>
- Mailing-list: contact zsh-users-help@xxxxxxxxxx; run by ezmlm
- References: <bb57a9a834f9731d92eac69b1260728e@xxxxxxxxxxxxxxxx>
Hi Ryan,
I think I've found a small bug with your _defaults completion (which
I use all the time). If I type 'defaults read -g' then hit the Tab
key, I see a list of possible completions which are quoted *and*
escaped with a backslash.
(...snip...)
...et cetera, et cetera. The command doesn't work in the escaped +
quoted form. If just the quotes are used, the command works. I've
looked at _defaults but haven't been able to figure out where the
escapes are being inserted. If you get a chance, could you take a
look?
Thanks! This occurred because the completion did not handle quoted key
name "defaults read" prints. Here is a patch to remove quotes.
--
Motoi Washida
Index: Completion/Darwin/Command/_defaults
===================================================================
RCS file: /cvsroot/zsh/zsh/Completion/Darwin/Command/_defaults,v
retrieving revision 1.2
diff -d -u -r1.2 _defaults
--- Completion/Darwin/Command/_defaults 17 Jan 2005 09:39:21 -0000 1.2
+++ Completion/Darwin/Command/_defaults 18 Feb 2005 06:24:58 -0000
@@ -14,9 +14,10 @@
}
_defaults_keys(){
- local ks="$(_call_program keys defaults read "$words[2]" 2>/dev/null
| sed '/^ [[:alpha:]"]/ { s/^ //; s/ = .*$//; p;}; d')"
+ local ks
+ ks=(${${${${(M)${(f)"$(defaults read "$words[2]" 2>/dev/null)"}:#
[^ ]*=*}# }%% = *}:Q})
local expl
- _wanted keys expl 'key' compadd ${(f)ks}
+ _wanted keys expl 'key' compadd "$ks[@]"
}
_defaults(){
Messages sorted by:
Reverse Date,
Date,
Thread,
Author