1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-01-21 00:01:26 +01:00

Jörg Sommer: 25819: improve module parameter completion.

First, do not embedd the = in the parameter by define it a
parameter‐value separator; -S =.

Second, look for already given parameters in all words; -w.

Third, use the curcontext variable; -C.

Forth, distinct between boolean and non‐boolean parameters, i.e. do not
append a = to the end. And include the type of the parameter in the help
message. This information is only given in the full output of modinfo,
not in the narrowed output with --field.
This commit is contained in:
Clint Adams 2008-10-07 07:48:55 +00:00
parent 8538c98ddf
commit e6e5d2eb1d
2 changed files with 13 additions and 3 deletions

View file

@ -1,5 +1,8 @@
2008-10-07 Clint Adams <clint@zsh.org>
* Jörg Sommer: 25819: Completion/Linux/Command/_modutils: improve
module parameter completion.
* Jörg Sommer: 25822: Completion/Linux/Command/_modutils: declare
val_args as local array.

View file

@ -95,10 +95,17 @@ case "$state" in
if compset -P '*='; then
_message -e value 'parameter value'
else
typeset -A val_args
local params
params=( ${${(M)${(f)"$(_call_program module_parameter modinfo "$words[2]" 2>/dev/null)"}:#parm:*}##parm:[[:space:]]##} )
if [[ $#params -eq 0 ]]; then
_message -e parameter "This modules doesn't have parameters"
else
typeset -A val_args
_values 'module parameter' \
${(f)^"$(_call_program module_parameter modinfo -F parm "$words[2]" 2>/dev/null)"//:/\=[}\] && ret=0
_values -S = -C -w 'module parameter' \
${${${(M)params:#*(:bool|\(bool\))}/:/[}/(bool| \(bool\))/]} \
${^${params:#*(:bool|\(bool\))}/:/[}"]:auto added argument: " && ret=0
fi
fi
;;
esac