about summary refs log tree commit diff
path: root/Completion/Unix/Command/_dd
diff options
context:
space:
mode:
authorSven Wischnowsky <wischnow@users.sourceforge.net>2001-08-07 10:38:36 +0000
committerSven Wischnowsky <wischnow@users.sourceforge.net>2001-08-07 10:38:36 +0000
commitb0ac280e1aee61f007f161c8bd9bcc31c101aadf (patch)
tree520187494317fa4deac06781219787fe7cf2eb26 /Completion/Unix/Command/_dd
parent23581f7664b70932e8736f10e5b143beeb4e7783 (diff)
downloadzsh-b0ac280e1aee61f007f161c8bd9bcc31c101aadf.tar.gz
zsh-b0ac280e1aee61f007f161c8bd9bcc31c101aadf.tar.xz
zsh-b0ac280e1aee61f007f161c8bd9bcc31c101aadf.zip
make _dd not use already used specs; fix for selecting stuff to complete in _describe; fix for correction and _describe with grouped lists (15588)
Diffstat (limited to 'Completion/Unix/Command/_dd')
-rw-r--r--Completion/Unix/Command/_dd30
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[@]"