From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9841 invoked by alias); 29 Mar 2018 18:40:53 -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: 42566 Received: (qmail 9036 invoked by uid 1010); 29 Mar 2018 18:40:53 -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.4/5.0):. Processed in 1.205028 secs); 29 Mar 2018 18:40:53 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_NONE,SPF_PASS,T_DKIM_INVALID,T_RP_MATCHES_RCVD autolearn=no autolearn_force=no version=3.4.1 X-Envelope-From: SRS0=dDLQ=GT=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=1522348845; bh=rS64yZWtHuEaVk7shCpls0b9YcS1r/2AM1506t671PQ=; h=From:To:Subject:Date:From:Subject; b=ow98L/Tsilsu6sGvAjSl4HQwnHZJtmez8ogN/KeVPU1sJR0sQwkGNUXKP/dzx2tG8f57IqV1bV6Vg78t9Q6VUQ4l0q/8+c7WruqLZk80GipkoQ0C7c1YYd3NTE78fRnku6EMkFLUr/dsLxpLKk4giutvVQM+mqs1i9IohKARCTbhQwhBbLECsjTquFjPxQogMcDjx5RVWPwHsYaDp84Z4ZCLSsfPsLL1iM7+oi7LtFt1aCH3ZyITHF/gbSKu6wBPRHKQ4UpEtIOFAHSnQwx6GwazZe7yKQf/k0sKBiNNXm0H27tjtVdBOM535w78Kj+KCdfDhowtx470LyoibtJXBg== X-YMail-OSG: FON2t5wVM1mcPPV7XbJc7.GnTgleHnHuFKGnRQljrAkAF.HRHj_.hFxX4474FgJ 3zPSsrZExB3bQ.2w0ckaPE2Frz1M3CWOiVPCCWxAgOvLkH2nvIdEMVRD7vFv90q9v0kY1_35FcHm bdtoIZCkBzdeHPOHm3fNaTqqCRRzKx_kXH5oLY1rYHh2wun1zdjjLMFYE49L3r.3R9HgoJm0y3T0 U7dueSpFrDTF5EmftPAMzGGKOGNObqaRqNlnxpZEr3VFUFlxf0BcmF64jMUMXlCcCU3gvwzcKBZY 6H2dq7A1Sd.tVh2luwikqDDLwoOyljUVeYlhORWa5lvgo871VhnJGY22rYR2fU0mnmvIvBQxq.nd LPr4T2Kz1UsMI5K.nBDb_Kzkl49VbPO0LpzsqrQQP2bSAqhjTKk717U8DzVwIHxEEjDwoNXpdF6j cxCQ95XMT.6vS4PERYeZfERtbO2_lMW0FIycFxROQqiSuM9pbgic.Al2NNansXSkdg5A2kSj3bMM 2P71EYtjnQA-- From: Oliver Kiddle To: Zsh workers Subject: PATCH: completion for strings MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <13769.1522310984.1@thecus> Date: Thu, 29 Mar 2018 10:09:44 +0200 Message-ID: <13770.1522310984@thecus> Our completion coverage for standard Unix utilities is by now fairly comprehensive. strings - which in GNU terms is binutils rather than coreutils - was missing so this adds it. Oliver diff --git a/Completion/Unix/Command/_strings b/Completion/Unix/Command/_strings new file mode 100644 index 000000000..8eeff704b --- /dev/null +++ b/Completion/Unix/Command/_strings @@ -0,0 +1,73 @@ +#compdef strings gstrings eu-strings + +local args variant format bytes +format='[precede each string by its byte offset in the file]:format:((d\:decimal o\:octal x\:hexadecimal))' +bytes='[specify minimum string length]:length (bytes) [4]' +args=( + '(-t --radix)-o[precede each string by its decimal byte offset]' + '!(-n --bytes)-'{1,2,3,4,5,6,7,8,9} +) + +if _pick_variant -r variant binutils=GNU elftoolchain=elftoolchain elfutils=elfutils unix -V; then + args+=( + '(-a --all -d --data)'{-a,--all}'[look everywhere in file, not just initialised data space of object files]' + '(-e --encoding)'{-e+,--encoding=}'[select character size and endianness]:character type:(( + s\:7-bit + S\:8-bit + b\:16-bit\ big-endian + l\:16-bit\ little-endian + B\:32-bit\ big-endian + L\:32-bit\ little-endian))' + '(-f --print-file-name)'{-f,--print-file-name}'[print name of the file before each string]' + '(-n --bytes)'{-n+,--bytes=}"$bytes" + '(-d -t --radix)'{-t+,--radix=}"$format" + '(- *)--help[display help information]' + '(- *)--version[display version information]' + ) + case $variant in + elfutils|binutils) + args+=( '(- *)-V[display version information]' ) + ;| + elftoolchain|binutils) + args+=( + '(- *)-h[display help information]' + '(- *)-v[display version information]' + ) + ;| + binutils) + args+=( + '(-a --all -d --data)'{-d,--data}'[only print strings from file data sections]' + '(-w --include-all-whitespace)'{-w,--include-all-whitespace}'[include all whitespace as valid string characters]' + '(-T --target)'{-T+,--target=}'[specify binary file format]:format:compadd - ${(z)${(M)${(f)"$(_call_program targets strings --help)"}##* supported targets*}##*\: }' + '(-s --output-separator)'{-s+,--output-separator=}'[specify string used to separate strings in output]' + ) + ;; + elfutils) + args+=( + '(- *)--usage[display a short usage message]' + '(- *)-\\?[display help information]' + ) + ;; + esac +else + args+=( + "(-d)-t+$format" + "-n+$bytes" + '-a[look everywhere in file, not just initialised data space of object files]' + ) + case $OSTYPE in + darwin) + local -a arch + arch=( ${${${"$(_call_program architectures strings -arch \? 2>&1)"}#*flags are: }%%$'\n'*} ) + args+=( '-arch[specify the architecture]:architecture:compadd -a arch' ) + ;; + esac +fi + +if compset -P '@'; then + _files + return +fi + +_arguments -S -s $args \ + '*:file:_files'