mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-07-10 16:31:27 +02: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
|