#compdef xxd local curcontext="$curcontext" ret=1 arguments # TODO: permit two hyphens (--autoskip, --groupsize, etc) # TODO: xxd - should show '-x' and '-x:' differently - give visual hint that there's a required argument # Output options compatibility matrix # # 0 - options conflict # 1 - options coexist # # (The matrix is symmetric, so implied values are not shown.) # # bEipru # bx10000 # E-x0001 # i--x001 # p---x11 # r----x0 # u-----x arguments=( # output options '(-b -bits -i -include -p -postscript -plain -ps -r -reverse -u -uppercase)'{-b,-bits}'[output in binary digits, rather than hex]' '( -E -EBCDIC -i -include -p -postscript -plain -ps -r -reverse )'{-E,-EBCDIC}'[print human-readable part in EBCDIC rather than ASCII]' '(-b -bits -E -EBCDIC -i -include -p -postscript -plain -ps -r -reverse )'{-i,-include}'[output in C include file style]' '(-b -bits -E -EBCDIC -i -include -p -postscript -plain -ps )'{-p,-postscript,-plain,-ps}'[read or write a plain hexdump (no line numbers or ASCII rendering)]' '(-b -bits -E -EBCDIC -i -include -r -reverse -u -uppercase)'{-r,-reverse}'[reverse mode\: read a hex dump and output binary data]' '(-b -bits -r -reverse -u -uppercase)'{-u,-uppercase}'[output upper-case hex digits]' {-h,-help}'[display usage message]' {-v,-version}'[show program version]' '*'{-a,-autoskip}"[a single '*' replaces runs of NUL (toggleable)]" {-c+,-cols}'[output ARG octets per line]:number of octets per line' {-g+,-groupsize}'[separate the output every ARG octets]:number of octets per group' {-l+,-len}'[output ARG octets]:number of octets to output' {-s,-skip,-seek}'[add ARG to file positions in the input]:file offset (absolute or relative)' ':files:_files' ) _arguments -S $arguments && ret=0 return ret