From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=DKIM_ADSP_CUSTOM_MED, FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 28569 invoked from network); 23 Jun 2020 22:00:18 -0000 Received: from ns1.primenet.com.au (HELO primenet.com.au) (203.24.36.2) by inbox.vuxu.org with ESMTPUTF8; 23 Jun 2020 22:00:18 -0000 Received: (qmail 12555 invoked by alias); 23 Jun 2020 22:00:13 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: List-Unsubscribe: Sender: zsh-workers@zsh.org X-Seq: 46106 Received: (qmail 1453 invoked by uid 1010); 23 Jun 2020 22:00:13 -0000 X-Qmail-Scanner-Diagnostics: from park01.gkg.net by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.102.3/25850. spamassassin: 3.4.4. Clear:RC:0(205.235.26.22):SA:0(-2.6/5.0):. Processed in 1.825119 secs); 23 Jun 2020 22:00:13 -0000 X-Envelope-From: SRS0=9ziK=AE=yahoo.co.uk=okiddle@bounces.park01.gkg.net X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: pass (ns1.primenet.com.au: SPF record at bounces.park01.gkg.net designates 205.235.26.22 as permitted sender) X-Virus-Scanned: by amavisd-new at gkg.net Authentication-Results: amavisd4.gkg.net (amavisd-new); dkim=pass (2048-bit key) header.d=yahoo.co.uk X-Greylist: domain auto-whitelisted by SQLgrey-1.8.0 X-YMail-OSG: 5vgBg3kVM1nfelEeRV.E0OBrwm0d.W7i5dZvsTeXvGQZNFFKw3nWMk3_mPBsQ93 8f2g4EWQJTzKHzKG_DHgue0xnSukZTBm8EysajfoLDdR0kaw8wLpGWUoBy6DaK9ztuSd6D2XTsrl TMOnIYfoPhWRP9hvoJ1.FJqif4uDpYs9r.V.khD4kInXRDCOJH.B0mXobtXMHdYUIiKmNkxHOI8g 3VlaabWRdhZUe3QEY0pep3U_JHo33WMTB1CUe8sMTdDAP6.hVTf3pOdWvRusTp.L9lGXfoVBjiXV L_qqgUYaaZvfxunJDSSVnyzM159M9nLGtPzRP8XyAHCAGKW_AoVSaKSuXGCriKmu3tNoCktyY0_5 0OedXJVBhxd0h4.QBzyEoWKM3eTZMfFVoO3O9S845Ob.1bANRU9iBd05V5zpRsc.6U7a0ZeEL2lV TyROMf1sc_mD4s.Di3Bv3yqb53yP2Gb9SqVj9sz0DcB3nppeailNteRuNEvukLM_NNy4GpwtDbsj IaIEkcijQSQSsIkiupCFAh9uq49bAdXCXnJsSr5pU47FDYVUnlCDyTI8n9SaxalEBi9hDoWYceGM gi3A7hqGO3xNf6nSIRJfXZloafcvpj5IDXpYFn2LaCmxKfIn_EQjN0DR.tUXMkVssvbQIdzqlWgO l.wzyWfqIzLboAJJXROhY1qsVylquOAgrzWgua5j2WAvxeZ7gqxkpJQ_O.vbnmBzl44.0LcLO_Rz _StyXzRe6a5ps2ckRN2a3DeeR069HJ2A6BIk9078737zudv37gxKIlc3.T9Nv_n5nL0ZUE72HVKl EAEkTqREoj1MnK3P81X65g9cOx574C4noplQEaH78XcMehNOGPctkG_RZz1smgMVwY0zz59s3_D3 wujZgEzisjZhgNntOisMrtedkR__wogfXrnwfrZ.Iif4knQn30SKZ_vjXpL9e.qHTMxsoqib484K HtaS7S.102heJ23nsv700w9A73LF.xOh4WB9iF8XU0Mki1rMBkEs6wdjYedGRKA84xD2Sy7xd55u JSHaSL2H8qCBpvO_5Md9eFx9H0MXhseuvJuKSiS3elzOQaZpm9hghoG.Vhh97Sc25.X4a_dGAAUs 9vjihVcyZJa0mxf4Stg7ca5QuF4S0roAzy0_dUO7YB6x_GKpdbuJ9bELWjKnADXgIg96WHRvWubj 1wTPMch_V0fh99sO5gNQGB1QaSuWq76RajgKCJA8GvzZW9tpLdQf3u37Lrl7HnUBJ99sjl8MjI9E 5ttbDnG8WrXqjL3vPGdcEqofgL2izHTDQx5mtAz6h5uRsCzv4FGBe0KIYoInlx.a9Yuc1PNT.ZDT qw_JF7ip7o7LBd5ljlReq3.U8BWcWDjyvt23HZd4q1KLekRMzkd5TXAxEwp7g.vWyw4nnDilLG8p 6QfU- From: Oliver Kiddle To: Zsh workers Subject: PATCH: usbconfig completion MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <95444.1592949570.1@hydra> Date: Tue, 23 Jun 2020 23:59:30 +0200 Message-ID: <95445-1592949570.280834@dFGk.KvIW._mS9> References: <95445-1592949570.280834.ref@dFGk.KvIW._mS9> X-Mailer: WebService/1.1.16138 hermes_yahoo Apache-HttpAsyncClient/4.1.4 (Java/11.0.7) This adds completion for the FreeBSD usbconfig utility. I had made a note to fix it for Dragonfly but am posting it without rather than have it sit any longer in my own branch. Oliver diff --git a/Completion/BSD/Command/_usbconfig b/Completion/BSD/Command/_usbconfig new file mode 100644 index 000000000..e7da8132c --- /dev/null +++ b/Completion/BSD/Command/_usbconfig @@ -0,0 +1,63 @@ +#compdef usbconfig + +local curcontext="$curcontext" i ret=1 +local -a state line expl devices ids partial args + +_arguments -C \ + '(-d)-u[limit device range to given USBUS unit]:bus:->buses' \ + '(-d)-a[limit device range to given USB device index]:address:->addresses' \ + '(-a -u)-d[limit device range to given unit and address]:device:->devices' \ + '-i[specify interface index]:interface index' \ + '(- 1)-h[display usage information]' \ + '(-)1:command:compadd -M "r:|_=* r:|=*" + set_config set_alt set_template get_template add_dev_quirk_vplh + remove_dev_quirk_vplh add_quirk remove_quirk detach_kernel_driver + dump_quirk_names dump_device_quirks dump_all_desc dump_device_desc + dump_curr_config_desc dump_all_config_desc dump_string dump_info show_ifdrv + suspend resume power_off power_save power_on reset list do_request' \ + '*::: := ->args' && ret=0 + +case $state in + buses) partial=( ${(kv)=opt_args[(i)-a]:--a 1} ) i=1 ;| + addresses) partial=( ${(kv)opt_args[(i)-u]} ) i=2 ;& + buses) + devices=( ${${(f)"$(_call_program usb-devices usbconfig $partial list)"}:#No device*} ) + ids=( ${${(MSI.i.)devices##[^0-9]<->}#?} ) + _wanted usb-$state expl ${state%es} compadd -ld devices -o numeric -a ids && ret=0 + ;; + devices) + devices=( ${${${(f)"$(_call_program usb-devices usbconfig list)"}/: /:}:#No device*} ) + if (( $#devices )); then + _describe -t usb-devices device devices -M 'B:=ugen' && ret=0 + else + _message -e usb-devices device + fi + ;; + args) + curcontext="${curcontext%:*}-$line[1]:" + case $line[1] in + set_config) args=( '1:cfg index' ) ;; + set_alt) args=( '1:alt index' ) ;; + set_template) args=( '1:template (see usb_template(4))' ) ;; + (add|remove)_dev_quirk_vplh) args=( -C + ':vendor id' ':product id' ':low revision' + ':high revision' ':quirk:->quirks' + ) ;; + (add|remove)_quirk) args=( -C '1:quirk:->quirks' ) ;; + dump_string) args=( '1:index' ) ;; + do_request) args=( :bmReqTyp :bReq :wVal :wIdx :wLen '*:data' ) ;; + esac + if (( $#args )); then + _arguments $args && ret=0 + else + _message 'no more arguments' + fi + if [[ $state = quirks ]]; then + _wanted quirks expl quirk compadd \ + -M 'm:{:lower:}={:upper:} r:|_=* r:|=* b:=UQ_' \ + ${${(f)"$(_call_program quirks usbconfig dump_quirk_names)"}:#*list of*} && ret=0 + fi + ;; +esac + +return ret