summaryrefslogtreecommitdiff
path: root/contrib/rdesktop
blob: ba941eec6841020e9ad5edcaa81ccca8c352a229 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# -*- mode: shell-script; sh-basic-offset: 8; indent-tabs-mode: t -*-
# ex: ts=8 sw=8 noet filetype=sh
#
# bash completion for rdesktop

have rdesktop &&
_rdesktop()
{
	local cur prev

	COMPREPLY=()
	cur=`_get_cword`
	prev=${COMP_WORDS[COMP_CWORD-1]}

	case $prev in
		-k)
			COMPREPLY=( $( command ls \
				/usr/share/rdesktop/keymaps 2>/dev/null | \
				egrep -v '(common|modifiers)' ) )
			COMPREPLY=( ${COMPREPLY[@]:-} $( command ls \
				$HOME/.rdesktop/keymaps 2>/dev/null ) )
			COMPREPLY=( ${COMPREPLY[@]:-} $( command ls \
				./keymaps 2>/dev/null ) )
			COMPREPLY=( $( compgen -W '${COMPREPLY[@]}' -- $cur ) )
			return 0
			;;
		-a)
			COMPREPLY=( $( compgen -W '8 15 16 24' -- $cur ) )
			return 0
			;;
		-x)
			COMPREPLY=( $( compgen -W 'b broadband m modem l lan' \
				-- $cur ) )
			return 0
			;;
		-r)
			# FIXME: should do $nospace for the colon options
			COMPREPLY=( $( compgen -W 'comport: disk: lptport: \
				printer: sound: lspci scard' -- $cur ) )
			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 ) )
	else
		_known_hosts
	fi

} &&
complete -F _rdesktop rdesktop