mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-09-17 15:01:40 +02:00
46 lines
1.1 KiB
Text
46 lines
1.1 KiB
Text
#autoload
|
|
|
|
emulate -L zsh
|
|
setopt 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
|
|
|
|
test ${~muttrc} && [[ -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 ]] &&
|
|
_mailbox_cache=(\! \< \> $muttboxes)
|
|
[[ -n "$mailpath" ]] &&
|
|
_mailbox_cache=($_mailbox_cache ${mailpath//\?*/})
|
|
|
|
_mailbox_cache=($_mailbox_cache $mboxes $maildirboxes $MHboxes)
|
|
|
|
fi
|
|
|
|
_description expl 'mailbox specification'
|
|
compadd "$@" "$expl[@]" - "$_mailbox_cache[@]"
|