summaryrefslogtreecommitdiffstats
path: root/completions/alias
diff options
context:
space:
mode:
Diffstat (limited to 'completions/alias')
-rw-r--r--completions/alias22
1 files changed, 15 insertions, 7 deletions
diff --git a/completions/alias b/completions/alias
index 92211d8..9a0f3d2 100644
--- a/completions/alias
+++ b/completions/alias
@@ -1,20 +1,28 @@
# bash alias completion -*- shell-script -*-
-_alias()
+_comp_cmd_alias()
{
- local cur prev words cword
- _init_completion -n = || return
+ local cur prev words cword comp_args
+ _comp_initialize -n = -- "$@" || return
- case ${words[@]} in
+ case "${words[*]}" in
+ *" -p "*)
+ return
+ ;;
*[^=])
- COMPREPLY=($(compgen -A alias -- "$cur"))
+ _comp_compgen -- -A alias
;;
*=)
- COMPREPLY=("$(alias ${cur%=} 2>/dev/null | command sed \
+ COMPREPLY=("$(alias "${cur%=}" 2>/dev/null | command sed \
-e 's|^alias '"$cur"'\(.*\)$|\1|')")
;;
esac
+
+ if [[ $cur == -* ]]; then
+ _comp_compgen_usage -c help -s "$1"
+ ((${#COMPREPLY[*]} != 1)) || compopt +o nospace
+ fi
} &&
- complete -F _alias -o nospace alias
+ complete -F _comp_cmd_alias -o nospace alias
# ex: filetype=sh