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