mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-11-04 07:21:06 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			891 lines
		
	
	
	
		
			25 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			891 lines
		
	
	
	
		
			25 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
#compdef -P (p[bgpn]m*|*top[bgpn]m)
 | 
						|
 | 
						|
# Completion for all (or most, you'll never know) pbmplus commands.
 | 
						|
# For some of them there are special cases in the biggish `case' below.
 | 
						|
# Note that since this function is a post-pattern function, these
 | 
						|
# defaults can be overridden by simply defining completion functions
 | 
						|
# for those commands whose arguments you want to complete differently.
 | 
						|
 | 
						|
local pat expl ret=1
 | 
						|
 | 
						|
if [[ "$service" = pnm* ]]; then
 | 
						|
  pat='*.(#i)p[bgp]m(-.)'
 | 
						|
elif [[ "$service" = *top[bgpn]m ]]; then
 | 
						|
  pat="*.(#i)${service%%top[bgpn]m}(-.)"
 | 
						|
else
 | 
						|
  pat="*.(#i)${service[1,3]}(-.)"
 | 
						|
fi
 | 
						|
 | 
						|
if (( $# + $+_in_pbm )); then
 | 
						|
  _wanted files expl 'picture file' _path_files "$@" -g "$pat" - ||
 | 
						|
      _files "$@" "$expl[@]" -g '*.(#i)p[bgp]m(-.)'
 | 
						|
  return
 | 
						|
fi
 | 
						|
 | 
						|
local _in_pbm=yes
 | 
						|
 | 
						|
case "$service" in
 | 
						|
asciitop[gn]m)
 | 
						|
  _arguments \
 | 
						|
    '-d[specify divisor]:divisor' \
 | 
						|
    ':height' ':width' ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
fitstopgm)
 | 
						|
  _arguments \
 | 
						|
    '-image[specify image number]:image number' \
 | 
						|
    ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
fitstopnm)
 | 
						|
  _arguments \
 | 
						|
    '-image[specify image number]:image number' \
 | 
						|
    '-noraw[produce ASCII pnm file]' \
 | 
						|
    '(-min -max)-scanmax[force scanning data for minimum and maximum]' \
 | 
						|
    '-printmax[only print minimum and maximum values]' \
 | 
						|
    '(-scanmax)-min[override minimum value]:minimum value' \
 | 
						|
    '(-scanmax)-max[override maximum value]:maximum value' \
 | 
						|
    ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
g3topbm)
 | 
						|
  _arguments \
 | 
						|
    '-kludge[ignore first few lines]' \
 | 
						|
    '-reversebits[interpret bits least-significant first]' \
 | 
						|
    '-stretch[duplicate each row]' \
 | 
						|
    ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
giftopnm)
 | 
						|
  _arguments \
 | 
						|
    '-alphaout=[output alpha channel]:file:_pbm' \
 | 
						|
    '-verbose[verbose mode]' \
 | 
						|
    '-comments[only print comment fields]' \
 | 
						|
    '-image[specify image number]:image number' \
 | 
						|
    ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
jpegtopnm)
 | 
						|
  _arguments \
 | 
						|
    '-dct:dct method:(int fast float)' \
 | 
						|
    -{nosmooth,adobe,notadobe,dumpexif,comments,verbose} \
 | 
						|
    '-maxmemory:memory use limit (kB)' \
 | 
						|
    '-exif=:file:_files' \
 | 
						|
    '-tracelevel:trace level' \
 | 
						|
    ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
macptopbm)
 | 
						|
  _arguments '-extraskip:number of bytes to skip' ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pbmclean)
 | 
						|
  if [[ "$PREFIX" = -* ]]; then
 | 
						|
    _message -e neighbours 'maximum number of identical neighbours'
 | 
						|
  else
 | 
						|
    _pbm
 | 
						|
  fi
 | 
						|
  ;;
 | 
						|
 | 
						|
pbmmake)
 | 
						|
  _arguments \
 | 
						|
    '(-black -gray)-white[produce white pbm file]' \
 | 
						|
    '(-white -gray)-black[produce black pbm file]' \
 | 
						|
    '(-white -black)-gray[produce gray pbm file (stippled)]' \
 | 
						|
    ':width' ':height'
 | 
						|
  ;;
 | 
						|
 | 
						|
pbmmask)
 | 
						|
  _arguments '-expand[expand mask by one pixel]' ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pbmpscale)
 | 
						|
  _arguments ':scale factor' ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pbmreduce)
 | 
						|
  _arguments \
 | 
						|
    '(-fs -threshold)-floyd[use Floyd-Steinberg error diffusion]' \
 | 
						|
    '(-floyd -threshold)-fs[use Floyd-Steinberg error diffusion]' \
 | 
						|
    '(-floy -fs)-threshold[use simple thresholding]' \
 | 
						|
    '-value[specify thresholding value]:threshold value' \
 | 
						|
    ':reduction factor' ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pbmtext)
 | 
						|
  _arguments \
 | 
						|
    '(-builtin)-font[specify font file]:font file:_files -g "*.(#i)pbm(-.)"' \
 | 
						|
    '(-font)-builtin[select builtin font]:builtin font:(bdf fixed)' \
 | 
						|
    '-space[add space between characters]:space (pixels)' \
 | 
						|
    '*:text'
 | 
						|
  ;;
 | 
						|
 | 
						|
