blob: 5a238d8071a9929dc90735e1d294d78662e00f11 (
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
#compdef lha
if (( CURRENT == 2 )); then
compset -P -
local lhacmds
lhacmds=(
'( x l v u d m c p t)a[Add \(Or replace\) to archive]'
'(a l v u d m c p t)x[EXtract from archive]'
'(a x v u d m c p t)l[List]'
'(a x l u d m c p t)v[Verbose List]'
'(a x l v d m c p t)u[Update newer files to archive]'
'(a x l v u m c p t)d[Delete from archive]'
'(a x l v u d c p t)m[Move to archive]'
'(a x l v u d m p t)c[re-Construct new archive]'
'(a x l v u d m c t)p[Print to STDOUT from archive]'
'(a x l v u d m c p )t[Test file CRC in archive]'
)
if [ "${words[2]#-}" != "" ]; then
lhacmds=($lhacmds
'v[verbose]'
'q[quiet]'
'n[not execute]'
'f[force\(over write at extract\)]'
't[FILES are TEXT file]'
'e[TEXT code convert from/to EUC]'
'g[Generic format \(for compatibility\)]'
)
case ${words[2]#-} in
a*|u*)
lhacmds=($lhacmds
'd[delete FILES after]'
'z[files not compress]'
'( 1 2)0[header level 0]'
'(0 2)1[header level 1]'
'(0 1 )2[header level 2]'
)
;;
c*)
lhacmds=($lhacmds 'd[delete FILES after]')
;;
x*)
lhacmds=($lhacmds 'i[ignore directory path]')
;;
esac
fi
_values -s '' 'lha command' \
$lhacmds \
&& return 0
elif (( CURRENT == 3 )); then
_arguments -C \
'*:LHA file:_files -g \*.lzh' && return 0
else
case ${words[2]#-} in
l*|x*|d*)
if [ -f "$words[3]" ]; then
_lzh_cache_list=`$words[1] lq $words[3] | awk '{print $8}'`
_lzh_cache_list=("${(@f)${_lzh_cache_list}}")
_wanted files expl 'file from archive' _multi_parts / _lzh_cache_list
return 0
else
_message -r "Archive file is not found : ${words[3]}"
return 1
fi
;;
*)
_arguments -C \
'*:file:_files' && return 0
esac
fi
return 0
|