diff options
Diffstat (limited to 'completions/lzma')
-rw-r--r-- | completions/lzma | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/completions/lzma b/completions/lzma new file mode 100644 index 0000000..34fba89 --- /dev/null +++ b/completions/lzma @@ -0,0 +1,34 @@ +# lzma(1) completion -*- shell-script -*- +# by Per Øyvind Karlsen <peroyvind@mandriva.org> + +_lzma() +{ + local cur prev words cword split + _init_completion -s || return + + $split && return + + if [[ $cur == -* ]]; then + COMPREPLY=($(compgen -W '$(_parse_help "$1") -{1..9}' -- "$cur")) + [[ ${COMPREPLY-} == *= ]] && compopt -o nospace + return + fi + + local IFS=$'\n' xspec="*.@(lzma|tlz)" + + if [[ $prev == --* ]]; then + [[ $prev == --@(decompress|list|test) ]] && xspec="!"$xspec + [[ $prev == --compress ]] && xspec= + elif [[ $prev == -* ]]; then + [[ $prev == -*[dt]* ]] && xspec="!"$xspec + [[ $prev == -*z* ]] && xspec= + fi + + _tilde "$cur" || return + + compopt -o filenames + COMPREPLY=($(compgen -f -X "$xspec" -- "$cur") $(compgen -d -- "$cur")) +} && + complete -F _lzma lzma + +# ex: filetype=sh |