From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5080 invoked from network); 16 May 2001 12:01:10 -0000 Received: from sunsite.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 16 May 2001 12:01:10 -0000 Received: (qmail 10975 invoked by alias); 16 May 2001 12:01:02 -0000 Mailing-List: contact zsh-workers-help@sunsite.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 14361 Received: (qmail 10952 invoked from network); 16 May 2001 12:01:00 -0000 Date: Wed, 16 May 2001 08:00:47 -0400 From: Clint Adams To: Oliver Kiddle Cc: zsh-workers@sunsite.dk Subject: Re: PATCH: rmmod/modprobe -r completion Message-ID: <20010516080047.A11461@dman.com> References: <20010514222601.A18298@dman.com> <3B014622.7EE4888@u.genie.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <3B014622.7EE4888@u.genie.co.uk>; from opk@u.genie.co.uk on Tue, May 15, 2001 at 04:07:14PM +0100 > Hmm, this is fine but I'd have used a state or cached the loaded array > and passed it to _arguments. Which is more efficient - functions > declared in the autoloaded functions or states? Well, modprobe could benefit from the use of states, so here's modprobe supporting a few more options: Index: Completion/Unix/Command/_modutils =================================================================== RCS file: /cvsroot/zsh/zsh/Completion/Unix/Command/_modutils,v retrieving revision 1.2 diff -u -r1.2 _modutils --- Completion/Unix/Command/_modutils 2001/05/15 15:14:21 1.2 +++ Completion/Unix/Command/_modutils 2001/05/16 11:59:02 @@ -32,12 +32,37 @@ '(-v)--verbose' \ '(--version)-V[print version]' \ '(-V)--version' \ - '*:loaded module:_modutils_loaded_modules' + '*:loaded module:_modutils_loaded_modules' && return 0 ;; modprobe) - _arguments '(--remove)-r[remove]:loaded module:_modutils_loaded_modules' \ - '(-r)--remove:loaded module:_modutils_loaded_modules' + + _modprobe_arguments=( + '(--all)-a[all]' \ + '(-a)--all' \ + '(--showconfig)-c[showconfig]' \ + '(-c)--showconfig' \ + '(--debug)-d[debug]' \ + '(-d)--debug' \ + '(--autoclean)-k[set autoclean]' \ + '(-k)--autoclean' \ + '(--show)-n[do not act]' \ + '(-n)--show' + ) + + _arguments '(--remove)-r[remove]:*:loaded module:->modprobe_remove' \ + '(-r)--remove:*:loaded module:->modprobe_remove' \ + "$_modprobe_arguments[@]" && return 0 + + ;; + +esac + +case "$state" in + modprobe_remove) + _call_function ret _modutils_$state && return ret + _arguments "$_modprobe_arguments[@]" \ + '*:loaded module:_modutils_loaded_modules' ;; esac