pbmto10x)
 | 
						|
  _arguments '-h[use resolution 120 x 144]' ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pbmtobg|pbmtobbnbg)
 | 
						|
  _arguments ':raster operation' ':x position' ':y position'
 | 
						|
  ;;
 | 
						|
 | 
						|
pbmtoepsi)
 | 
						|
  _arguments '-bbonly[only create boundary box]' ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pbmtolj)
 | 
						|
  _arguments \
 | 
						|
    '-resolution[specify output device resolution]:resolution:(75 100 150 300 600)' \
 | 
						|
    '-float[suppress positioning information]' \
 | 
						|
    "-norest[don't write reset sequences]" \
 | 
						|
    '(-delta -compress)-packbits[enable use of TIFF packbits compression]' \
 | 
						|
    '(-packbits -compress)-delta[enable use of delta-between-rows compression]' \
 | 
						|
    '(-packbits -delta)-compress[enable both compression schemes]' \
 | 
						|
    ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pbmtoln03)
 | 
						|
  _arguments \
 | 
						|
    '-l[specify left margin]:left margin' \
 | 
						|
    '-r[specify right margin]:right margin' \
 | 
						|
    '-t[specify top margin]:top margin' \
 | 
						|
    '-b[specify bottom margin]:bottom margin' \
 | 
						|
    '-f[specify form length]:form length' ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pbmtolps)
 | 
						|
  _arguments '-dpi[specify output resolution]:resolution' ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pbmtomacp)
 | 
						|
  _arguments \
 | 
						|
    '-l[specify left offset]:left offset' \
 | 
						|
    '-r[specify right offset]:right offset' \
 | 
						|
    '-t[specify top offset]:top offset' \
 | 
						|
    '-b[specify bottom offset]:bottom offset' \
 | 
						|
    ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pbmtopgm)
 | 
						|
  _arguments ':width' ':height' ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pbmtopk)
 | 
						|
  _arguments \
 | 
						|
    '-s[set design size]:design size' \
 | 
						|
    '-C[set coding scheme]:coding scheme' \
 | 
						|
    '-F[set font family comment]:font family' \
 | 
						|
    '-f[specify file with options]:option file:_files' \
 | 
						|
    '*-c[specify next character number]:character number' \
 | 
						|
    '*-W[specify TFM width of next character]:width' \
 | 
						|
    '*-H[specify TFM height of next character]:height' \
 | 
						|
    '*-D[specify TFM depth of next character]:depth' \
 | 
						|
    '*-I[specify italic correction of next character]:italic correction' \
 | 
						|
    '*-h[specify horizontal escapement of next character]:horizontal escapement' \
 | 
						|
    '*-v[specify vertical escapement of next character]:vertical escapement' \
 | 
						|
    '*-x[specify x offset of next character]:x offset' \
 | 
						|
    '*-y[specify y offset of next character]:y offset' \
 | 
						|
    ':pk file:_files -g "*.(#i)pk(-.)"' \
 | 
						|
    ':tfm file:_files -g "*.(#i)tfm(-.)"' \
 | 
						|
    '*:file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pbmupc)
 | 
						|
  _arguments -s{1,2} ':product type' ':manufacturer code' ':product code'
 | 
						|
  ;;
 | 
						|
 | 
						|
pgmcrater)
 | 
						|
  _arguments \
 | 
						|
    '-number[specify number of craters]:number of craters' \
 | 
						|
    '-gamma[specify gamma correction factor]:gamma factor' \
 | 
						|
    '(-ysize)-height[specify picture height]:height' \
 | 
						|
    '(-height)-ysize[specify picture height]:height' \
 | 
						|
    '(-xsize)-width[specify picture width]:width' \
 | 
						|
    '(-width)-xsize[specify picture width]:width'
 | 
						|
  ;;
 | 
						|
 | 
						|
pgmkernel)
 | 
						|
  _arguments '-weight:weight' ':width' ':height'
 | 
						|
  ;;
 | 
						|
 | 
						|
pgmnoise)
 | 
						|
  _arguments ':width' ':height'
 | 
						|
  ;;
 | 
						|
 | 
						|
pgmnorm|ppmnorm)
 | 
						|
  _arguments \
 | 
						|
    '(-bvalue)-bpercent[specify percentage to map to black]:black percentage' \
 | 
						|
    '(-bpercent)-bvalue[specify pixel value to map to black]:black pixel value' \
 | 
						|
    '(-wvalue)-wpercent[specify percentage to map to white]:white percentage' \
 | 
						|
    '(-wpercent)-wvalue[specify pixel value to map to white]:white pixel value' \
 | 
						|
    ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pgmoil)
 | 
						|
  _arguments '-n[specify smear size]:smear size' ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pgmramp)
 | 
						|
  _arguments \
 | 
						|
    '(-tb -rectangle -ellipse)-lr[produce left to right ramp]' \
 | 
						|
    '(-lr -rectangle -ellipse)-tb[produce top to bottom ramp]' \
 | 
						|
    '(-lr -tb -ellipse)-rectangle[produce rectangular ramp]' \
 | 
						|
    '(-lr -tb -rectangle)-ellipse[produce elliptical ramp]' \
 | 
						|
    ':width' ':height'
 | 
						|
  ;;
 | 
						|
 | 
						|
