diff options
Diffstat (limited to 'completions/rdesktop')
-rw-r--r-- | completions/rdesktop | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/completions/rdesktop b/completions/rdesktop index 7acf47a5..48a91750 100644 --- a/completions/rdesktop +++ b/completions/rdesktop @@ -1,22 +1,17 @@ -# bash completion for rdesktop +# bash completion for rdesktop -*- shell-script -*- -have rdesktop && _rdesktop() { - local cur prev - - COMPREPLY=() - _get_comp_words_by_ref cur prev + local cur prev words cword + _init_completion -n : || return case $prev in -k) COMPREPLY=( $( command ls \ /usr/share/rdesktop/keymaps 2>/dev/null | \ command grep -E -v '(common|modifiers)' ) ) - COMPREPLY=( ${COMPREPLY[@]:-} $( command ls \ - $HOME/.rdesktop/keymaps 2>/dev/null ) ) - COMPREPLY=( ${COMPREPLY[@]:-} $( command ls \ - ./keymaps 2>/dev/null ) ) + COMPREPLY+=( $( command ls $HOME/.rdesktop/keymaps 2>/dev/null ) ) + COMPREPLY+=( $( command ls ./keymaps 2>/dev/null ) ) COMPREPLY=( $( compgen -W '${COMPREPLY[@]}' -- "$cur" ) ) return 0 ;; @@ -25,22 +20,33 @@ _rdesktop() return 0 ;; -x) - COMPREPLY=( $( compgen -W 'b broadband m modem l lan' \ - -- $cur ) ) + COMPREPLY=( $( compgen -W 'broadband modem lan' -- "$cur" ) ) return 0 ;; -r) - # FIXME: should do -o nospace for the colon options - COMPREPLY=( $( compgen -W 'comport: disk: lptport: \ - printer: sound: lspci scard' -- "$cur" ) ) + case $cur in + sound:*) + COMPREPLY=( $( compgen -W 'local off remote' \ + -- "${cur#sound:}" ) ) + ;; + *:*) + ;; + *) + COMPREPLY=( $( compgen -W 'comport: disk: lptport: \ + printer: sound: lspci scard' -- "$cur" ) ) + [[ $COMPREPLY == *: ]] && compopt -o nospace + ;; + esac + return 0 + ;; + -u|-d|-s|-c|-p|-n|-g|-S|-T|-X) return 0 ;; esac if [[ "$cur" == -* ]]; then - COMPREPLY=( $( compgen -W '-u -d -s -c -p -n -k -g -f -b -L \ - -A -B -e -E -m -C -D -K -S -T -N -X -a -z -x -P -r \ - -0 -4 -5' -- "$cur" ) ) + local opts=( $( _parse_help "$1" ) ) + COMPREPLY=( $( compgen -W '${opts[@]%:}' -- "$cur" ) ) else _known_hosts_real "$cur" fi @@ -48,10 +54,4 @@ _rdesktop() } && complete -F _rdesktop rdesktop -# Local variables: -# mode: shell-script -# sh-basic-offset: 4 -# sh-indent-comment: t -# indent-tabs-mode: nil -# End: # ex: ts=4 sw=4 et filetype=sh |