mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-11-11 09:40:59 +01:00
43 lines
1 KiB
Text
43 lines
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
|
|
|
|
[[ -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" ]] &&
|
|
_mailbox_cache=(\! \< \> $muttboxes)
|
|
_mailbox_cache=($_mailbox_cache $mboxes $maildirboxes $MHboxes)
|
|
|
|
fi
|
|
|
|
_description expl 'mailbox specification'
|
|
compadd "$@" "$expl[@]" - "$_mailbox_cache[@]"
|