pgmtexture)
 | 
						|
  _arguments '-d[specify distance]:distance' ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pgmtopbm)
 | 
						|
  _arguments \
 | 
						|
    '(-fs -threshold -hilbert -dither8 -d8 -cluster3 -c3 -cluster4 -c4 -cluster8 -c8 -clump)-floyd[use FLoyd-Steinberg error diffusion]' \
 | 
						|
    '(-floyd -threshold -hilbert -dither8 -d8 -cluster3 -c3 -cluster4 -c4 -cluster8 -c8 -clump)-fs[use FLoyd-Steinberg error diffusion]' \
 | 
						|
    '(-floyd -fs -hilbert -dither8 -d8 -cluster3 -c3 -cluster4 -c4 -cluster8 -c8 -clump)-threshold[use simple thresholding]' \
 | 
						|
    '(-floyd -fs -threshold -dither8 -d8 -cluster3 -c3 -cluster4 -c4 -cluster8 -c8 -value)-hilbert[use space filling curve halftoning (hilbert curve)]' \
 | 
						|
    '(-floyd -fs -threshold -hilbert -d8 -cluster3 -c3 -cluster4 -c4 -cluster8 -c8 -value -clump)-dither8[use Bayer'"'"'s ordered dither (16 x 16 matrix)]' \
 | 
						|
    '(-floyd -fs -threshold -hilbert -dither8 -cluster3 -c3 -cluster4 -c4 -cluster8 -c8 -value -clump)-d8[use Bayer'"'"'s ordered dither (16 x 16 matrix)]' \
 | 
						|
    '(-floyd -fs -threshold -hilbert -dither8 -d8 -c3 -cluster4 -c4 -cluster8 -c8 -value -clump)-cluster3[use 45 degree clustered dither]' \
 | 
						|
    '(-floyd -fs -threshold -hilbert -dither8 -d8 -cluster3 -cluster4 -c4 -cluster8 -c8 -value -clump)-c3[use 45 degree clustered dither]' \
 | 
						|
    '(-floyd -fs -threshold -hilbert -dither8 -d8 -cluster3 -c3 -c4 -cluster8 -c8 -value -clump)-cluster4[use 45 degree clustered dither]' \
 | 
						|
    '(-floyd -fs -threshold -hilbert -dither8 -d8 -cluster3 -c3 -cluster4 -cluster8 -c8 -value -clump)-c4[use 45 degree clustered dither]' \
 | 
						|
    '(-floyd -fs -threshold -hilbert -dither8 -d8 -cluster3 -c3 -cluster4 -c4 -c8 -value -clump)-cluster8[use 45 degree clustered dither]' \
 | 
						|
    '(-floyd -fs -threshold -hilbert -dither8 -d8 -cluster3 -c3 -cluster4 -c4 -cluster8 -value -clump)-c8[use 45 degree clustered dither]' \
 | 
						|
    '-value[specify thresholding value]:threshold value' \
 | 
						|
    '-clump[specify number of pixels per clump]:number of pixel' \
 | 
						|
    ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pgmtoppm)
 | 
						|
  if [[ CURRENT -eq 2 ]]; then
 | 
						|
    if compset -P '?*-'; then
 | 
						|
      _x_color
 | 
						|
      return
 | 
						|
    fi
 | 
						|
    _x_color && ret=0
 | 
						|
 | 
						|
    _wanted options expl option compadd - -map && ret=0
 | 
						|
 | 
						|
    return ret
 | 
						|
  elif [[ CURRENT -eq 3 && "$words[2]" = -map ]]; then
 | 
						|
    _description files expl 'map file'
 | 
						|
    _files "$expl[@]" -g '*.(#i)ppm(-.)'
 | 
						|
  else
 | 
						|
    _pbm
 | 
						|
  fi
 | 
						|
  ;;
 | 
						|
 | 
						|
