mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-10-31 18:10:56 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			774 lines
		
	
	
	
		
			22 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			774 lines
		
	
	
	
		
			22 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 [[ $# -ne 0 || $+_in_pbm -ne 0 ]]; 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 \
 | |
|     '-verbose[verbose mode]' \
 | |
|     '-comments[only print comment fields]' \
 | |
|     '-image[specify image number]:image number:' \
 | |
|     ':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)' \
 | |
|     '*: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 \
 | |
|     '-float[suppress positioning information]' \
 | |
|     '-norest[don'"'"'t write reset sequences]' \
 | |
|     '-resolution[specify output device resolution]:resolution:(75 100 150 300)' \
 | |
|     ':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)
 | |
|   # This could be improved...
 | |
|   
 | |
|   _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'
 | |
|   ;;
 | |
| 
 | |
| 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]' \
 | |
|     '-xoff[specify overlay x offset]:x offset:' \
 | |
|     '-yoff[specify overlay y offset]:y offset:' \
 | |
|     '-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' \
 | |
|     -{left,right,top,bottom} \
 | |
|     ':file: _pbm'
 | |
|   ;;
 | |
| 
 | |
| pnmcut)
 | |
|   _arguments ':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} \
 | |
|              ':file: _pbm'
 | |
|   ;;
 | |
| 
 | |
| pnmgamma)
 | |
|   if [[ CURRENT -eq 2 ]]; then
 | |
|     _message -e gamma-values 'gamma value or red gamma value'
 | |
|   elif [[ CURRENT -eq 3 ]]; then
 | |
|     _pbm && ret=0
 | |
|     _message -e gamma-values 'green gamma value'
 | |
|   elif [[ CURRENT -eq 4 ]]; then
 | |
|     _message -e gamma-values 'blue gamma value'
 | |
|   elif [[ CURRENT -eq 5 ]]; then
 | |
|     _pbm && ret=0
 | |
|   fi
 | |
|   
 | |
|   return ret
 | |
|   ;;
 | |
| 
 | |
| 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]' \
 | |
|     '*: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 \
 | |
|     '(-or -and -xor)-replace' \
 | |
|     '(-replace -and -xor)-or' \
 | |
|     '(-replace -or -xor)-and' \
 | |
|     '(-replace -or -and)-xor' \
 | |
|      ':"from" picture file:_pbm' \
 | |
|     :{x,y}' position:' \
 | |
|     ':"into" picture file:_pbm'
 | |
|   ;;
 | |
| 
 | |
| pnmrotate)
 | |
|   _arguments '-noantialias' ':rotation angle:' ':file: _pbm'
 | |
|   ;;
 | |
| 
 | |
| pnmscale)
 | |
|   local scale
 | |
|   
 | |
|   if [[ "$words[2]" = -* ]]; then
 | |
|     scale=()
 | |
|   else
 | |
|     scale=( ':scale factor:' )
 | |
|   fi
 | |
|   
 | |
|   _arguments \
 | |
|     '(-width)-xsize:width:' \
 | |
|     '(-xsize)-width:width:' \
 | |
|     '(-height)-ysize:height:' \
 | |
|     '(-ysize)-height:height:' \
 | |
|     '-xscale:horizontal scale factor:' \
 | |
|     '-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:' \
 | |
|     "$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'
 | |
|   ;;
 | |
| 
 | |
| pnmtops)
 | |
|   _arguments \
 | |
|     '(-noturn)-turn' '(-turn)-noturn' \
 | |
|     '(-nocenter)-center '(-center)-nocenter \
 | |
|     '(-rle)-runlength' '(-runlength)-rle' \
 | |
|     '-scale:scale factor:' \
 | |
|     '-dpi:output resolution:' \
 | |
|     '-width:page width:' '-height:page height' ':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' \
 | |
|     '(-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)
 | |
|   _pbm && ret=0
 | |
|   
 | |
|   if (( CURRENT & 1 )); then
 | |
|     _description colors expl 'new color'
 | |
|   else
 | |
|     _description colors expl 'old color'
 | |
|   fi
 | |
|   
 | |
|   _x_color "$expl[@]" && ret=0
 | |
|   
 | |
|   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 '(gingham2 -gingham3 -g2 -g3 -madras -tartan -poles -squig -camo -anticamo)'-{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 ':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' ':file: _pbm'
 | |
|   ;;
 | |
| 
 | |
| ppmtogif)
 | |
|   _arguments '-interlace' ':file: _pbm'
 | |
|   ;;
 | |
| 
 | |
| ppmtoicr)
 | |
|   _arguments '-windowname:window name:' '-expand:expansion factor:' \
 | |
|              '-display:display screen:' '-rle' ':file: _pbm'
 | |
|   ;;
 | |
| 
 | |
| ppmtoilbm)
 | |
|   _arguments '-hamif' ':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'
 | |
|   ;;
 | |
| 
 | |
| 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|ppmtoxpm)
 | |
|   _arguments '-name:name prefix:' ':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 '-headerskip:header bytes to skip:' \
 | |
|              '-rowskip:row padding to skip:' \
 | |
|              ':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' \
 | |
|     ':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
 | |
|   ;;
 | |
| 
 | |
| sgitopnm)
 | |
|   _arguments '-verbose' ':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
 |