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(){