Ville Skyttä c875723bef Include trailing equals sign in options that take arguments that way.
This way it's clearer to users that an argument is expected.  It's
likely that this commit does not catch all such cases, but it should
do it for most of the affected commands I have installed.
2011-05-02 11:45:55 +03:00

94 lines
2.2 KiB
Bash

# xz(1) completion
have xz || have pxz &&
_xz()
{
local cur prev words cword split
_init_completion -s || return
if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '$( _parse_help "$1" --long-help ) {-1..-9}' \
-- "$cur" ) )
[[ $COMPREPLY == *= ]] && compopt -o nospace
return 0
fi
local xspec="*.@(xz|lzma|txz|tlz)"
case $prev in
--decompress|--list|--test|-!(-*)[dlt]*)
xspec="!"$xspec
;;
--files|--files0)
_filedir
return 0
;;
-C|--check)
COMPREPLY=( $( compgen -W 'crc32 crc64 sha256 none' -- "$cur" ) )
return 0
;;
-F|--format)
COMPREPLY=( $( compgen -W 'auto xz lzma raw' -- "$cur" ) )
return 0
;;
-M|--memlimit|--memlimit-compress|--memlimit-decompress|--memory|\
-S|--suffix|--delta|--lzma1|--lzma2)
# argument required but no completions available
return 0
;;
-h|--help|-H|--long-help|-V|--version|--info-memory)
# all other arguments are noop with these
return 0
;;
esac
$split && return 0
_expand || return 0
local IFS=$'\n'
compopt -o filenames
COMPREPLY=( $( compgen -f -X "$xspec" -- "$cur" ) \
$( compgen -d -- "$cur" ) )
} &&
complete -F _xz xz pxz
# xzdec(1) completion
#
have xzdec &&
_xzdec()
{
local cur prev words cword split
_init_completion -s || return
if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) )
[[ $COMPREPLY == *= ]] && compopt -o nospace
return 0
fi
case $prev in
-M|--memory)
# argument required but no completions available
return 0
;;
-h|--help|-V|--version)
# all other arguments are noop with these
return 0
;;
esac
$split && return 0
_filedir xz # no lzma support here as of xz 4.999.9beta
} &&
complete -F _xzdec xzdec
# Local variables:
# mode: shell-script
# sh-basic-offset: 4
# sh-indent-comment: t
# indent-tabs-mode: nil
# End:
# ex: ts=4 sw=4 et filetype=sh