diff options
Diffstat (limited to 'completions/wtf')
-rw-r--r-- | completions/wtf | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/completions/wtf b/completions/wtf index cc8352f4..26a0d4b8 100644 --- a/completions/wtf +++ b/completions/wtf @@ -3,11 +3,15 @@ _wtf() { - local cur prev words cword + local cur prev words cword addf _init_completion || return - [[ $prev == -f ]] && _filedir && return 0 - [[ $cur == -* ]] && COMPREPLY=( -f ) && return 0 + [[ $prev == -f ]] && _filedir && return + [[ ${words[@]} == *\ -f* ]] && addf= || addf=-f + if [[ $cur == -* ]]; then + COMPREPLY=( $addf ) + return + fi local db @@ -18,10 +22,19 @@ _wtf() fi shift done - [[ -z $db ]] && db=${ACRONYMDB:-/usr/share/misc/acronyms*} - COMPREPLY=( $( compgen -W "$( cut -f 1 -s $db ) -f" -- "${cur^^}" ) ) + if [[ -z "$db" ]]; then + local f + for f in "$ACRONYMDB" /usr/share/misc/acronyms \ + /usr/share/games/bsdgames/acronyms; do + [[ -f "$f" ]] && db="$f" && break + done + [[ -z "$db" ]] && return + fi + + COMPREPLY=( $( compgen -W "$( cut -f 1 -s $db* 2>/dev/null ) $addf" \ + -- "${cur^^}" ) ) } && complete -F _wtf wtf -# ex: ts=4 sw=4 et filetype=sh +# ex: filetype=sh |