[Bash-completion-commits] [SCM] bash-completion branch, master, updated. b14fdb74b3b7fd7a707bc2afea55c10ea521d4f0

David Paleino d.paleino at gmail.com
Fri Jun 5 06:26:52 UTC 2009


The following commit has been merged in the master branch:
commit 6a9c2b191b207b8950484cbd5c372d8c6e52cfaf
Author: David Paleino <d.paleino at gmail.com>
Date:   Fri Jun 5 08:23:47 2009 +0200

    Split mutt completion to contrib/mutt

diff --git a/CHANGES b/CHANGES
index df99934..0462a23 100644
--- a/CHANGES
+++ b/CHANGES
@@ -13,6 +13,7 @@ bash-completion (1.x)
     (Debian: #531343)
   * Don't assume "sed" being GNU sed, use "gsed" whenever available
     (Debian: #501479, Alioth: #311393)
+  * Split mutt completion to contrib/mutt
 
   [ Ville Skyttä ]
   * Split yum and yum-arch completion into contrib/yum.
diff --git a/Makefile.am b/Makefile.am
index d73b912..bac647b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -63,6 +63,7 @@ bashcomp_DATA = contrib/ant \
 		contrib/mysqladmin \
 		contrib/mtx \
 		contrib/munin-node \
+		contrib/mutt \
 		contrib/ncftp \
 		contrib/net-tools \
 		contrib/ntpdate \
diff --git a/bash_completion b/bash_completion
index 15e9b34..4f8d673 100644
--- a/bash_completion
+++ b/bash_completion
@@ -3028,147 +3028,6 @@ _pineaddr()
 } &&
 complete -F _pineaddr $default pine
 
-# mutt completion
-#
-# Mutt doesn't have an "addressbook" like Pine, but it has aliases and
-# a "query" function to retrieve addresses, so that's what we use here.
-have mutt || have muttng && {
-_muttaddr()
-{
-	_muttaliases
-	_muttquery
-
-	cur=`_get_cword`
-	COMPREPLY=( "${COMPREPLY[@]}" $( compgen -u -- $cur ) )
-
-	return 0
-}
-
-_muttconffiles()
-{
-	local file sofar
-	local -a newconffiles
-
-	sofar=" $1 "
-	shift
-	while [[ "$1" ]]; do
-	    newconffiles=( $(sed -rn 's|^source[[:space:]]+([^[:space:]]+).*$|\1|p' $(eval echo $1) ) )
-	    for file in "${newconffiles[@]}"; do
-		[[ ! "$file" ]] || [[ "${sofar/ ${file} / }" != "$sofar" ]] &&
-		    continue
-		sofar="$sofar $file"
-		sofar=" $(eval _muttconffiles \"$sofar\" $file) "
-	    done
-	    shift
-	done
-	echo $sofar
-}
-
-_muttaliases()
-{
-	local cur muttrc
-	local -a conffiles aliases
-	cur=`_get_cword =`
-
-	[ -f ~/.${muttcmd}/${muttcmd}rc ] && muttrc="~/.${muttcmd}/${muttcmd}rc"
-	[ -f ~/.${muttcmd}rc ] && muttrc="~/.${muttcmd}rc"
-	[ -z "$muttrc" ] && return 0
-
-	conffiles=( $(eval _muttconffiles $muttrc $muttrc) )
-	aliases=( $( sed -rn 's|^alias[[:space:]]+([^[:space:]]+).*$|\1|p' \
-			$(eval echo "${conffiles[@]}") ) )
-	COMPREPLY=( "${COMPREPLY[@]}" $( compgen -W "${aliases[*]}" -- $cur ) )
-
-	return 0
-}
-
-_muttquery()
-{
-	local cur querycmd
-	local -a queryresults
-	cur=`_get_cword`
-
-	querycmd="$( $muttcmd -Q query_command  | sed -r 's|^query_command=\"(.*)\"$|\1|; s|%s|'$cur'|' )"
-	if [ -z "$cur" -o -z "$querycmd" ]; then
-	    queryresults=()
-	else
-	    queryresults=( $( $querycmd | \
-	      sed -nr '2,$s|^([^[:space:]]+).*|\1|p' ) )
-	fi
-
-	COMPREPLY=( "${COMPREPLY[@]}" $( compgen -W "${queryresults[*]}" \
-			-- $cur ) )
-
-	return 0
-}
-
-_muttfiledir()
-{
-	local cur folder spoolfile
-	cur=`_get_cword`
-
-	# This is currently not working so well. Perhaps this function should
-	# just call _filedir() for the moment.
-	if [[ $cur == [=+]* ]]; then
-		folder="$( $muttcmd -Q folder | sed -r 's|^folder=\"(.*)\"$|\1|' )"
-		: folder:=~/Mail
-
-		# Match any file in $folder beginning with $cur
-		# (minus the leading '=' sign).
-		COMPREPLY=( $( compgen -f -- "$folder/${cur:1}" ) )
-		COMPREPLY=( ${COMPREPLY[@]#$folder/} )
-		return 0
-	elif [ "$cur" == !* ]; then
-		spoolfile="$( $muttcmd -Q spoolfile | sed -r 's|^spoolfile=\"(.*)\"$|\1|' )"
-		[ ! -z "$spoolfile" ] && eval cur="${cur/^!/$spoolfile}";
-	fi
-	_filedir
-
-	return 0
-}
-
-_mutt()
-{
-	local cur prev
-	cur=`_get_cword`
-	prev=${COMP_WORDS[COMP_CWORD-1]}
-
-	COMPREPLY=()
-
-	[ ${COMP_WORDS[0]} == muttng ] && muttcmd="muttng" || muttcmd="mutt"
-
-	case "$cur" in
-	-*)
-		COMPREPLY=( $( compgen -W '-A -a -b -c -e -f -F -H -i -m -n \
-					    -p -Q -R -s -v -x -y -z -Z -h' \
-					    -- $cur ) )
-		return 0
-		;;
-	*)
-	    case "$prev" in
-	    -@(a|f|F|H|i))
-		    _muttfiledir
-		    return 0
-		    ;;
-	    -A)
-		    _muttaliases
-		    return 0
-		    ;;
-	    -@(e|m|Q|s|h|p|R|v|y|z|Z))
-		    return 0
-		    ;;
-	    *)
-		    _muttaddr
-		    return 0
-		    ;;
-	    esac
-	    ;;
-	esac
-
-}
-complete -F _mutt $default $filenames mutt muttng
-}
-
 _configure_func()
 {
 	local cur
diff --git a/contrib/mutt b/contrib/mutt
new file mode 100644
index 0000000..e3803d0
--- /dev/null
+++ b/contrib/mutt
@@ -0,0 +1,140 @@
+# mutt completion
+#
+# Mutt doesn't have an "addressbook" like Pine, but it has aliases and
+# a "query" function to retrieve addresses, so that's what we use here.
+have mutt || have muttng && {
+_muttaddr()
+{
+	_muttaliases
+	_muttquery
+
+	cur=`_get_cword`
+	COMPREPLY=( "${COMPREPLY[@]}" $( compgen -u -- $cur ) )
+
+	return 0
+}
+
+_muttconffiles()
+{
+	local file sofar
+	local -a newconffiles
+
+	sofar=" $1 "
+	shift
+	while [[ "$1" ]]; do
+	    newconffiles=( $(sed -rn 's|^source[[:space:]]+([^[:space:]]+).*$|\1|p' $(eval echo $1) ) )
+	    for file in "${newconffiles[@]}"; do
+		[[ ! "$file" ]] || [[ "${sofar/ ${file} / }" != "$sofar" ]] &&
+		    continue
+		sofar="$sofar $file"
+		sofar=" $(eval _muttconffiles \"$sofar\" $file) "
+	    done
+	    shift
+	done
+	echo $sofar
+}
+
+_muttaliases()
+{
+	local cur muttrc
+	local -a conffiles aliases
+	cur=`_get_cword =`
+
+	[ -f ~/.${muttcmd}/${muttcmd}rc ] && muttrc="~/.${muttcmd}/${muttcmd}rc"
+	[ -f ~/.${muttcmd}rc ] && muttrc="~/.${muttcmd}rc"
+	[ -z "$muttrc" ] && return 0
+
+	conffiles=( $(eval _muttconffiles $muttrc $muttrc) )
+	aliases=( $( sed -rn 's|^alias[[:space:]]+([^[:space:]]+).*$|\1|p' \
+			$(eval echo "${conffiles[@]}") ) )
+	COMPREPLY=( "${COMPREPLY[@]}" $( compgen -W "${aliases[*]}" -- $cur ) )
+
+	return 0
+}
+
+_muttquery()
+{
+	local cur querycmd
+	local -a queryresults
+	cur=`_get_cword`
+
+	querycmd="$( $muttcmd -Q query_command  | sed -r 's|^query_command=\"(.*)\"$|\1|; s|%s|'$cur'|' )"
+	if [ -z "$cur" -o -z "$querycmd" ]; then
+	    queryresults=()
+	else
+	    queryresults=( $( $querycmd | \
+	      sed -nr '2,$s|^([^[:space:]]+).*|\1|p' ) )
+	fi
+
+	COMPREPLY=( "${COMPREPLY[@]}" $( compgen -W "${queryresults[*]}" \
+			-- $cur ) )
+
+	return 0
+}
+
+_muttfiledir()
+{
+	local cur folder spoolfile
+	cur=`_get_cword`
+
+	# This is currently not working so well. Perhaps this function should
+	# just call _filedir() for the moment.
+	if [[ $cur == [=+]* ]]; then
+		folder="$( $muttcmd -Q folder | sed -r 's|^folder=\"(.*)\"$|\1|' )"
+		: folder:=~/Mail
+
+		# Match any file in $folder beginning with $cur
+		# (minus the leading '=' sign).
+		COMPREPLY=( $( compgen -f -- "$folder/${cur:1}" ) )
+		COMPREPLY=( ${COMPREPLY[@]#$folder/} )
+		return 0
+	elif [ "$cur" == !* ]; then
+		spoolfile="$( $muttcmd -Q spoolfile | sed -r 's|^spoolfile=\"(.*)\"$|\1|' )"
+		[ ! -z "$spoolfile" ] && eval cur="${cur/^!/$spoolfile}";
+	fi
+	_filedir
+
+	return 0
+}
+
+_mutt()
+{
+	local cur prev
+	cur=`_get_cword`
+	prev=${COMP_WORDS[COMP_CWORD-1]}
+
+	COMPREPLY=()
+
+	[ ${COMP_WORDS[0]} == muttng ] && muttcmd="muttng" || muttcmd="mutt"
+
+	case "$cur" in
+	-*)
+		COMPREPLY=( $( compgen -W '-A -a -b -c -e -f -F -H -i -m -n \
+					    -p -Q -R -s -v -x -y -z -Z -h' \
+					    -- $cur ) )
+		return 0
+		;;
+	*)
+	    case "$prev" in
+	    -@(a|f|F|H|i))
+		    _muttfiledir
+		    return 0
+		    ;;
+	    -A)
+		    _muttaliases
+		    return 0
+		    ;;
+	    -@(e|m|Q|s|h|p|R|v|y|z|Z))
+		    return 0
+		    ;;
+	    *)
+		    _muttaddr
+		    return 0
+		    ;;
+	    esac
+	    ;;
+	esac
+
+}
+complete -F _mutt $default $filenames mutt muttng
+}

-- 
bash-completion



More information about the Bash-completion-commits mailing list