diff options
author | Axel Beckert <abe@deuxchevaux.org> | 2018-04-07 15:12:57 +0200 |
---|---|---|
committer | Axel Beckert <abe@deuxchevaux.org> | 2018-04-07 15:12:57 +0200 |
commit | 6e1ab9aa550695ee7e3d467b4173c0b83ba7f759 (patch) | |
tree | 8fb7faa4364a7cbf1cba48296a5f537e13f2a8d9 /Completion/Unix/Command/_strings | |
parent | 5ad56a41f1ee2e61abca079f5ea8909f895ac2dd (diff) | |
parent | f027f1d6e876708bc75d4217e1ca26898658d8d3 (diff) | |
download | zsh-6e1ab9aa550695ee7e3d467b4173c0b83ba7f759.tar.gz zsh-6e1ab9aa550695ee7e3d467b4173c0b83ba7f759.zip |
Merge tag 'zsh-5.4.2-test-2' / 'upstream' branch into 'debian' branch
Test version 2 prior to zsh 5.5.
Diffstat (limited to 'Completion/Unix/Command/_strings')
-rw-r--r-- | Completion/Unix/Command/_strings | 73 |
1 files changed, 73 insertions, 0 deletions
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' |