pktopbm)
 | 
						|
  _arguments \
 | 
						|
    '*-x[set width of next bitmap]:width' \
 | 
						|
    '*-y[set height of next bitmap]:height' \
 | 
						|
    '*-c[set next character number]:character number' \
 | 
						|
    ':pk file:_files -g "*.(#i)pk(-.)"' \
 | 
						|
    '*:file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pngtopnm)
 | 
						|
  _arguments \
 | 
						|
    -{verbose,alpha,mix,time} \
 | 
						|
    '-background:color:_x_color' \
 | 
						|
    '-gamma:value' '-text:file:_files' \
 | 
						|
    ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pnmalias)
 | 
						|
  _arguments \
 | 
						|
    '-bgcolor[specify background color]:background color:_x_color' \
 | 
						|
    '-fgcolor[specify background color]:foreground color:_x_color' \
 | 
						|
    '(-bonly)-fonly[apply antialias only to foreground pixels]' \
 | 
						|
    '(-fonly)-bonly[apply antialias only to background pixels]' \
 | 
						|
    '(-balias)-falias[apply antialias to all pixels around foreground pixels]' \
 | 
						|
    '(-falias)-balias[apply antialias to all pixels around foreground pixels]' \
 | 
						|
    '-weight[set central aliasing weight]:central aliasing weight' \
 | 
						|
    ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pnmarith)
 | 
						|
  _arguments \
 | 
						|
    '(-)'-{add,subtract,multiply,difference,minimum,maximum} \
 | 
						|
    '*:file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pnmcat)
 | 
						|
  _arguments \
 | 
						|
    '(-black)-white[]' \
 | 
						|
    '(-white)-black[]' \
 | 
						|
    '(-lr -topbottom -tb -jleft -jright)-leftright[place pictures left to right]' \
 | 
						|
    '(-leftright -topbottom -tb -jleft -jright)-lr[place pictures left to right]' \
 | 
						|
    '(-tb -leftright -lr -jtop -jbottom)-topbottom[place pictures top to bottom]' \
 | 
						|
    '(-topbottom -leftright -lr -jtop -jbottom)-tb[place pictures top to bottom]' \
 | 
						|
    '(-topbottom -tb -jbottom -jleft -jright)-jtop[align pictures at top]' \
 | 
						|
    '(-topbottom -tb -jtop -jleft -jright)-jbottom[align pictures at bottom]' \
 | 
						|
    '(-leftright -lr -jright -jtop -jbottom)-jleft[align pictures at left side]' \
 | 
						|
    '(-leftright -lr -jleft -jtop -jbottom)-jright[align pictures at right side]' \
 | 
						|
    '*:file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pnmcomp)
 | 
						|
  _arguments \
 | 
						|
    '-invert[invert overlay pixel values]' \
 | 
						|
    '(-align)-xoff[specify overlay x offset]:x offset' \
 | 
						|
    '(-valign)-yoff[specify overlay y offset]:y offset' \
 | 
						|
    '(-xoff)-align=[specify horizontal alignment for overlay image]:alignment:(left center right)' \
 | 
						|
    '(-yoff)-valign=[specify vertical alignment for overlay image]:alignment:(top middle bottom)' \
 | 
						|
    '-alpha[specify alpha mask file]:alpha mask file:_files -g "*.(#i)pgm(-.)"' \
 | 
						|
    ':overlay file:_pbm' '*:file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pnmconvol)
 | 
						|
  _arguments ':convolution file:_pbm' ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pnmcrop)
 | 
						|
  _arguments \
 | 
						|
    '(-black)-white' \
 | 
						|
    '(-white)-black' \
 | 
						|
    -sides \
 | 
						|
    -{left,right,top,bottom} \
 | 
						|
    -verbose \
 | 
						|
    ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pnmcut)
 | 
						|
  _arguments \
 | 
						|
    '-left:left col' '-right:right col' '-top:top col' '-bottom:bottom col' \
 | 
						|
    '-width:width' '-height:height' -pad -verbose \
 | 
						|
    ':x position' ':y position' ':width' ':height' ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pnmdepth)
 | 
						|
  _arguments ':new maximum value' ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pnmenlarge)
 | 
						|
  _arguments ':enlargement factor' ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pnmflip)
 | 
						|
  _arguments \
 | 
						|
    \*-{leftright,lr,topbottom,tb,transpose,xy,rotate90,r90,ccw,rotate270,r270,cw,rotate180,r180} \
 | 
						|
    ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pnmgamma)
 | 
						|
  _arguments \
 | 
						|
    -ungamma -cieramp \
 | 
						|
    '1:gamma value or red gamma value' \
 | 
						|
    '2: :{ _message -e gamma-values "green gamma value";_pbm }' \
 | 
						|
    '3:blue gamma value' \
 | 
						|
    '4:file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pnmhisteq)
 | 
						|
  _arguments \
 | 
						|
    '-verbose[verbose mode]' \
 | 
						|
    '-gray[modify only gray pixels]' \
 | 
						|
    '-rmap[specify input luminosity map file]:luminosity map file:_files -g "*.(#i)pgm(-.)"' \
 | 
						|
    '-wmap[specify output luminosity map file]:luminosity map file:_files -g "*.(#i)pgm(-.)"' \
 | 
						|
    ':file:_pbm'
 | 
						|
  ;;
 | 
						|
