summaryrefslogtreecommitdiff
path: root/completions/wtf
diff options
context:
space:
mode:
Diffstat (limited to 'completions/wtf')
-rw-r--r--completions/wtf25
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