#compdef rar unrar _rar(){ case $service in rar) _arguments -s \ '*::rar command:_rar_command' ;; unrar) _arguments -s \ '*::unrar command:_unrar_command' ;; esac } _compression_level() { compression_level= _tags compression_level && { compadd "$@" -k compression_level || compadd "$@" ${(kv)=compression_level} } } _dico_size() { dico_size=(64 128 256 512 1024 2048 4096 a b c d e f g) _tags dico_size && { compadd "$@" -k dico_size || compadd "$@" ${(kv)=dico_size} } } _unrar_command () { cmd=(e l lt p t v vt x) if (( CURRENT == 1 ));then _tags cmd && { compadd "$@" -k cmd || compadd "$@" ${(kv)=cmd} } else _arguments -C \ '-ad[Append archive name to destination path]'\ '-ap[Set path inside archive]'\ '-av\-[Disable authenticity verification check]'\ '-c\-[Disable comments show]'\ '-cfg\-[Disable read configuration]'\ '-cl\-[Convert names to lower case]'\ '-cu[Convert names to upper case]'\ '-dh[Open shared files]'\ '-ep[Exclude paths from name]'\ '-f[Freshen files]'\ '-idp[Disable percentage display]'\ '-ierr[Send all messages to stderr]'\ '-inul[Disable all messages]'\ '-kb[Keep broken extracted files]'\ '-o\+[Overwrite existing files]'\ '-o\-[Do not overwrite existing files]'\ '-ow[Save or restore file owner and group]'\ '-p\-[Do not query password]'\ '-r[Recurse subdirectorie]'\ '-ta[Process files modified after in YYYYMMDDHHMMSS format]'\ '-tb[Process files modified before in YYYYMMDDHHMMSS format]'\ '-tn[Process files newer than