Current File : //usr/share/zsh/5.0.2/functions/_lha |
#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