mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-11-03 19:11:34 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			99 lines
		
	
	
	
		
			2.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			99 lines
		
	
	
	
		
			2.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
#compdef dd gdd
 | 
						|
 | 
						|
local -a vals conv flags
 | 
						|
local variant
 | 
						|
 | 
						|
_pick_variant -r variant gnu=GNU $OSTYPE --version
 | 
						|
 | 
						|
vals=(
 | 
						|
  '(ibs obs)bs[block size]:block size (bytes)'
 | 
						|
  'cbs[conversion buffer size]:buffer size (bytes)'
 | 
						|
  'conv[specify conversions to apply]: :_values -s , conversion $conv'
 | 
						|
  'count[number of input blocks to copy]:blocks'
 | 
						|
  '(bs)ibs[input block size]:block size (bytes)'
 | 
						|
  'if[specify input file]:input file:_tilde_files'
 | 
						|
  '(bs)obs[output block size]:block size (bytes)'
 | 
						|
  'of[specify output file]:output file:_tilde_files'
 | 
						|
  'seek[output blocks initially skipped]:blocks'
 | 
						|
  'skip[input blocks initially skipped]:blocks'
 | 
						|
)
 | 
						|
conv=(
 | 
						|
  '(ascii asciib oldascii ebcdic ebcdicb oldebcdic ibm ibmb oldibm)'{ascii,ebcdic,ibm}
 | 
						|
  '(unblock)block' '(block)unblock'
 | 
						|
  '(ucase)lcase' '(lcase)ucase'
 | 
						|
  swab sync noerror notrunc
 | 
						|
)
 | 
						|
 | 
						|
case $variant in
 | 
						|
  ^gnu)
 | 
						|
    vals+=(
 | 
						|
      'files[specify number of input files to copy and concatenate]:number of files'
 | 
						|
    )
 | 
						|
  ;|
 | 
						|
  (gnu|darwin|dragonfly|(free|net)bsd*)
 | 
						|
    conv+=( sparse )
 | 
						|
  ;|
 | 
						|
  gnu|netbsd*)
 | 
						|
    vals+=(
 | 
						|
      '*iflag[specify read flags]:flag:_sequence compadd - $flags'
 | 
						|
      '*oflag[specify write flags]:flag:_sequence compadd - $flags'
 | 
						|
    )
 | 
						|
    flags=( append direct directory dsync sync nonblock noctty nofollow )
 | 
						|
  ;|
 | 
						|
  darwin*|dragonfly*|(free|net)bsd*)
 | 
						|
    vals+=(
 | 
						|
      'oseek[output blocks initially skipped]:blocks'
 | 
						|
    )
 | 
						|
    conv+=(
 | 
						|
      '(ascii oldascii ebcdic oldebcdic oldibm)'old{ascii,ebcdic,ibm}
 | 
						|
    )
 | 
						|
  ;|
 | 
						|
  (darwin|dragonfly|freebsd|netbsd|solaris)*)
 | 
						|
    vals+=(
 | 
						|
      'iseek[input blocks initially skipped]:blocks'
 | 
						|
    )
 | 
						|
  ;|
 | 
						|
  (open|free)bsd*)
 | 
						|
    vals+=(
 | 
						|
      'status[specify level of information to print to stderr]:level:(none noxfer)'
 | 
						|
    )
 | 
						|
    conv+=( osync )
 | 
						|
  ;|
 | 
						|
 | 
						|
  freebsd*)
 | 
						|
    vals+=(
 | 
						|
      'fillchar[specify padding character]:character'
 | 
						|
      'speed[limit copying speed]:speed (bytes/second)'
 | 
						|
    )
 | 
						|
    conv+=(
 | 
						|
      '(pareven parnone parodd parset)'{pareven,parnone,parodd,parset}
 | 
						|
    )
 | 
						|
  ;;
 | 
						|
  gnu)
 | 
						|
    vals+=(
 | 
						|
      'status[specify level of information to print to stderr]:level:(none noxfer progress)'
 | 
						|
    )
 | 
						|
    flags+=( fullblock noatime nocache count_bytes skip_bytes seek_bytes )
 | 
						|
    conv+=( excl nocreat fdatasync fsync )
 | 
						|
  ;;
 | 
						|
  netbsd*)
 | 
						|
    vals+=(
 | 
						|
      'msgfmt[specify format for information summary]:format:(quiet posix human)'
 | 
						|
      'progress[enable progress display]:enable:(1)'
 | 
						|
    )
 | 
						|
    flags+=(
 | 
						|
      wronly rdwr creat trunc excl shlock exlock cloexec nosigpipe rsync alt_io async
 | 
						|
    )
 | 
						|
  ;;
 | 
						|
  solaris*)
 | 
						|
    vals+=(
 | 
						|
      'files[specify number of input files to copy and concatenate]:number of files'
 | 
						|
      'oseek[output blocks initially skipped (via seek, not NUL-padding)]:blocks'
 | 
						|
    )
 | 
						|
    conv+=(
 | 
						|
      '(ascii asciib ebcdic ebcdicb ibmb)'{ascii,ebcdic,ibm}b
 | 
						|
    )
 | 
						|
  ;;
 | 
						|
esac
 | 
						|
 | 
						|
_values -w 'option' $vals
 |