about summary refs log tree commit diff
path: root/Completion/Unix/Command/_cat
blob: 57b197038cb4813f86e41b846738b48ab869cea8 (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
#compdef cat

local -a args

if _pick_variant gnu=GNU unix --version; then
  args=(
    '(-A --show-all)'{-A,--show-all}'[equivalent to -vET]'
    '(-b --number-nonblank -n --number)'{-b,--number-nonblank}'[number nonempty output lines, overrides -n]'
    '-e[equivalent to -vE]'
    '(-E --show-ends)'{-E,--show-ends}'[display $ at end of each line]'
    '(-n --number)'{-n,--number}'[number all output lines]'
    '(-s --squeeze-blank)'{-s,--squeeze-blank}'[suppress repeated empty output lines]'
    '-t[equivalent to -vT]'
    '(-T --show-tabs)'{-T,--show-tabs}'[display TAB characters as ^I]'
    '-u[ignored]'
    '(-v --show-nonprinting)'{-v,--show-nonprinting}'[use ^ and M- notation, except for LFD and TAB]'
    '(- : *)--help[display help and exit]'
    '(- : *)--version[output version information and exit]'
    '*:files:_files'
  )

elif [[ "$OSTYPE" == (freebsd|dragonfly|darwin)* ]]; then
  args=(
    '(-n)-b[number non-blank output lines]'
    '(-v)-e[display $ at the end of each line (implies -v)]'
    '-n[number all output lines]'
    '-s[squeeze multiple blank lines into one]'
    '(-v)-t[display tab as ^I (implies -v)]'
    '-u[do not buffer output]'
    '-v[display non-printing chars as ^X or M-a]'
    '(-)*:files:_files'
  )
  [[ $OSTYPE = freebsd* ]] && args+=(
    '-l[set a lock on the stdout file descriptor]'
  )

else
  # POSIX reqires '-u', and most OSes may support '-n'
  args=(
    '-n[number all output lines]'
    '-u[do not buffer output]'
    '*:files:_files'
  )
fi

_arguments -s -S : $args