From 44b34667f844ce57b5b2eba0f2870c1ec7630348 Mon Sep 17 00:00:00 2001 From: Clint Adams Date: Thu, 22 Jun 2000 04:11:35 +0000 Subject: 12027: mutt smarts for _mailboxes --- ChangeLog | 4 ++++ Completion/User/_mailboxes | 21 +++++++++++++++++---- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index c54d757b3..3ae413e20 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2000-06-22 Clint Adams + * 12027: Completion/User/_mailboxes: fix splitting problem in + 12024, add intelligence for mutt mailboxes in $maildirectory + not specified in muttrc. + * 12024: Completion/User/_mailboxes: handle multiple mailboxes lines in muttrc. diff --git a/Completion/User/_mailboxes b/Completion/User/_mailboxes index fb00719a3..8ee29007a 100644 --- a/Completion/User/_mailboxes +++ b/Completion/User/_mailboxes @@ -23,6 +23,12 @@ _mailboxes() { else _tags mailboxes files fi;; + (*:mutt:*) + if [[ "$PREFIX" == (|-f)[+=]* ]]; then + _tags mailboxes + else + _tags mailboxes files + fi;; (*:pine:*) # Files for pine must be absolute paths. if [[ "$PREFIX" == (|-f)[/\~]* ]]; then @@ -43,7 +49,7 @@ _mailboxes() { _requested mailboxes expl 'mailbox specification' _mua_mailboxes && ret=0 if _requested files expl 'mailbox file'; then - [[ "${curcontext}" != *:(mail|mush|zmail|zmlite):* ]] && + [[ "${curcontext}" != *:(mail|mush|mutt|zmail|zmlite):* ]] && compset -P -f _files "$expl[@]" && ret=0 fi @@ -65,7 +71,7 @@ _mailbox_cache () { [[ -f ${~muttrc:-.} ]] && - _mutt_cache=( ${${(M)${(f)"$(<${~muttrc})"}:#mailboxes *}#mailboxes *} ) + _mutt_cache=( ${=${(M)${(f)"$(<${~muttrc})"}:#mailboxes *}#mailboxes *} ) _mbox_cache=( ${~maildirectory}/*(^/) ) @@ -127,9 +133,16 @@ _mua_mailboxes() { fi ;; (*:mutt:*) + if compset -P '='; then + mbox_names=( "${_mutt_cache[@]#[+=]}" "${(@)_mbox_cache#$~maildirectory/}" "${(@)_maildir_cache#$~maildirectory/}" "${(@)_mh_cache#$~maildirectory/}") + elif compset -P +; then + mbox_names=( "${_mutt_cache[@]#[+=]}" "${(@)_mbox_cache#$~maildirectory/}" "${(@)_maildir_cache#$~maildirectory/}" "${(@)_mh_cache#$~maildirectory/}") + else mbox_names=( "${_mutt_cache[@]}" "${_mailbox_cache[@]}" - "${_maildir_cache[@]}" ) - mbox_short=( \! \< \> );; + "${_maildir_cache[@]}" "${_mh_cache[@]}" ) + mbox_short=( \! \< \> ) + fi + ;; (*:pine:*) # Pine is like mail but with no leading `+' to disambiguate; # any files not in $pinedirectory must be absolute paths. -- cgit 1.4.1