[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