# interdiff(1) completion -*- shell-script -*- proc _interdiff { var cur = '', prev = '', words = '', cword = '', split = '' _init_completion -s || return match $prev { with -U|--unified|-p|--strip-match|-d|--drop-context return } $split && return if [[ $cur == -* ]] { setglobal COMPREPLY = '( '$( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) [[ $COMPREPLY == *= ]] && compopt -o nospace return } var exts = ''@(?(d)patch|dif?(f))',' word = '' for word in [$(words[@])] { if [[ $word == -@(z|-decompress) ]] { set exts = ''?(.@(gz|bz2))'' break } } _filedir $exts } && complete -F _interdiff interdiff # ex: ts=4 sw=4 et filetype=sh