The following commit has been merged in the master branch:
commit d3d1a9f895f77f1e540d206ef4f0d826a5149a5f
Author: Ville Skyttä <[email protected]>
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

_______________________________________________
Bash-completion-commits mailing list
[email protected]
http://lists.alioth.debian.org/mailman/listinfo/bash-completion-commits

Reply via email to