diff options
author | Sven Wischnowsky <wischnow@users.sourceforge.net> | 2001-04-02 11:38:09 +0000 |
---|---|---|
committer | Sven Wischnowsky <wischnow@users.sourceforge.net> | 2001-04-02 11:38:09 +0000 |
commit | 574e4537bb58dc015f2419185c1135d7d45bb2f4 (patch) | |
tree | a55554825bcaa76d3db9aac98e0f5556e78dcee5 | |
parent | ec3d67e9b014e27f6dadcfd0999326283a98e3c6 (diff) | |
download | zsh-574e4537bb58dc015f2419185c1135d7d45bb2f4.tar.gz zsh-574e4537bb58dc015f2419185c1135d7d45bb2f4.tar.xz zsh-574e4537bb58dc015f2419185c1135d7d45bb2f4.zip |
moved to Completion/Unix/Type/_mailboxes
-rw-r--r-- | Completion/User/_mailboxes | 186 |
1 files changed, 0 insertions, 186 deletions
diff --git a/Completion/User/_mailboxes b/Completion/User/_mailboxes deleted file mode 100644 index 53f452ce5..000000000 --- a/Completion/User/_mailboxes +++ /dev/null @@ -1,186 +0,0 @@ -#autoload - -_mailboxes() { - #emulate -L zsh - local expl ret=1 - local pinedirectory="${pinedirectory:-~/mail}" - local maildirectory="${maildirectory:-~/Mail}" - - if (( ! $+_mailbox_cache )) then - _mailbox_cache "$@" - fi - - case "${curcontext}" in - (*:mail:*) - if [[ "$PREFIX" == +* ]]; then - _tags mailboxes - else - _tags mailboxes files - fi;; - (*:(mush|zmail|zmlite):*) - if [[ "$PREFIX" == [%+]* ]]; then - _tags 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 - pinedirectory='' - _tags mailboxes files - else - _tags mailboxes - fi;; - (*) - if [[ "$PREFIX" == (|-f)+* ]]; then - _tags mailboxes - else - _tags mailboxes files - fi;; - esac - - while _tags; do - _requested mailboxes expl 'mailbox specification' _mua_mailboxes && ret=0 - - if _requested files expl 'mailbox file'; then - [[ "${curcontext}" != *:(mail|mush|mutt|zmail|zmlite):* ]] && - compset -P -f - _files "$expl[@]" && ret=0 - fi - (( ret )) || return 0 - done - - return 1 -} - -_mailbox_cache () { - # Depends on $maildirectory and $pinedirectory from _mailboxes! - - local i j _mc_tmp muttrc="${muttrc:-~/.muttrc}" - local -aU dirboxes - typeset -aU -g _mailbox_cache - typeset -aU -g _maildir_cache _mbox_cache _mh_cache _mutt_cache _pine_cache - - - [[ -f ${~muttrc:-.} ]] && - _mc_tmp=${=${(M)${(f)"$(<${~muttrc})"}:#mailboxes *}#mailboxes *} && - _mutt_cache=( ${=${(Xe)_mc_tmp}} ) - - _mbox_cache=( ${~maildirectory}/*(^/) ) - _pine_cache=( ${~pinedirectory}/**/*(.) ) - - dirboxes=( ${~maildirectory}/*(/) ) - - while (( $#dirboxes )); do - i=${dirboxes[1]} - shift dirboxes - if [[ -d "$i/cur" ]]; then - _maildir_cache=( "${_maildir_cache[@]}" "$i" ) - elif j=( "$i"/<1-> ) && [[ -n "$j" ]]; then - _mh_cache=( "${_mh_cache[@]}" "$i" ) - dirboxes=( $dirboxes "$i"/*(/) ) - else - _mbox_cache=( "${_mbox_cache[@]}" "$i"/*(.) ) - dirboxes=( $dirboxes "$i"/*(/) ) - fi - done - - [[ -n "$mailpath" ]] && - _mailbox_cache=( "${_mailbox_cache[@]}" "${(@)mailpath%%\?*}" ) - - [[ -n "$MAIL" ]] && _mailbox_cache=( "${_mailbox_cache[@]}" $MAIL ) -} - -_mua_mailboxes() { - # Depends on $maildirectory and $pinedirectory from _mailboxes! - - local -a mbox_short - local -aU mbox_names - local ret=1 - - case "${curcontext}" in - (*:elm:*) # I've probably got this wrong, or at least incomplete - mbox_names=( "${_mbox_cache[@]}" "${_mailbox_cache[@]}" ) - mbox_short=( \! \< \> ) - ;; - (*:mail:*) - if compset -P +; then - mbox_names=( "${(@)_mbox_cache#$~maildirectory/}" ) - else - mbox_names=( +"${(@)^_mbox_cache#$~maildirectory/}" - "${_mailbox_cache[@]}" ) - fi - ;; - (*:mh:*) - local lastmhbox=$(mhpath) - if compset -P +; then - mbox_names=( "${(@)_mh_cache#$~maildirectory/}" ) - elif compset -P @; then - mbox_names=( "${(@)${(@M)_mh_cache:#$~lastmhbox/*}#$~lastmhbox/}" ) - else - mbox_names=( +"${(@)^_mh_cache#$~maildirectory/}" - @"${(@)^${(@M)_mh_cache:#$~lastmhbox/*}#$~lastmhbox/}" - "${_mh_cache[@]}" ) - fi - ;; - (*:mush:*) - if compset -P %; then - mbox_short=( "${(@k)userdirs}" ) - elif compset -P +; then - mbox_names=( "${(@)_mbox_cache#$~maildirectory/}" ) - else - mbox_names=( +"${(@)^_mbox_cache#$~maildirectory/}" - "${_mailbox_cache[@]}" ) - mbox_short=( \& % %"${(@k)^userdirs}" ) - 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[@]}" "${_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. - mbox_names=( "${(@)_pine_cache#$~pinedirectory/}" "${_mbox_cache[@]}" - "${_mailbox_cache[@]}" "${_mh_cache[@]}" ) - ;; - (*:tkrat:*) # Has a couple of custom formats I haven't programmed for. - mbox_names=( "${_mbox_cache[@]}" - "${_mailbox_cache[@]}" "${_mh_cache[@]}" ) - ;; - (*:(zmail|zmlite):*) - if compset -P %; then - mbox_short=( "${(@k)userdirs}" ) - elif compset -P +; then - mbox_names=( "${(@)_mbox_cache#$~maildirectory/}" ) - else - mbox_names=( +"${(@)^_mbox_cache#$~maildirectory/}" - "${_mailbox_cache[@]}" "${_mh_cache[@]}" ) - mbox_short=( \& % %"${(@k)^userdirs}" ) - fi - ;; - (*) # Some other program wants mailbox names? Use them all? - mbox_names=( "${_mailbox_cache[@]}" "${_mbox_cache[@]}" - "${_mh_cache[@]}" "${_mutt_cache[@]}" "${_pine_cache[@]}" ) - ;; - esac - - (( $#mbox_names )) && _multi_parts "$@" / mbox_names && ret=0 - (( $#mbox_short )) && compadd "$@" -a mbox_short && ret=0 - return ret -} - -_mailboxes "$@" |