# iconv(1) completion -*- shell-script -*- _iconv_charsets() { COMPREPLY+=($(compgen -X ... -W '$(${1:-iconv} -l | \ command sed -e "s@/*\$@@" -e "s/[,()]//g")' -- "$cur")) } _iconv() { local cur prev words cword split _init_completion -s || return case $prev in --help | --usage | --version | --unicode-subst | --byte-subst | \ --widechar-subst | -!(-*)[?V]) return ;; --from-code | --to-code | -!(-*)[ft]) _iconv_charsets $1 return ;; --output | -!(-*)o) _filedir return ;; esac $split && return if [[ $cur == -* ]]; then COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur")) [[ ${COMPREPLY-} == *= ]] && compopt -o nospace fi } && complete -F _iconv -o default iconv # ex: filetype=sh