diff --git a/contrib/ssh b/contrib/ssh index 68586a44..5296ad62 100644 --- a/contrib/ssh +++ b/contrib/ssh @@ -96,7 +96,7 @@ _ssh() return 0 } -shopt -u hostcomplete && complete -F _ssh ssh slogin sftp xhost autossh +shopt -u hostcomplete && complete -F _ssh ssh slogin sftp autossh # scp(1) completion # diff --git a/contrib/xhost b/contrib/xhost new file mode 100644 index 00000000..7ed3c797 --- /dev/null +++ b/contrib/xhost @@ -0,0 +1,34 @@ +# -*- mode: shell-script; sh-basic-offset: 8; indent-tabs-mode: t -*- +# ex: ts=8 sw=8 noet filetype=sh +# +# xhost(1) completion +# +have xhost && +_xhost () +{ + local cur i + cur=`_get_cword` + + case "$cur" in + +*) + cur=${cur:1} + _known_hosts -h "$cur" + for (( i=0; i < ${#COMPREPLY[@]}; i++ )); do + COMPREPLY[i]=+${COMPREPLY[i]} + done + ;; + -*) + cur=${cur:1} + _known_hosts -h "$cur" + for (( i=0; i < ${#COMPREPLY[@]}; i++ )); do + COMPREPLY[i]=-${COMPREPLY[i]} + done + ;; + *) + _known_hosts -h "$cur" + ;; + esac + + return 0 +} +complete -F _xhost xhost