diff options
Diffstat (limited to 'Completion/Unix')
-rw-r--r-- | Completion/Unix/Command/_dd | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/Completion/Unix/Command/_dd b/Completion/Unix/Command/_dd index 27cff1198..64b8275e8 100644 --- a/Completion/Unix/Command/_dd +++ b/Completion/Unix/Command/_dd @@ -1,14 +1,22 @@ #compdef dd -_values -S '=' 'option' \ - 'if[specify input file]:input file:_tilde_files' \ - 'of[specify output file]:output file:_tilde_files' \ - 'ibs[input block size]:block size (bytes)' \ - 'obs[output block size]:block size (bytes)' \ - 'bs[block size]:block size (bytes)' \ - 'cbs[conversion buffer size]:buffer size (bytes)' \ - 'skip[input blocks initially skipped]:blocks' \ - 'seek[output blocks initially skipped]:blocks' \ - 'files[specify number of input files to copy and concatenate]:number of files' \ - 'count[number of input blocks to copy]:blocks' \ +local opts + +opts=( + 'if[specify input file]:input file:_tilde_files' + 'of[specify output file]:output file:_tilde_files' + 'ibs[input block size]:block size (bytes)' + 'obs[output block size]:block size (bytes)' + 'bs[block size]:block size (bytes)' + 'cbs[conversion buffer size]:buffer size (bytes)' + 'skip[input blocks initially skipped]:blocks' + 'seek[output blocks initially skipped]:blocks' + 'files[specify number of input files to copy and concatenate]:number of files' + 'count[number of input blocks to copy]:blocks' 'conv[specify conversions to apply]:conversion:_values -s , "conversion" ascii ebcdic ibm block unblock lcase ucase swab noerror sync' +) + +[[ "$PREFIX$SUFFIX" != *\=* ]] && + opts=( "${(@)opts:#(${(j:|:)~words[2,-1]%%\=*})\[*}" ) + +_values -S '=' 'option' "$opts[@]" |