[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