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

Ville Skyttä ville.skytta at iki.fi
Mon Jul 20 17:00:53 UTC 2009


The following commit has been merged in the master branch:
commit d3d1a9f895f77f1e540d206ef4f0d826a5149a5f
Author: Ville Skyttä <ville.skytta at iki.fi>
Date:   Mon Jul 20 19:57:36 2009 +0300

    Add xz, xzcat, xzdec, and unxz completion.

diff --git a/CHANGES b/CHANGES
index 5913102..e226c03 100644
--- a/CHANGES
+++ b/CHANGES
@@ -94,6 +94,7 @@ bash-completion (1.x)
   * Associate .tsv with oocalc.
   * Add xmlwf completion.
   * Associate *.po with poedit, gtranslator, kbabel, and lokalize.
+  * Add xz, xzcat, xzdec, and unxz completion.
 
   [ Todd Zullinger ]
   * Make yum complete on filenames after install, deplist, update and upgrade
diff --git a/Makefile.am b/Makefile.am
index 3c80891..d903632 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -140,6 +140,7 @@ bashcomp_DATA = contrib/ant \
 		contrib/xmlwf \
 		contrib/xmms \
 		contrib/xrandr \
+		contrib/xz \
 		contrib/yp-tools \
 		contrib/yum
 
diff --git a/bash_completion b/bash_completion
index f1ccb20..f973616 100644
--- a/bash_completion
+++ b/bash_completion
@@ -107,6 +107,7 @@ complete -f -X '!*.@(Z|gz|tgz|Gz|dz)' gunzip
 #complete -f -X '!*.@(Z|gz|tgz|Gz|dz)' zcmp zdiff zcat zegrep zfgrep zgrep zless zmore
 complete -f -X '!*.*' zcmp zdiff zcat zegrep zfgrep zgrep zless zmore
 complete -f -X '!*.Z' uncompress
+complete -f -X '!*.xz' unxz xzcat
 complete -f -X '!*.@(gif|jp?(e)g|miff|tif?(f)|pn[gm]|p[bgp]m|bmp|xpm|ico|xwd|tga|pcx|GIF|JP?(E)G|MIFF|TIF?(F)|PN[GM]|P[BGP]M|BMP|XPM|ICO|XWD|TGA|PCX)' ee
 complete -f -X '!*.@(gif|jp?(e)g|tif?(f)|png|p[bgp]m|bmp|x[bp]m|rle|rgb|pcx|fits|pm|GIF|JPG|JP?(E)G|TIF?(F)|PNG|P[BGP]M|BMP|X[BP]M|RLE|RGB|PCX|FITS|PM)' xv qiv
 complete -f -X '!*.@(@(?(e)ps|?(E)PS|pdf|PDF)?(.gz|.GZ|.bz2|.BZ2|.Z))' gv ggv kghostview
diff --git a/contrib/xz b/contrib/xz
new file mode 100644
index 0000000..fb6089d
--- /dev/null
+++ b/contrib/xz
@@ -0,0 +1,99 @@
+# -*- mode: shell-script; sh-basic-offset: 8; indent-tabs-mode: t -*-
+# ex: ts=8 sw=8 noet filetype=sh
+
+# xz(1) completion
+#
+have xz &&
+_xz()
+{
+	COMPREPLY=()
+	local cur=`_get_cword`
+	local prev=${COMP_WORDS[COMP_CWORD-1]}
+
+	if [[ "$cur" == -* ]]; then
+		COMPREPLY=( $( compgen -W '-z --compress -d --decompress \
+			-t --test -l --list -k --keep -f --force -c --stdout \
+			-S --suffix --files --files0 -F --format -C --check \
+			-0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -M --memory --lzma1 \
+			--lzma2 --x86 --powerpc --ia64 --arm --armthumb \
+			--sparc --delta -q --quiet -v --verbose -h --help \
+			-H --long-help -V --version' -- $cur ) )
+		return 0
+	fi
+
+	local split=false
+	_split_longopt && split=true
+
+	local xspec="*.xz"
+
+	case "$prev" in
+		-@(!(-*)[dlt]*|-decompress|-list|-test))
+			xspec="!"$xspec
+			;;
+		--files|--files0)
+			_filedir
+			return 0
+			;;
+		-C|--check)
+			COMPREPLY=( $( compgen -W 'crc32 crc64 sha256' \
+				-- $cur ) )
+			return 0
+			;;
+		-F|--format)
+			COMPREPLY=( $( compgen -W 'auto xz lzma raw' -- $cur ) )
+			return 0
+			;;
+		-M|--memory|-S|--suffix|--delta|--lzma1|--lzma2)
+			# argument required but no completions available
+			return 0
+			;;
+		-h|--help|-H|--long-help|-V|--version)
+			# all other arguments are noop with these
+			return 0
+			;;
+	esac
+
+	$split && return 0
+
+	_expand || return 0
+
+	local IFS=$'\t\n'
+	COMPREPLY=( $( compgen -f -X "$xspec" -- $cur ) \
+		$( compgen -d -- $cur ) )
+} &&
+complete -F _xz $filenames xz
+
+# xzdec(1) completion
+#
+have xzdec &&
+_xzdec()
+{
+	COMPREPLY=()
+	local cur=`_get_cword`
+	local prev=${COMP_WORDS[COMP_CWORD-1]}
+
+	if [[ "$cur" == -* ]]; then
+		COMPREPLY=( $( compgen -W '-M --memory -h --help -V --version' \
+			-- $cur ) )
+		return 0
+	fi
+
+	local split=false
+	_split_longopt && split=true
+
+	case "$prev" in
+		-M|--memory)
+			# argument required but no completions available
+			return 0
+			;;
+		-h|--help|-V|--version)
+			# all other arguments are noop with these
+			return 0
+			;;
+	esac
+
+	$split && return 0
+
+	_filedir xz
+} &&
+complete -F _xzdec $filenames xzdec

-- 
bash-completion



More information about the Bash-completion-commits mailing list