[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