blob: 87c7005b90035a01d5aad9fb8c2cf3eb8b6f32b9 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
#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 unix --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
|