about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--Completion/User/_mailboxes24
1 files changed, 20 insertions, 4 deletions
diff --git a/Completion/User/_mailboxes b/Completion/User/_mailboxes
index f95bc0907..ee24e0442 100644
--- a/Completion/User/_mailboxes
+++ b/Completion/User/_mailboxes
@@ -54,7 +54,7 @@ fi
 # Files for pine must be absolute paths.
 
 if [[ "$PREFIX" != (|-f)+* &&
-      ( "${curcontext}" = *:(mail|zmail|zmlite):* ||
+      ( "${curcontext}" = *:(mail|mush|zmail|zmlite):* ||
         ( "${curcontext}" = *:pine:* && "$PREFIX" = (|-f)[/\~]* ) ) ]]; then
   _tags mailboxes files
 else
@@ -78,19 +78,35 @@ while _tags; do
       if compset -P '+|-f+'; then
         mbox_names=( "${(@)_mbox_cache#$~maildirectory/}" )
       else
-        mbox_names=( +"${(@)^_mbox_cache#$~maildirectory/}" "${_mailbox_cache[@]}" )
+        mbox_names=( +"${(@)^_mbox_cache#$~maildirectory/}"
+		    "${_mailbox_cache[@]}" )
       fi
       ;;
     (*:mh:*) # I've probably got this wrong, or at least incomplete
       (( $#_mh_cache )) && _multi_parts "${expl[@]}" / _mh_cache
       ;;
+    (*:mush:*)
+      if compset -P '+|-f+'; then
+        mbox_names=( "${(@)_mbox_cache#$~maildirectory/}" )
+      else
+        mbox_names=( +"${(@)^_mbox_cache#$~maildirectory/}"
+		     "${_mailbox_cache[@]}" )
+        mbox_short=( % \& )
+      fi
+      ;;
     (*:mutt:*)
-      mbox_names=( "${_mutt_cache[@]}" "${_mailbox_cache[@]}" "${_maildir_cache[@]}" )
+      mbox_names=( "${_mutt_cache[@]}" "${_mailbox_cache[@]}"
+		   "${_maildir_cache[@]}" )
       mbox_short=( \! \< \> );;
     (*: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[@]}" )
+      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 '+|-f+'; then