mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-10-30 17:50:58 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			60 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| #compdef fmt gfmt
 | |
| 
 | |
| local variant
 | |
| local -a args
 | |
| local copt="[preserve indentation of first two lines]"
 | |
| local wopt="[specify maximum line width]:width [75]"
 | |
| local sopt="[don't join short lines\: split only]"
 | |
| 
 | |
| args=( -A "-*" "(1 2)-w+$wopt" '*:file:_files' )
 | |
| _pick_variant -r variant gnu=GNU $OSTYPE --version
 | |
| case $variant in
 | |
|   gnu)
 | |
|     args=(
 | |
|       '(-c --crown-margin)'{-c,--crown-margin}$copt
 | |
|       '(-w --width)'{-w+,--width=}$wopt
 | |
|       '(-p --prefix)'{-p+,--prefix=}'[only reformat lines with specified prefix]:prefix'
 | |
|       '(-s --split-only)'{-s,--split-only}$sopt
 | |
|       '(-t --tagged-paragraph)'{-t,--tagged-paragraph}'[indentation of first line different from second]'
 | |
|       '(-u --uniform-spacing)'{-u,--uniform-spacing}'[use one space between words, two after sentences]'
 | |
|       '(-g --goal)'{-g,--goal=}'[specify goal width]:goal width [93% of width]'
 | |
|       '(- *)--help[display help information]'
 | |
|       '(- *)--version[display version information]'
 | |
|       '*:file:_files'
 | |
|     )
 | |
|   ;;
 | |
|   solaris*)
 | |
|     args=(
 | |
|       "-c$copt"
 | |
|       "-s$sopt"
 | |
|     )
 | |
|   ;;
 | |
|   netbsd*)
 | |
|     args+=(
 | |
|       '-C[center the text]'
 | |
|       '(1 2)-g+[specify goal width]:goal width'
 | |
|       '(1 2)-m+[specify maximum width]:maximum width'
 | |
|       '-r[format all lines]'
 | |
|     )
 | |
|   ;|
 | |
|   darwin*|dragonfly*|freebsd*|openbsd*)
 | |
|     args+=(
 | |
|       '-c[center the text line by line]'
 | |
|       '-m[sensible formatting of mail header lines]'
 | |
|       '-n[format lines beginning with a . (dot) character]'
 | |
|       "-p[change in indentation doesn't start new paragraph]"
 | |
|       '-s[collapse whitespace inside lines]'
 | |
|       '-d+[specify sentence-ending characters]:sentence ends [.?!]'
 | |
|       '-l+[replace initial spaces with tabs]:tab width [8]'
 | |
|       '-t+[specify tab width of input files]:tab width [8]'
 | |
|     )
 | |
|   ;& # fall-through
 | |
|   netbsd*)
 | |
|     args+=( ':: :_guard "[0-9]#" goal width' )
 | |
|     (( ${(M)#words[1,CURRENT-1]:#[0-9]##} )) && args+=(
 | |
|       ':: :_guard "[0-9]#" maximum width'
 | |
|     )
 | |
|   ;;
 | |
| esac
 | |
| 
 | |
| _arguments -s -S $args
 |