From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16078 invoked from network); 21 Feb 2000 10:57:52 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 21 Feb 2000 10:57:52 -0000 Received: (qmail 15274 invoked by alias); 21 Feb 2000 10:57:44 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 9815 Received: (qmail 15263 invoked from network); 21 Feb 2000 10:57:42 -0000 From: "Bart Schaefer" Message-Id: <1000221105738.ZM16693@candle.brasslantern.com> Date: Mon, 21 Feb 2000 10:57:38 +0000 X-Mailer: Z-Mail (5.0.0 30July97) To: zsh-workers@sunsite.auc.dk Subject: PATCH: Factor out calls to _multi_parts in _mailboxes MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii I just noticed that all the case-branches except *:mh:* had the exact same call to _multi_parts. At one time they were mostly different, using the literal array syntax; I changed that because it didn't work (before Sven's recent patch) and then didn't notice that meant I could pull out all those calls to do it once at the end. Index: Completion/User/_mailboxes =================================================================== @@ -28,7 +28,7 @@ shift dirboxes if [[ -d "$i/cur" ]]; then _maildir_cache=( "${_maildir_cache[@]}" "$i" ) - elif j=( "$i"/<1-> ) && [[ -n "$j" ]]; then + elif j=( $i/<1-> ) && [[ -n "$j" ]]; then _mh_cache=( "${_mh_cache[@]}" "$i" ) else _mbox_cache=( "${_mbox_cache[@]}" "$i"/*(.) ) @@ -48,46 +48,41 @@ local -U mbox_names case "${curcontext}" in (*:elm:*) # I've probably got this wrong, or at least incomplete - compadd "${expl[@]}" - \! \< \> mbox_names=( "${_mbox_cache[@]}" "${_mailbox_cache[@]}" ) - _multi_parts "${expl[@]}" / mbox_names;; + compadd "${expl[@]}" - \! \< \>;; (*:mail:*) if compset -P '+|-f+'; then mbox_names=( "${(@)_mbox_cache#$~maildirectory/}" ) - _multi_parts "${expl[@]}" / mbox_names else mbox_names=( +"${(@)^_mbox_cache#$~maildirectory/}" "${_mailbox_cache[@]}" ) - _multi_parts "${expl[@]}" / mbox_names _path_files -J all-files fi;; (*:mh:*) # I've probably got this wrong, or at least incomplete - (( $#_mh_cache )) && _multi_parts "${expl[@]}" / _mh_cache;; + (( $#_mh_cache )) && _multi_parts "${expl[@]}" / _mh_cache + return;; (*:mutt:*) mbox_names=( "${_mutt_cache[@]}" "${_mailbox_cache[@]}" "${_maildir_cache[@]}" ) - compadd "${expl[@]}" - \! \< \> - _multi_parts "${expl[@]}" / mbox_names;; + compadd "${expl[@]}" - \! \< \>;; (*: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[@]}" ) - _multi_parts "${expl[@]}" / mbox_names # _path_files -J all-files -g '/*' ;; (*:(zmail|zmlite):*) if compset -P '+|-f+'; then mbox_names=( "${(@)_mbox_cache#$~maildirectory/}" ) - _multi_parts "${expl[@]}" / mbox_names else - compadd "${expl[@]}" - % \& mbox_names=( +"${(@)^_mbox_cache#$~maildirectory/}" "${_mailbox_cache[@]}" "${_mh_cache[@]}" ) - _multi_parts "${expl[@]}" / mbox_names + compadd "${expl[@]}" - % \& _path_files -J all-files fi ;; (*) # Some other program wants mailbox names? Use them all? mbox_names=( "${_mailbox_cache[@]}" "${_mbox_cache[@]}" - "${_mh_cache[@]}" "${_mutt_cache[@]}" "${_pine_cache[@]}" ) - _multi_parts "${expl[@]}" / mbox_names;; + "${_mh_cache[@]}" "${_mutt_cache[@]}" "${_pine_cache[@]}" );; esac + + (( $#mbox_names )) && _multi_parts "${expl[@]}" / mbox_names fi -- Bart Schaefer Brass Lantern Enterprises http://www.well.com/user/barts http://www.brasslantern.com