pnmhistmap)
 | 
						|
  _arguments -{black,white,verbose} '-max:maximum value' ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pnmindex)
 | 
						|
  _arguments \
 | 
						|
    '-size[set size of index pictures]:image size' \
 | 
						|
    '-across[specify number of pictures per ros]:images per row' \
 | 
						|
    '-colors[specify maximum number of colors]:number of colors' \
 | 
						|
    '-black[use black padding]' \
 | 
						|
    '-title[specify a title to place at the top of the image]:title' \
 | 
						|
    '(-noquant)-quant[enable quantization]' \
 | 
						|
    '(-quant)-noquant[disable quantization]' \
 | 
						|
    '*:file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pnmmargin)
 | 
						|
  _arguments \
 | 
						|
    '(-black -colors)-white' \
 | 
						|
    '(-white -colors)-black' \
 | 
						|
    '(-white -black)-color:color:_x_color' \
 | 
						|
    ':border width' \
 | 
						|
    ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pnmnlfilt)
 | 
						|
  _arguments ':alpha value' ':radius' ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pnmpad)
 | 
						|
  _arguments \
 | 
						|
    '(-white)-black[add black border]' \
 | 
						|
    '(-black)-white[add white border]' \
 | 
						|
    '-l-[specify left border width]:left border width' \
 | 
						|
    '-r-[specify right border width]:right border width' \
 | 
						|
    '-t-[specify top border width]:top border width' \
 | 
						|
    '-b-[specify bottom border width]: :_guard "[0-9]#" "bottom border width"' \
 | 
						|
    ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pnmpaste)
 | 
						|
  _arguments \
 | 
						|
    '(-)'{-replace,-or,-and,-xor} \
 | 
						|
    ':"from" picture file:_pbm' \
 | 
						|
    :{x,y}' position' \
 | 
						|
    ':"into" picture file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pnmrotate)
 | 
						|
  _arguments '-noantialias' ':rotation angle' ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pnmscale)
 | 
						|
  local -a scale
 | 
						|
 | 
						|
  [[ "$words[2]" = -* ]] || scale=( ':scale factor' )
 | 
						|
 | 
						|
  _arguments \
 | 
						|
    '(-)-reduce:reduction factor' \
 | 
						|
    '(-reduce -xysize -pixels -width -xscale)-xsize:width' \
 | 
						|
    '(-reduce -xysize -pixels -xsize -xscale)-width:width' \
 | 
						|
    '(-reduce -xysize -pixels -height -yscale)-ysize:height' \
 | 
						|
    '(-reduce -xysize -pixels -ysize -yscale)-height:height' \
 | 
						|
    '(-reduce -xysize -pixels -width -xsize)-xscale:horizontal scale factor' \
 | 
						|
    '(-reduce -xysize -pixels -height -ysize)-yscale:vertical scale factor' \
 | 
						|
    '(-width -xsize -height -ysize -xscale -yscale -pixels)-xysize:width::height' \
 | 
						|
    '(-width -xsize -height -ysize -xscale -yscale -xysize)-pixels:total number of pixels' \
 | 
						|
    '-verbose' "$scale[@]" \
 | 
						|
    ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pnmshear)
 | 
						|
  _arguments '-noantialias' ':shearing angle' ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pnmtile)
 | 
						|
  _arguments ':width' ':height' ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pnmtoddif)
 | 
						|
  _arguments \
 | 
						|
    '-resolution:horizontal resolution::vertical resolution' \
 | 
						|
    ':file:_pbm' ':ddif file:_files -g "*.(#i)ddif(-.)"'
 | 
						|
  ;;
 | 
						|
 | 
						|
pnmtofits)
 | 
						|
  _arguments '-max:maximum value' '-min:minimum value' ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pnmtojpeg)
 | 
						|
  _arguments \
 | 
						|
    '--exif=:file:_files' \
 | 
						|
    '--quality=:quality' \
 | 
						|
    --{grayscale,greyscale,optimize,progressive,verbose,baseline} \
 | 
						|
    '--comment=:comment' \
 | 
						|
    '--dct=:dct method:(int fast float)' \
 | 
						|
    '--restart=:rows' \
 | 
						|
    '--smooth=:strength' \
 | 
						|
    '--maxmemory=:memory use limit (kB)' \
 | 
						|
    '--qtables=:file:_files' \
 | 
						|
    '--qslots=:table' \
 | 
						|
    '--sample=:sampling factor' \
 | 
						|
    '--scans:file:_files' \
 | 
						|
    ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pnmtopng)
 | 
						|
  _arguments \
 | 
						|
    -{verbose,downscale,interlace,hist,force} \
 | 
						|
    '-alpha:file:_files' '-gamma:value' \
 | 
						|
    '-transparent::color:_x_color' '-background:color:_x_color' \
 | 
						|
    '-chroma:wx::wy::rx::ry::gx::gy::bx::by' \
 | 
						|
    '-phys:x::y::unit' \
 | 
						|
    '-text:file:_files' '-ztxt:file:_files' \
 | 
						|
    '-time:date ([yy]yy-mm-dd)::time (hh:mm:ss)' \
 | 
						|
    '-filter:type:((0\:none 1\:sub 2\:up 3\:avg 4\:paeth))' \
 | 
						|
    '-compression:level:(0 1 2 3 4 5 6 7 8 9)' \
 | 
						|
    ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pnmtops)
 | 
						|
  _arguments \
 | 
						|
    '(-noturn)-turn' '(-turn)-noturn' \
 | 
						|
    '(-nocenter)-center '(-center)-nocenter \
 | 
						|
    '(-rle)-runlength' '(-runlength)-rle' \
 | 
						|
    '(-imagewidth -imageheight)-scale:scale factor' \
 | 
						|
    '-dpi:output resolution' \
 | 
						|
    '(-scale -equalpixels)-imagewidth:width on page (inches)' \
 | 
						|
    '(-scale -equalpixels)-imageheight:height on page (inches)' \
 | 
						|
    '-width:page width' '-height:page height' \
 | 
						|
    '(-imagewidth -imageheight)-equalpixels' \
 | 
						|
    ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pnmtorast)
 | 
						|
  _arguments '(-rle)-standard' '(-standard)-rle' ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pnmtosgi)
 | 
						|
  _arguments \
 | 
						|
    '(-rle)-verbatim' '(-verbatim)-rle' \
 | 
						|
    '-imagename:image name' \
 | 
						|
    ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pnmtotiff)
 | 
						|
  _arguments \
 | 
						|
    '(-packbits -lzw -g3 -g4 -2d -fill -predictor)-none' \
 | 
						|
    '(-none -lzw -g3 -g4 -2d -fill -predictor)-packbits' \
 | 
						|
    '(-none -packbits -g3 -g4 -2d -fill -predictor)-lzw' \
 | 
						|
    '(-none -packbits -lzw -g4 -predictor)-g3' \
 | 
						|
    '(-none -packbits -lzw -g3 -2d -fill -predictor)-g4' \
 | 
						|
    '-2d' \
 | 
						|
    '-fill' '-minisblack' \
 | 
						|
    '(-lsb2msb)-msb2lsb' \
 | 
						|
    '(-msb2lsb)-lsb2msb' \
 | 
						|
    '-predictor:LZW predictor:((1\:without\ differencing 2\:with\ differencing))' \
 | 
						|
    '-rowsperstrip:number of rows per strip' ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
