mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-09-13 13:41:01 +02:00
42 lines
1.2 KiB
Text
42 lines
1.2 KiB
Text
#autoload
|
|
|
|
#emulate -L zsh
|
|
setopt localoptions nullglob
|
|
|
|
# This is still needlessly mutt-biased and should be fixed.
|
|
|
|
local -U muttboxes mboxes dirboxes MHboxes maildirboxes
|
|
local i j expl muttrc="${muttrc:-~/.muttrc}"
|
|
local pinedirectory="${pinedirectory:-~/mail}"
|
|
local maildirectory="${maildirectory:-~/Mail}"
|
|
|
|
if (( ! $+_mailbox_cache )) then
|
|
|
|
[[ -f ${~muttrc:-.} ]] && muttboxes=( ${$(grep mailboxes ${~muttrc})[2,-1]} )
|
|
|
|
mboxes=( ${~maildirectory}/*(^/) ${~pinedirectory}/**/*(.) )
|
|
dirboxes=( ${~maildirectory}/*(/) )
|
|
|
|
while (( $#dirboxes )); do
|
|
i=$dirboxes[1]
|
|
shift dirboxes
|
|
if [[ -d "$i/cur" ]]; then
|
|
maildirboxes=( $maildirboxes $i )
|
|
elif j=( $i/<1-> ) && [[ -n "$j" ]]; then
|
|
MHboxes=( $MHboxes $i )
|
|
else
|
|
mboxes=( $mboxes $i/*(.) )
|
|
dirboxes=( $dirboxes $i/*(/) )
|
|
fi
|
|
done
|
|
|
|
[[ -n "$muttboxes" || -d ~/.elm || -d ~/.mutt ]] &&
|
|
_mailbox_cache=(\! \< \> $muttboxes)
|
|
[[ -n "$mailpath" ]] &&
|
|
_mailbox_cache=($_mailbox_cache ${mailpath//\?*/})
|
|
|
|
_mailbox_cache=($_mailbox_cache $mboxes $maildirboxes $MHboxes)
|
|
fi
|
|
|
|
_wanted files expl 'mailbox specification' &&
|
|
compadd "$@" "$expl[@]" - "$_mailbox_cache[@]"
|