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

Ville Skyttä ville.skytta at iki.fi
Thu May 21 07:40:14 UTC 2009


The following commit has been merged in the master branch:
commit 29c9fc3df853ada9cd45ea82d6d3a77b35c046f5
Author: Ville Skyttä <ville.skytta at iki.fi>
Date:   Thu May 21 10:40:09 2009 +0300

    Use _split_longopt with cpio.

diff --git a/CHANGES b/CHANGES
index 92f0554..af13b70 100644
--- a/CHANGES
+++ b/CHANGES
@@ -38,8 +38,8 @@ bash-completion (1.x)
   * Add _split_longopt() helper for improved handling of long options that
     take arguments in both "--foo bar" and "--foo=bar" formats.
   * Use _split_longopt to improve and clean up aspell, chgrp, chown, chkconfig,
-    iptables, make, mii-diag, mii-tool, mkinitrd, smartctl, and generic long
-    option completion (Alioth: #311398).
+    cpio, iptables, make, mii-diag, mii-tool, mkinitrd, smartctl, and generic
+    long option completion (Alioth: #311398).
   * Add chown --from and --reference value completions.
   * Add chgrp --reference value completion.
   * Do not assume all --foo= options take filenames in generic long option
diff --git a/contrib/cpio b/contrib/cpio
index 84bebcf..9bab21b 100644
--- a/contrib/cpio
+++ b/contrib/cpio
@@ -11,51 +11,35 @@ _cpio_format()
 
 _cpio()
 {
-	local cur prev
+	local cur prev split=false
 
 	COMPREPLY=()
 	cur=`_get_cword`
 	prev=${COMP_WORDS[COMP_CWORD-1]}
 
+	_split_longopt && split=true
+
 	# --name value style option
 	case $prev in
-		-H)
+		-H|--format)
 			_cpio_format
 			return 0
 			;;
-		-@(E|F|I))
+		-@(E|F|I|-?(pattern-)file))
 			_filedir
 			return 0
 			;;
-		-R)
+		-R|--owner)
 			_usergroup
 			return 0
 			;;
+		--rsh-command)
+			COMPREPLY=( $( compgen -c -- $cur ) )
+			return 0
+			;;
 	esac
 
-	# --name=value style option
-	if [[ "$cur" == *=* ]]; then
-		prev=${cur/=*/}
-		cur=${cur/*=/}
-		case $prev in
-			--format)
-				_cpio_format
-				return 0
-				;;
-			--@(file|pattern-file))
-				_filedir
-				return 0
-				;;
-			--owner)
-				_usergroup
-				return 0
-				;;
-			--rsh-command)
-				COMPREPLY=( $( compgen -c -- $cur ) )
-				return 0
-				;;
-		esac
-	fi
+	$split && return 0
 
 	if [ $COMP_CWORD -eq 1 ]; then
 		COMPREPLY=( $( compgen -W '-o --create -i --extract -p --pass-through' -- $cur) )
@@ -64,11 +48,11 @@ _cpio()
 			-@(o|-create))
 				if [[ "$cur" == -* ]]; then
 					COMPREPLY=( $( compgen -W '-0 -a -c -v -A -B\
-						-L -V -C -H -M -O -F --file= --format=\
-						--message= --null --reset-access-time\
-						--verbose --dot --append --block-size=\
-						--dereference --io-size= --quiet\
-						--force-local --rsh-command= --help\
+						-L -V -C -H -M -O -F --file --format\
+						--message --null --reset-access-time\
+						--verbose --dot --append --block-size\
+						--dereference --io-size --quiet\
+						--force-local --rsh-command --help\
 						--version' -- $cur ) )
 				fi
 				;;
@@ -76,18 +60,18 @@ _cpio()
 				if [[ "$cur" == -* ]]; then
 					COMPREPLY=( $( compgen -W '-b -c -d -f -m -n -r\
 						-t -s -u -v -B -S -V -C -E -H -M -R -I\
-						-F --file= --make-directories\
+						-F --file --make-directories\
 						--nonmatching\
 						--preserve-modification-time\
 						--numeric-uid-gid --rename -t --list\
 						--swap-bytes --swap --dot\
-						--unconditional --verbose --block-size=\
-						--swap-halfwords --io-size=\
-						--pattern-file= --format= --owner=\
-						--no-preserve-owner --message=\
+						--unconditional --verbose --block-size\
+						--swap-halfwords --io-size\
+						--pattern-file --format --owner\
+						--no-preserve-owner --message\
 						--force-local --no-absolute-filenames\
 						--sparse --only-verify-crc --quiet\
-						--rsh-command= --help\
+						--rsh-command --help\
 						--version' -- $cur ) )
 				fi
 				;;
@@ -98,7 +82,7 @@ _cpio()
 						--make-directories --link --quiet\
 						--preserve-modification-time\
 						--unconditional --verbose --dot\
-						--dereference --owner=\
+						--dereference --owner\
 						--no-preserve-owner --sparse --help\
 						--version' -- $cur ) )
 				else

-- 
bash-completion



More information about the Bash-completion-commits mailing list