pnmtoxwd)
 | 
						|
  _arguments \
 | 
						|
    '-pseudodepth:depth of PseudoColor dumps' '-directcolor' \
 | 
						|
    ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
ppm3d)
 | 
						|
  _arguments :{left,right}' picture file:_pbm' ':horizontal offset'
 | 
						|
  ;;
 | 
						|
 | 
						|
ppmbrighten)
 | 
						|
  _arguments \
 | 
						|
    '-n[normalize value]' \
 | 
						|
    '-s[specify saturation difference]:saturation difference' \
 | 
						|
    '-v[specify value difference]:value difference' \
 | 
						|
    ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
ppmchange)
 | 
						|
  local curcontext="$curcontext" state line
 | 
						|
 | 
						|
  _arguments -C \
 | 
						|
    "-closeness[specify how close a pixel's color should be]:closeness (percent)" \
 | 
						|
    '-remainder[specify replacement for colours not given explicit replacement]:color:_x_color' \
 | 
						|
    '*: :->args' && ret=0
 | 
						|
 | 
						|
  if [[ -n "$state" ]]; then
 | 
						|
    if (( CURRENT & 1 )); then
 | 
						|
      _wanted colors expl 'new color' _x_color && ret=0
 | 
						|
    else
 | 
						|
      _alternative \
 | 
						|
	'files:file:_pbm' \
 | 
						|
	'colors:old color:_x_color' && ret=0
 | 
						|
    fi
 | 
						|
  fi
 | 
						|
 | 
						|
  return ret
 | 
						|
  ;;
 | 
						|
 | 
						|
ppmdim)
 | 
						|
  _arguments ':diminishing factor' ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
ppmdist)
 | 
						|
  _arguments \
 | 
						|
    '(-frequency)-intensity[sort colors by grayscale intensity]' \
 | 
						|
    '(-intensity)-frequency[sort colors by frequency]' \
 | 
						|
    ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
ppmdither)
 | 
						|
  _arguments \
 | 
						|
    '-dim:matrix size' \
 | 
						|
    '-red:number of red shades' \
 | 
						|
    '-green:number of green shades' \
 | 
						|
    '-blue:number of blue shades' \
 | 
						|
    ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
ppmflash)
 | 
						|
  _arguments ':flash factor' ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
ppmforge)
 | 
						|
  _arguments \
 | 
						|
    -{clouds,night} \
 | 
						|
    '-dimension:fractal dimension' '-hour:hour angle' \
 | 
						|
    '(-tilt)-inclination:inclination angle' \
 | 
						|
    '(-inclination)-tilt:inclination angle' \
 | 
						|
    '-mesh:FFT mesh size' '-power:elevations power factor' \
 | 
						|
    '-glaciers:glacier elevation' '-ice:polar ice cap extent' \
 | 
						|
    '-saturation:star color saturation' \
 | 
						|
    '-seed:random number seed' \
 | 
						|
    '-stars:minimum star pixel percentage' \
 | 
						|
    '(-xsize)-width:width'   '(-width)-xsize:width' \
 | 
						|
    '(-ysize)-height:height' '(-height)-ysize:height'
 | 
						|
  ;;
 | 
						|
 | 
						|
ppmmake)
 | 
						|
  _arguments ':color:_x_color' ':width' ':height'
 | 
						|
  ;;
 | 
						|
 | 
						|
ppmmix)
 | 
						|
  _arguments ':fade factor' ':file:_pbm' ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
ppmntsc)
 | 
						|
  _arguments ':dim factor' ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
ppmpat)
 | 
						|
  _arguments \
 | 
						|
    '(-)'-{gingham{2,3},g{2,3},madras,tartan,poles,squig,camo,anticamo} \
 | 
						|
    ':width' ':height'
 | 
						|
  ;;
 | 
						|
 | 
						|
ppmquant)
 | 
						|
  local opt=yes
 | 
						|
 | 
						|
  if [[ "$words[2]" = -(fs|floyd) ]]; then
 | 
						|
    (( CURRENT-- ))
 | 
						|
    shift 1 words
 | 
						|
    opt=''
 | 
						|
  fi
 | 
						|
 | 
						|
  if [[ CURRENT -eq 2 ]]; then
 | 
						|
    if [[ -n "$opt" ]]; then
 | 
						|
      _wanted options expl option compadd - -map -fs -floyd && ret=0
 | 
						|
    else
 | 
						|
      _wanted options expl option compadd - -map && ret=0
 | 
						|
    fi
 | 
						|
    _message -e numbers 'number of colors'
 | 
						|
 | 
						|
    return ret
 | 
						|
  elif [[ CURRENT -eq 3 && "$words[2]" = -map ]]; then
 | 
						|
    _description files expl 'map file'
 | 
						|
    _files "$expl[@]" -g '*.(#i)ppm(-.)'
 | 
						|
  else
 | 
						|
    _pbm
 | 
						|
  fi
 | 
						|
  ;;
 | 
						|
 | 
						|
