# postcat(1) completion -*- shell-script -*- proc _postcat { local cur prev words cword _init_completion || return match $prev { with -c _filedir -d return 0 } if [[ $cur == -* ]] { setglobal COMPREPLY = ''( $( compgen -W '$( _parse_usage "$1" )' -- "$cur" ) ) return 0 } local idx qfile=0 for idx in [$(words[@])] { [[ "$idx" == -q ]] && setglobal qfile = '1' && break } if [[ $qfile -eq 1 ]] { local len=$(#cur) pval setglobal idx = '0' for pval in [$[ mailq !2 >/dev/null | \ sed -e '1d; $d; /^[^0-9A-Z]/d; /^$/d; s/[* !].*$//]] { if [[ "$cur" == "${pval:0:$len}" ]] { compat array-assign COMPREPLY '$idx' $pval setglobal idx = $shExpr('$idx+1') } } return 0 } else { _filedir return 0 } } && complete -F _postcat postcat # ex: ts=4 sw=4 et filetype=sh