[Bash-completion-commits] [SCM] bash-completion branch, master, updated. e4c411818dfb7f3c73c4c08820a63126d9473b7a

Freddy Vulto fvulto at gmail.com
Sun Feb 15 21:01:09 UTC 2009


The following commit has been merged in the master branch:
commit 20278a41473544d43c51095ba2e118fc7b89c0d5
Author: Freddy Vulto <fvulto at gmail.com>
Date:   Sun Feb 15 21:56:01 2009 +0100

    Reviewed `to_review/vncviewer':
    - added support for case-insensitive options
    - added support for double-dash
    - replaced options with options from vncviewer-4.1.1 (Ubuntu-8.10)

diff --git a/to_review/vncviewer b/to_review/vncviewer
index 02c9105..24d9012 100644
--- a/to_review/vncviewer
+++ b/to_review/vncviewer
@@ -1,8 +1,11 @@
 # -*- mode: shell-script; sh-basic-offset: 8; indent-tabs-mode: t -*-
 # ex: ts=8 sw=8 noet filetype=sh
 #
-# bash completion for vncviewer
+# bash completion for vncviewer (4.1.1)
 
+
+# NOTE: - VNC Viewer options are case-insensivite.  Preferred case is taken from -help.
+#       - Both single dash (-) and double dash (--) are allowed as option prefix
 have vncviewer &&
 _vncviewer()
 {
@@ -12,29 +15,55 @@ _vncviewer()
 	cur=`_get_cword`
 	prev=${COMP_WORDS[COMP_CWORD-1]}
 
-	case $prev in
-		-passwd)
+	# Convert double dash to single dash
+	case ${prev/#--/-} in
+		# -passwd, -PasswordFile
+		-[pP][aA][sS][sS][wW][dD]|-[pP][aA][sS][sS][wW][oO][rR][dD][fF][iI][lL][eE])
 			_filedir
 			return 0
 			;;
-		-encodings)
-			COMPREPLY=( $( compgen -W 'copyrect tight hextile zlib \
-				corre rre raw' -- $cur ) )
+		# -PreferredEncoding
+		-[pP][rR][eE][fF][eE][rR][rR][eE][dD][eE][nN][cC][oO][dD][iI][nN][gG])
+			COMPREPLY=( $( compgen -W 'zrle hextile raw' -- $cur ) )
 			return 0
 			;;
-		-via)
+		# -via
+		-[vV][iI][aA])
 			_known_hosts
 			return 0
 			;;
 	esac
 
-
-	if [[ "$cur" == -* ]]; then
-		COMPREPLY=( $( compgen -W '-help -listen -via -shared -noshared\
-			-viewonly -fullscreen -noraiseonbeep -passwd -encodings\
-			-bgr233 -owncmap -truecolour -truecolor -depth \
-			-compresslevel -quality -nojpeg -nocursorshape \
-			-x11cursor' -- $cur ) )
+	if [[ "$cur" == -* || "$cur" == --* ]]; then
+		# Default to vncviewer camelcase options, see `vncviewer -help'
+		local dash options=( \
+			AcceptClipboard AutoSelect DebugDelay display \
+			DotWhenNoCursor FullColor FullColour FullScreen \
+			geometry help listen Log \
+			LowColourLevel MenuKey name Parent \
+			passwd PasswordFile PointerEventInterval PreferredEncoding \
+			SendClipboard SendPrimary Shared UseLocalCursor \
+			via ViewOnly WMDecorationHeight WMDecorationWidth \
+			ZlibLevel \
+		)
+		[[ "$cur" == --* ]] && dash=-- || dash=-
+		# Is a `nocasematch' variable available (bash > v3.1)?
+		if shopt nocasematch 2> /dev/null | grep -q ^nocasematch; then
+			# Variable `nocasematch' is available
+			# Use vncviewer camelcase options
+			local option oldNoCaseMatch=$(shopt -p nocasematch)
+			shopt -s nocasematch
+			COMPREPLY=( $( for option in "${options[@]}"; do
+				[[ $dash$option == "$cur"* ]] && echo $dash$option
+			done ) )
+			eval "$oldNoCaseMatch" 2> /dev/null
+		else
+			# Variable 'nocasematch' isn't available;
+			# Convert completions to lowercase
+			COMPREPLY=( $( compgen -W "$(
+			    echo ${options[@]/#/$dash} | tr [:upper:] [:lower:]	
+			)" -- "$(echo "$cur" | tr [:upper:] [:lower:])" ) )
+		fi
 	else
 		_known_hosts
 	fi

-- 
bash-completion



More information about the Bash-completion-commits mailing list