From f478a8b75eaa1a83edb7960b383892043e918f61 Mon Sep 17 00:00:00 2001 From: Oliver Kiddle Date: Wed, 8 Jun 2005 12:07:48 +0000 Subject: 21313: make code for extracting mutt aliases do a better job of finding rc files --- ChangeLog | 5 +++++ Completion/Unix/Type/_email_addresses | 18 +++++++++++++++--- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 98f1374a7..8072ec978 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2005-06-08 Oliver Kiddle + + * 21313: Completion/Unix/Type/_email_addresses: make code for + extracting mutt aliases do a better job of finding rc files + 2005-06-08 Doug Kearns * 21306: Completion/Zsh/Command/_disable: add -s option for removing diff --git a/Completion/Unix/Type/_email_addresses b/Completion/Unix/Type/_email_addresses index 8c17ed066..ffff87163 100644 --- a/Completion/Unix/Type/_email_addresses +++ b/Completion/Unix/Type/_email_addresses @@ -14,7 +14,16 @@ # plugins (( $+functions[_email-mail] )) || _email-mail() { - reply=( ${${${(M)${(f)"$(<$files[$plugin])"}:#alias*}##alias[[:blank:]]##}/[[:blank:]]##/:} ) + local rc rcfiles i + + rcfiles=( $files[$plugin] ) + for ((i=1;i<=$#rcfiles;i++)); do + rcfiles+=( ${~${(M)${(f)"$(<$rcfiles[i])"}:#source*}##source[[:blank:]]##}(N) ) + done + reply=() + for rc in $rcfiles; do + reply+=( ${${${(M)${(f)"$(<$rc)"}:#alias*}##alias[[:blank:]]##}/[[:blank:]]##/:} ) + done return 300 } (( $+functions[_email-mutt] )) || _email-mutt() { _email-mail } @@ -79,7 +88,7 @@ _email-local() { _email_addresses() { local -a plugins reply list args local -A opts files - local plugin rcfile expl ret fret + local plugin rcfile muttrc expl ret fret local __specialx='][()<>@,;:\\".' local __spacex=" " # Space, tab @@ -119,7 +128,10 @@ _email_addresses() { fi # get list of all plugins except any with missing config files - files=( MH ${MH:-~/.mh_profile} mutt ~/.muttrc mush ~/.mushrc mail ${MAILRC:-~/.mailrc} pine ~/.addressbook ) + if ! zstyle -s ":completion:${curcontext}:email-addresses" muttrc muttrc; then + [[ -e ~/mutt/muttrc ]] && muttrc="~/mutt/muttrc" || muttrc="~/.muttrc" + fi + files=( MH ${MH:-~/.mh_profile} mutt $muttrc mush ~/.mushrc mail ${MAILRC:-~/.mailrc} pine ~/.addressbook ) plugins=( ${${(k)functions[(I)_email-*]#*-}:#(${(kj.|.)~files})} $files(Ne:'REPLY=( ${(k)files[(r)$REPLY]} ):') -- cgit 1.4.1