[Bash-completion-commits] [SCM] bash-completion branch, master, updated. 2.0-150-g7afc973

Ville Skyttä ville.skytta at iki.fi
Sun Mar 24 21:00:10 UTC 2013


The following commit has been merged in the master branch:
commit 7afc97366f0a931cb98bd151c5971d4c4c926e59
Author: Ville Skyttä <ville.skytta at iki.fi>
Date:   Sun Mar 24 22:59:29 2013 +0200

    patch: New full featured completion.

diff --git a/bash_completion b/bash_completion
index 41b4bc0..069cee5 100644
--- a/bash_completion
+++ b/bash_completion
@@ -1794,7 +1794,7 @@ _longopt()
 complete -F _longopt a2ps awk base64 bash bc bison cat colordiff cp csplit \
     cut date df diff dir du enscript env expand fmt fold gperf \
     grep grub head indent irb ld ldd less ln ls m4 md5sum mkdir mkfifo mknod \
-    mv netstat nl nm objcopy objdump od paste patch pr ptx readelf rm rmdir \
+    mv netstat nl nm objcopy objdump od paste pr ptx readelf rm rmdir \
     sed seq sha{,1,224,256,384,512}sum shar sort split strip sum tac tail tee \
     texindex touch tr uname unexpand uniq units vdir wc who
 
diff --git a/completions/Makefile.am b/completions/Makefile.am
index c195fb5..f312b3a 100644
--- a/completions/Makefile.am
+++ b/completions/Makefile.am
@@ -238,6 +238,7 @@ bashcomp_DATA = a2x \
 		p4 \
 		pack200 \
 		passwd \
+		patch \
 		perl \
 		pgrep \
 		pidof \
diff --git a/completions/patch b/completions/patch
new file mode 100644
index 0000000..e8da15a
--- /dev/null
+++ b/completions/patch
@@ -0,0 +1,70 @@
+# patch(1) completion                                      -*- shell-script -*-
+
+_patch()
+{
+    local cur prev words cword split
+    _init_completion -s || return
+
+    case $prev in
+        -p|--strip|-D|--ifdef|-B|--prefix|-Y|--basename-prefix|-z|--suffix|\
+        -g|--get)
+            return
+            ;;
+        -F|--fuzz)
+            COMPREPLY=( $( compgen -W '{0..3}' -- "$cur" ) )
+            return
+            ;;
+        -i|--input)
+            _filedir '@(?(d)patch|dif?(f))'
+            return
+            ;;
+        -o|--output|-r|--reject-file)
+            [[ ! $cur || $cur == - ]] && COMPREPLY=( - )
+            _filedir
+            return
+            ;;
+        --quoting-style)
+            COMPREPLY=( $( compgen -W 'literal shell shell-always c escape' \
+                -- "$cur" ) )
+            return
+            ;;
+        -V|--version-control)
+            COMPREPLY=( $( compgen -W 'simple numbered existing' -- "$cur" ) )
+            return
+            ;;
+        -d|--directory)
+            _filedir -d
+            return
+            ;;
+        --reject-format)
+            COMPREPLY=( $( compgen -W 'context unified' -- "$cur" ) )
+            return
+            ;;
+        --read-only)
+            COMPREPLY=( $( compgen -W 'ignore warn fail' -- "$cur" ) )
+            return
+            ;;
+    esac
+
+    $split && return
+
+    if [[ $cur == -* ]]; then
+        COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) )
+        [[ $COMPREPLY == *= ]] && compopt -o nospace
+        return
+    fi
+
+    local args
+    _count_args
+    case $args in
+        1)
+            _filedir
+            ;;
+        2)
+            _filedir '@(?(d)patch|dif?(f))'
+            ;;
+    esac
+} &&
+complete -F _patch patch
+
+# ex: ts=4 sw=4 et filetype=sh

-- 
bash-completion



More information about the Bash-completion-commits mailing list