ppmquantall)
 | 
						|
  _arguments \
 | 
						|
    '-ext:extension' ': :_guard "[0-9]#" "number of colors"' \
 | 
						|
    '*:file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
ppmshift)
 | 
						|
  _arguments ':shift value' ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
ppmspread)
 | 
						|
  _arguments ':maximum spread amount' ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
ppmtoacad)
 | 
						|
  _arguments \
 | 
						|
    '(-poly)-dxb[write AutoCAD binary database import file]' \
 | 
						|
    '(-dxb)-poly[render pixels as filled polygons]' \
 | 
						|
    '-8[restrict colors to the 8 RGB shades]' \
 | 
						|
    '(-background)-white[use white background]' \
 | 
						|
    '(-white)-background:background color (0-255)' \
 | 
						|
    '-aspect:pixel aspect ratio' \
 | 
						|
    ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
ppmtobmp)
 | 
						|
  _arguments \
 | 
						|
    '(-windows)-os2' '(-os2)-windows' \
 | 
						|
    '-bpp[specify bits per pixel for BMP file]:bits per pixel:(1 4 8 24)' \
 | 
						|
    ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
ppmtogif)
 | 
						|
  _arguments \
 | 
						|
    '-interlace[produce interlaced GIF]' \
 | 
						|
    '-sort[produce GIF with sorted color map]' \
 | 
						|
    '-map[use colors in specified file]:map file:_files' \
 | 
						|
    '(-alpha)-transparent[specify transparent color]:color' \
 | 
						|
    '(-transparent)-alpha[specify PGM file containing alpha mask]:file:_pbm' \
 | 
						|
    '-comment[include a comment in the GIF file]:comment text' \
 | 
						|
    '-nolxw[skip LZW compression]' \
 | 
						|
    ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
ppmtoicr)
 | 
						|
  _arguments \
 | 
						|
    '-windowname:window name' '-expand:expansion factor' \
 | 
						|
    '-display:display screen' '-rle' ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
ppmtoilbm)
 | 
						|
  _arguments \
 | 
						|
    '(-mp -maxplanes)'{-mp,-maxplanes}':planes' \
 | 
						|
    '(-fp -fixplanes)'{-fp,-fixplanes}':planes' \
 | 
						|
    '(-hambits -hamplanes)'{-hambits,-hamplanes}':planes' \
 | 
						|
    -normal -hamif -24if -dcif -hamforce -24force -dcforce \
 | 
						|
    '(-dcbits -dcplanes)'{-dcbits,-dcplanes}':bits for red: :bits for green: :bits for blue' \
 | 
						|
    -ecs -aga -ham6 -ham8 -compress '-cmethod:method:(none byterun1)' \
 | 
						|
    '-map:ppm file:_pbm' -cmaponly -savemem \
 | 
						|
    ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
ppmtomap)
 | 
						|
  _arguments -s{ort,quare} ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
ppmtomitsu)
 | 
						|
  _arguments \
 | 
						|
    '-sharpness:sharpness:(1 2 3 4)' \
 | 
						|
    '-enlarge:enlargement factor:(1 2 3)' \
 | 
						|
    '-media:output media (default\: 1184x1350):((A\:1216x1350 A4\:1184x1452 AS\:1216x1650 A4S\:1184x1754))' \
 | 
						|
    '-copy:number of copies:(1 2 3 4 5 6 7 8 9)' \
 | 
						|
    -{dpi300,tiny} ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
ppmtopcx)
 | 
						|
  _arguments -{24bit,packed} ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
ppmtopj)
 | 
						|
  _arguments \
 | 
						|
    '-gamma:gamma value' '-xpos:x position' -{rle,center} \
 | 
						|
    '-ypos:y position' '-back:background brightness:(dark lite)' \
 | 
						|
    '-render:rendering algorithm:(none snap bw dither diffuse monodither monodiffuse clusterdither monoclusterdither)' \
 | 
						|
    ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
ppmtopjxl)
 | 
						|
  _arguments \
 | 
						|
    -{nopack,presentation,dark,diffuse,cluster,dither} \
 | 
						|
    '-gamma:gamma value' \
 | 
						|
    '-xshift:x shift' '-yshift:y shift' \
 | 
						|
    '(-width -xscale)-xscale:width' \
 | 
						|
    '(-xsize -xscale)-width:width' \
 | 
						|
    '(-xsize -width)-xscale:horizontal scale factor' \
 | 
						|
    '(-height -yscale)-ysize:height' \
 | 
						|
    '(-ysize -yscale)-height:height' \
 | 
						|
    '(-ysize -height)-yscale:vertical scale factor' \
 | 
						|
    ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
ppmtosixel)
 | 
						|
  _arguments -{raw,margin} ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
