about summary refs log tree commit diff
path: root/Completion/Unix/Command/_dd
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Unix/Command/_dd')
-rw-r--r--Completion/Unix/Command/_dd30
1 files changed, 12 insertions, 18 deletions
diff --git a/Completion/Unix/Command/_dd b/Completion/Unix/Command/_dd
index 419fc1a7a..27cff1198 100644
--- a/Completion/Unix/Command/_dd
+++ b/Completion/Unix/Command/_dd
@@ -1,20 +1,14 @@
 #compdef dd
 
-local expl
-
-if compset -P 1 'conv='; then
-  # If there's a comma present, ignore up to the last one.  The
-  # test alone will have that effect.
-  compset -p '*,'
-  _wanted values expl conversion \
-      compadd -qS, ascii ebcdic ibm block unblock lcase ucase swab noerror sync
-elif compset -P 1 'if='; then
-  _description files expl 'input file'
-  _tilde_files "$expl[@]"
-elif compset -P 1 'of='; then
-  _description files expl 'output file'
-  _tilde_files "$expl[@]"
-else
-  _wanted values expl option \
-      compadd -S '=' if of ibs obs bs cbs skip files seek count conv
-fi
+_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' \
+  'conv[specify conversions to apply]:conversion:_values -s , "conversion" ascii ebcdic ibm block unblock lcase ucase swab noerror sync'