aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bash/bash_completion.d/_abook_addresses.bash10
-rw-r--r--bash/bash_completion.d/mail.bash10
-rw-r--r--bash/bash_completion.d/mutt.bash10
3 files changed, 30 insertions, 0 deletions
diff --git a/bash/bash_completion.d/_abook_addresses.bash b/bash/bash_completion.d/_abook_addresses.bash
new file mode 100644
index 00000000..8e341172
--- /dev/null
+++ b/bash/bash_completion.d/_abook_addresses.bash
@@ -0,0 +1,10 @@
+# Email addresses from abook(1)
+_abook_addresses() {
+ while IFS=$'\t' read -r address _ ; do
+ case $address in
+ "${COMP_WORDS[COMP_CWORD]}"*)
+ COMPREPLY[${#COMPREPLY[@]}]=$address
+ ;;
+ esac
+ done < <(abook --mutt-query \@)
+}
diff --git a/bash/bash_completion.d/mail.bash b/bash/bash_completion.d/mail.bash
new file mode 100644
index 00000000..4476df12
--- /dev/null
+++ b/bash/bash_completion.d/mail.bash
@@ -0,0 +1,10 @@
+# Completion for mail(1) with abook(1) email addresses
+declare -F _abook_addresses >/dev/null ||
+ source "$HOME"/.bash_completion.d/_abook_addresses.bash
+
+# bashdefault requires Bash >=3.0
+if ((BASH_VERSINFO[0] >= 3)) ; then
+ complete -F _abook_addresses -o bashdefault -o default mail
+else
+ complete -F _abook_addresses -o default mail
+fi
diff --git a/bash/bash_completion.d/mutt.bash b/bash/bash_completion.d/mutt.bash
new file mode 100644
index 00000000..d8bcc15d
--- /dev/null
+++ b/bash/bash_completion.d/mutt.bash
@@ -0,0 +1,10 @@
+# Completion for mutt(1) with abook(1) email addresses
+declare -F _abook_addresses >/dev/null ||
+ source "$HOME"/.bash_completion.d/_abook_addresses.bash
+
+# bashdefault requires Bash >=3.0
+if ((BASH_VERSINFO[0] >= 3)) ; then
+ complete -F _abook_addresses -o bashdefault -o default mutt
+else
+ complete -F _abook_addresses -o default mutt
+fi