summaryrefslogtreecommitdiffstats
path: root/completions/patch
diff options
context:
space:
mode:
Diffstat (limited to 'completions/patch')
-rw-r--r--completions/patch70
1 files changed, 70 insertions, 0 deletions
diff --git a/completions/patch b/completions/patch
new file mode 100644
index 0000000..e883d9c
--- /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
+ --strip | --ifdef | --prefix | --basename-prefix | --suffix | --get | \
+ -!(-*)[pDBYzg])
+ return
+ ;;
+ --fuzz | -!(-*)F)
+ COMPREPLY=($(compgen -W '{0..3}' -- "$cur"))
+ return
+ ;;
+ --input | -!(-*)i)
+ _filedir '@(?(d)patch|dif?(f))'
+ return
+ ;;
+ --output | --reject-file | -!(-*)[or])
+ [[ ! $cur || $cur == - ]] && COMPREPLY=(-)
+ _filedir
+ return
+ ;;
+ --quoting-style)
+ COMPREPLY=($(compgen -W 'literal shell shell-always c escape' \
+ -- "$cur"))
+ return
+ ;;
+ --version-control | -!(-*)V)
+ COMPREPLY=($(compgen -W 'simple numbered existing' -- "$cur"))
+ return
+ ;;
+ --directory | -!(-*)d)
+ _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: filetype=sh