[Bash-completion-commits] [SCM] bash-completion branch, master, updated. 1bfaacd1a0a79b26b682ed8676341ee88f4ee92d
Guillaume Rousse
guillomovitch at zarb.org
Wed May 20 23:42:45 UTC 2009
The following commit has been merged in the master branch:
commit cdd717b5ff73cc981820772a828b590f5f5591eb
Author: Guillaume Rousse <guillomovitch at zarb.org>
Date: Thu May 21 01:37:14 2009 +0200
split make completion
diff --git a/Makefile.am b/Makefile.am
index 33b7d02..3a280b4 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -40,6 +40,7 @@ bashcomp_DATA = contrib/ant \
contrib/lzma \
contrib/lvm \
contrib/lzop \
+ contrib/make \
contrib/mc \
contrib/mailman \
contrib/mcrypt \
diff --git a/bash_completion b/bash_completion
index 8e5c1f6..320e632 100644
--- a/bash_completion
+++ b/bash_completion
@@ -2892,78 +2892,6 @@ _route()
}
[ $UNAME = Linux ] && complete -F _route route
-# GNU make(1) completion
-#
-have make || have gmake || have gnumake || have pmake &&
-_make()
-{
- local file makef makef_dir="." makef_inc cur prev i split=false
-
- COMPREPLY=()
- cur=`_get_cword`
- prev=${COMP_WORDS[COMP_CWORD-1]}
-
- _split_longopt && split=true
-
- case $prev in
- -@(f|o|W|-@(?(make|old-|new-)file|assume-@(old|new)|what-if)))
- _filedir
- return 0
- ;;
- -I|-C|--directory|--include-dir)
- _filedir -d
- return 0
- ;;
- esac
-
- $split && return 0
-
- if [[ "$cur" == -* ]]; then
- COMPREPLY=( $( compgen -W '-b -m -B -C -d -e -f -h -i -I\
- -j -l -k -n -o -p -q -r -R - s -S -t -v -w -W \
- --always-make --directory --debug \
- --environment-overrides --file --makefile --help \
- --ignore-errors --include-dir --jobs --load-average \
- --max-load --keep-going --just-print --dry-run \
- --recon --old-file --assume-old --print-data-base \
- --question --no-builtin-rules --no-builtin-variables \
- --silent --quiet --no-keep-goind --stop --touch \
- --version --print-directory --no-print-directory \
- --what-if --new-file --assume-new \
- --warn-undefined-variables' -- $cur ) )
- else
- # before we check for makefiles, see if a path was specified
- # with -C
- for (( i=0; i < ${#COMP_WORDS[@]}; i++ )); do
- if [[ ${COMP_WORDS[i]} == -C ]]; then
- # eval for tilde expansion
- eval makef_dir=${COMP_WORDS[i+1]}
- break
- fi
- done
-
- # before we scan for targets, see if a Makefile name was
- # specified with -f
- for (( i=0; i < ${#COMP_WORDS[@]}; i++ )); do
- if [[ ${COMP_WORDS[i]} == -f ]]; then
- # eval for tilde expansion
- eval makef=${COMP_WORDS[i+1]}
- break
- fi
- done
-
- [ -n "$makef" ] && makef="-f ${makef}"
- [ -n "$makef_dir" ] && makef_dir="-C ${makef_dir}"
-
- COMPREPLY=( $( compgen -W "$( make -qp $makef $makef_dir 2>/dev/null | \
- awk -F':' '/^[a-zA-Z0-9][^$#\/\t=]*:([^=]|$)/ \
- {split($1,A,/ /);for(i in A)print A[i]}' )" \
- -- $cur ) )
-
- fi
-} &&
-complete -F _make $filenames make gmake gnumake pmake
-
# GNU tar(1) completion
#
_tar()
diff --git a/contrib/make b/contrib/make
new file mode 100644
index 0000000..830b26d
--- /dev/null
+++ b/contrib/make
@@ -0,0 +1,74 @@
+# -*- mode: shell-script; sh-basic-offset: 8; indent-tabs-mode: t -*-
+# ex: ts=8 sw=8 noet filetype=sh
+#
+# bash completion for GNU make
+
+have make || have gmake || have gnumake || have pmake &&
+_make()
+{
+ local file makef makef_dir="." makef_inc cur prev i split=false
+
+ COMPREPLY=()
+ cur=`_get_cword`
+ prev=${COMP_WORDS[COMP_CWORD-1]}
+
+ _split_longopt && split=true
+
+ case $prev in
+ -@(f|o|W|-@(?(make|old-|new-)file|assume-@(old|new)|what-if)))
+ _filedir
+ return 0
+ ;;
+ -I|-C|--directory|--include-dir)
+ _filedir -d
+ return 0
+ ;;
+ esac
+
+ $split && return 0
+
+ if [[ "$cur" == -* ]]; then
+ COMPREPLY=( $( compgen -W '-b -m -B -C -d -e -f -h -i -I\
+ -j -l -k -n -o -p -q -r -R - s -S -t -v -w -W \
+ --always-make --directory --debug \
+ --environment-overrides --file --makefile --help \
+ --ignore-errors --include-dir --jobs --load-average \
+ --max-load --keep-going --just-print --dry-run \
+ --recon --old-file --assume-old --print-data-base \
+ --question --no-builtin-rules --no-builtin-variables \
+ --silent --quiet --no-keep-goind --stop --touch \
+ --version --print-directory --no-print-directory \
+ --what-if --new-file --assume-new \
+ --warn-undefined-variables' -- $cur ) )
+ else
+ # before we check for makefiles, see if a path was specified
+ # with -C
+ for (( i=0; i < ${#COMP_WORDS[@]}; i++ )); do
+ if [[ ${COMP_WORDS[i]} == -C ]]; then
+ # eval for tilde expansion
+ eval makef_dir=${COMP_WORDS[i+1]}
+ break
+ fi
+ done
+
+ # before we scan for targets, see if a Makefile name was
+ # specified with -f
+ for (( i=0; i < ${#COMP_WORDS[@]}; i++ )); do
+ if [[ ${COMP_WORDS[i]} == -f ]]; then
+ # eval for tilde expansion
+ eval makef=${COMP_WORDS[i+1]}
+ break
+ fi
+ done
+
+ [ -n "$makef" ] && makef="-f ${makef}"
+ [ -n "$makef_dir" ] && makef_dir="-C ${makef_dir}"
+
+ COMPREPLY=( $( compgen -W "$( make -qp $makef $makef_dir 2>/dev/null | \
+ awk -F':' '/^[a-zA-Z0-9][^$#\/\t=]*:([^=]|$)/ \
+ {split($1,A,/ /);for(i in A)print A[i]}' )" \
+ -- $cur ) )
+
+ fi
+} &&
+complete -F _make $filenames make gmake gnumake pmake
--
bash-completion
More information about the Bash-completion-commits
mailing list