ppmtotga)
 | 
						|
  _arguments -{mono,cmap,rgb,norle} ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
ppmtouil)
 | 
						|
  _arguments '-name:name prefix' ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
ppmtorle)
 | 
						|
  _arguments \
 | 
						|
    '-name=:name prefix' \
 | 
						|
    '-rgb=:X11 rgb file:_files' \
 | 
						|
    '-alphamask=:pgm file:_pbm' \
 | 
						|
    ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
ppmtoyuvsplit)
 | 
						|
  _arguments ':base name' ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
psidtopgm)
 | 
						|
  _arguments \
 | 
						|
    ':width' ':height' ':bits per sample' \
 | 
						|
    ':postscript file:_files -g "*.(#i)(ps|eps)(-.)"'
 | 
						|
  ;;
 | 
						|
pstopnm)
 | 
						|
  _arguments \
 | 
						|
    '(-portrait)-landscape' \
 | 
						|
    '(-landscape)-portrait' \
 | 
						|
    '(-pgm -ppm)-pbm' \
 | 
						|
    '(-pbm -ppm)-pgm' \
 | 
						|
    '(-pbm -pgm)-ppm' \
 | 
						|
    -{forceplain,help,nocrop,verbose} \
 | 
						|
    '-llx:loxer left x position' '-lly:lower left y position' \
 | 
						|
    '-urx:upper right x position' '-ury:upper right y position' \
 | 
						|
    '-xborder:x border fraction' '-yborder:y border fraction' \
 | 
						|
    '-xmax:maximum width' '-ymax:maximum height' \
 | 
						|
    '-xsize:width' '-ysize:height' \
 | 
						|
    ':postscript file:_files -g "*.(#i)(ps|eps)(-.)"'
 | 
						|
  ;;
 | 
						|
 | 
						|
rawtopgm)
 | 
						|
  _arguments \
 | 
						|
    '-maxval:value' \
 | 
						|
    '-bpp:bytes:(1 2)' \
 | 
						|
    -littleendian \
 | 
						|
    '(-bt -bottomfirst -rowskip)-'{bt,bottomfirst} \
 | 
						|
    '-headerskip:header bytes to skip' \
 | 
						|
    '(-bt -bottomfirst)-rowskip:row padding to skip' \
 | 
						|
    ': :_guard "[0-9]#" width' ':height' ':grayscale bytes'
 | 
						|
  ;;
 | 
						|
 | 
						|
rawtoppm)
 | 
						|
  _arguments \
 | 
						|
    '-headerskip:header bytes to skip' \
 | 
						|
    '-rowskip:row padding to skip' \
 | 
						|
    '(-rgb -rbg -grb -gbr -brg -bgr)'-{rgb,rbg,grb,gbr,brg,bgr} \
 | 
						|
    '(-interrow)-interpixel' \
 | 
						|
    '(-interpixel)-interrow' \
 | 
						|
    ': :_guard "[0-9]#" width' ':height' ':grayscale bytes'
 | 
						|
  ;;
 | 
						|
 | 
						|
rgb3toppm)
 | 
						|
  if [[ CURRENT -eq 2 ]]; then
 | 
						|
    expl='red picture file'
 | 
						|
  elif [[ CURRENT -eq 3 ]]; then
 | 
						|
    expl='green picture file'
 | 
						|
  elif [[ CURRENT -eq 4 ]]; then
 | 
						|
    expl='blue picture file'
 | 
						|
  fi
 | 
						|
 | 
						|
  if [[ -n "$expl" ]]; then
 | 
						|
    _description files expl "$expl"
 | 
						|
    _files "$expl" -g '*.(#i)pgm(-.)'
 | 
						|
  fi
 | 
						|
  ;;
 | 
						|
 | 
						|
rletopnm)
 | 
						|
  _arguments \
 | 
						|
    '--alphaout=:alpha file:_pbm' \
 | 
						|
    -{h,-headerdump,v,-verbose,p,-plain} \
 | 
						|
    ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
sgitopnm)
 | 
						|
  _arguments '-verbose' '-channel:channel' ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
sldtoppm)
 | 
						|
  _arguments \
 | 
						|
    -{adjust,dir,info,verbose} \
 | 
						|
    '(-width -xsize)'-{width,xsize}:width \
 | 
						|
    '(-height -ysize)'-{height,ysize}:height \
 | 
						|
    '-scale:scale factor' \
 | 
						|
    '(-lib -Lib)'-{l,L}'ib:slide name' \
 | 
						|
    ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
yuvsplittoppm)
 | 
						|
  _arguments ':base name' ':width' ':height' '-ccir601'
 | 
						|
  ;;
 | 
						|
 | 
						|
yuvtoppm)
 | 
						|
  _arguments ':width' ':height' ':image bytes'
 | 
						|
  ;;
 | 
						|
 | 
						|
zeisstopnm)
 | 
						|
  _arguments '(-pgm -ppm)'-p{g,p}m ':file:_pbm'
 | 
						|
  ;;
 | 
						|
 | 
						|
*)
 | 
						|
  _wanted files expl 'picture file' _path_files -g "$pat" ||
 | 
						|
      _files "$expl[@]" -g '*.(#i)p[bgp]m(-.)'
 | 
						|
esac
 |