diff options
author | Ville Skyttä <ville.skytta@iki.fi> | 2013-03-24 22:59:29 +0200 |
---|---|---|
committer | Ville Skyttä <ville.skytta@iki.fi> | 2013-03-24 22:59:29 +0200 |
commit | 7afc97366f0a931cb98bd151c5971d4c4c926e59 (patch) | |
tree | 488d7797e4fe8521dc69811c8b20a493571cebf4 | |
parent | beaba62b346bc588d1f9466f338f64073ad2716f (diff) | |
download | bash-completion-7afc97366f0a931cb98bd151c5971d4c4c926e59.tar.gz |
patch: New full featured completion.
-rw-r--r-- | bash_completion | 2 | ||||
-rw-r--r-- | completions/Makefile.am | 1 | ||||
-rw-r--r-- | completions/patch | 70 |
3 files changed, 72 insertions, 1 deletions
diff --git a/bash_completion b/bash_completion index 41b4bc0d..069cee51 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 c195fb5f..f312b3a9 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 00000000..e8da15a9 --- /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 |