From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: zsh-workers-return-43748-ml=inbox.vuxu.org@zsh.org X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from primenet.com.au (ns1.primenet.com.au [203.24.36.2]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id e460bb75 for ; Thu, 1 Nov 2018 12:51:54 +0000 (UTC) Received: (qmail 2057 invoked by alias); 1 Nov 2018 12:51:37 -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: X-Seq: 43748 Received: (qmail 22757 invoked by uid 1010); 1 Nov 2018 12:51:36 -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.99.2/21882. spamassassin: 3.4.1. Clear:RC:0(205.235.26.22):SA:0(-1.6/5.0):. Processed in 3.23336 secs); 01 Nov 2018 12:51:36 -0000 X-Envelope-From: SRS0=2LhR=NM=yahoo.co.uk=okiddle@bounces.park01.gkg.net X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.co.uk; s=s2048; t=1541076671; bh=KZTTL1clyrd3oPPeUWU0abf7npZjtHxzCAzyZm5PH1w=; h=From:To:Subject:Date:From:Subject; b=oqKbglaYO6vywQBjwrP4/y2YCZHntS8CX2DywhyLdVrQQw9h1akv17Ejs827DU9AeO9pTS75k1ZakgChwwdmfWUfcdxM+lwepb4qHFoRe8N5YO5H7ZXcRYu7Jv6UFomLHXM+pGed0f+ZoAH0zfqfxuydX2R0UE9ALsIvbrzLJwtCJ5bda6fHQ6jVdMiAa6AJMhoIkPAypXSnepH5/07p7hJEq79MAQPeO1oLYupR2Jsqs/0dIyKWhWpkiUjnPqzc1yT7CiFL7UQLm5CDPOJhB1Y8kg5HDGr6o3VnRxnmqylM1oYf2ty7SgWteI/DEMNa4DEf7prH5V+e2RiwzHTiEQ== X-YMail-OSG: m7JQC00VM1mcpWw6ZHOJltbKWHEhO7oz1_P.uEM5CfhCIghWJIoN4YmXH_X93lF R4m8rWENz.n6dkj76lpZVZZkmRYP2e2slEW.rjhRjJFiEw.pO58H4c2LLAgc9y2Oj6p9owUUK291 uEvIasPGfs020FbITyohdYnMcPAnAGmI5I9OC4.YCiG2rbaFtSkHUpVoe.fZMxEgFcyZ2uAHMa7D KHaPD7sGo8mW0FqyDL9r7kV1Pvc31Ns0R.ZAlRRhu7UUZxWOYmGdl_hBBIw7LQrZJONIIEHtlEYh Ve9GwlEjOghCish991p3hi0eILOqgCbxp8zGzTDOmcn5RlpEtaGsiyjl.SOeIHSCg7SSkMoopI5M MByk1Ak_1mTaL4HPc34LoOzk6_c7b.nA8KARnOF2AGNFAD_EuF96dEoJGB_F6eQeCYMrMkeQH5cL HDqr35eRN9sNXFrzKS1USpBke8GCG2XrRGUOhfU4d8PSqa2A46v5TiVHAa6ySHjtn0Q7TwzZRjCp gqdsPZQIJvXELSub6UrPLS2Qjz.GBdNc7Qktx39fInwVp007BmUPYBFuLAF9agEoK2MqtJd1Me4Z UPBjiASAr0HLGl8FZDplMPrNV4nWy6QEPclBPwbK5dBNTYH31XyThK8B1Pk0OYjgjD68uo2v1os2 oDACaDH5nv9.ZYoOCAQBN7Vc5sFDjG5Avch2H3_qmHMTSnAK1q8OrPKDQm64tCbikuw1873uDHeE fITWU1K3STUedvefLhlC.BEeIP5SjSj6x4cZ_Fi6elr9PJsDDEPJ9dm9jHqCH2gkJhbkueZpbSiU tupo.y0XFPARsgA3KTKUDBXfWXlJFBAURux4wQrux5jxPspByDDDVSKpCkll5CEwZk8L6JiqA1Xv 0pZepnHLqhqkr.5C1M7emGSrB0Kj6T.VBkDmmNXid3zRR4BWW5r7X4ZaHgbFTQbxEyXwDLPwt5N. wZTvCOlQ0P6yfBq5_wl7QCc84T1PeUwqxfUexAM_sefHboRvxok9WRnfd5c247GCwPTWZBwqzQKs - From: Oliver Kiddle To: Zsh workers Subject: PATCH: fix completion for ack 3beta MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <80801.1541076067.1@hydra> Date: Thu, 01 Nov 2018 13:41:07 +0100 Message-ID: <80802-1541076067.254546@VRCM.-1Xu.KgLD> The ack completion fails with ack 2.999 because the output from the --help-types option has very subtly changed (first becomes First). Also the ${+commands[${words[1]}]} test is not helpful because that will always return 0 for full paths - I was trying it with "./ack" having downloaded the standalone Perl script. And while I was looking at it, I've updated the options. Oliver diff --git a/Completion/Unix/Command/_ack b/Completion/Unix/Command/_ack index 626e54e0f..e83a9330e 100644 --- a/Completion/Unix/Command/_ack +++ b/Completion/Unix/Command/_ack @@ -21,17 +21,18 @@ zstyle -s ":completion:${curcontext}:" cache-policy update_policy typeset -ga _ack_raw_types if _cache_invalid ack-types || ! _retrieve_cache ack-types; then - (( ${+commands[${words[1]}]} )) && _ack_raw_types=( - ${(S)${(S)${(f)${${"$(_call_program file-types $words[1] --help=types)"}#*--\[no\]}}%; first line matches \/*\/}#*no\]} ) + _ack_raw_types=( + ${(S)${(S)${(f)${${"$(_call_program file-types $words[1] --help-types)"}#*--\[no\]}}%; ?irst line matches \/*\/}#*no\]} ) [[ $#_ack_raw_types -gt 0 ]] && _store_cache ack-types _ack_raw_types fi (( $#words > 2 )) && ign='!' _arguments -C -s -S \ - '(-i --ignore-case --smart-case --no-smart-case --nosmart-case --lines)'{-i,--ignore-case}'[match case-insensitively]' \ - '(-i --ignore-case --no-smart-case --nosmart-case --lines)--smart-case[case-insensitive match unless pattern includes uppercase]' \ - '(-i --ignore-case --smart-case --no-smart-case --nosmart-case --lines)'{--no-smart-case,--nosmart-case}'[disable --smart-case option]' \ + '(-i --ignore-case -I -S --smart-case --no-smart-case --nosmart-case --lines)'{-i,--ignore-case}'[match case-insensitively]' \ + '(-i --ignore-case -I -S --no-smart-case --nosmart-case --lines)'{-S,--smart-case}'[case-insensitive match unless pattern includes uppercase]' \ + '(-i --ignore-case -I -S --smart-case --no-smart-case --nosmart-case --lines)'{--no-smart-case,--nosmart-case}'[disable --smart-case option]' \ + '(-i --ignore-case -S --smart-case --no-smart-case --nosmart-case --lines)-I[turn on case-sensitivity in pattern]' \ '(-v --invert-match)'{-v,--invert-match}'[select non-matching lines]' \ '(-w --word-regexp)'{-w,--word-regexp}'[force pattern to match only whole words]' \ '(-Q --literal)'{-Q,--literal}'[use literal strings]' \ @@ -59,10 +60,12 @@ _arguments -C -s -S \ '(--nobreak --break)'{--nobreak,--break}'[print a break between results from different files, default on]' \ '(--nogroup)--group[group matches by file name]' \ "(--group)--nogroup[don't group matches by file name]" \ + '--proximate=[separate match output with blank lines unless they are adjacent]::proximity (lines)' \ '(--nocolor --nocolour)--colo'{,u}'r[enable color highlighting of output]' \ - '(--color --colour --color-filename --color-match --color-lineno)--nocolo'{,u}'r[suppress the color]' \ + '(--color --colour --color-filename --color-match --color-colno --color-lineno)--nocolo'{,u}'r[suppress the color]' \ '(--nocolor --nocolour --color --colour)--color-filename=[sets the color to be used for filenames]:color:->colors' \ '(--nocolor --nocolour --color --colour)--color-match=[sets the color to be used for matches]:color:->colors' \ + '(--nocolor --nocolour --color --colour)--color-colno=[specify color for column numbers]:color:->colors' \ '(--nocolor --nocolour --color --colour)--color-lineno=[specify color for line numbers]:color:->colors' \ '--flush[flush output on every line]' \ '(1)-f[only print the files that would be searched, without actually doing any searching]' \ @@ -92,6 +95,8 @@ _arguments -C -s -S \ '(--filter --nofilter)--filter[treat standard input as pipe]' \ '(--filter --nofilter)--nofilter[treat standard input as tty]' \ "${ign}(- 1 *)--man[display the manual page]" \ + "${ign}(- 1 *)--faq[display the frequently asked questions]" \ + "${ign}(- 1 *)--cookbook[display a list of tips and tricks for using ack]" \ "${ign}(- 1 *)--version[display version and copyright information]" \ "${ign}(- 1 *)--bar[consult Admiral Ackbar]" \ "${ign}(- 1 *)--thpppt[bill the cat]" \