summary refs log tree commit diff
path: root/Completion
diff options
context:
space:
mode:
Diffstat (limited to 'Completion')
-rw-r--r--Completion/User/_mailboxes32
-rw-r--r--Completion/User/_mutt39
2 files changed, 71 insertions, 0 deletions
diff --git a/Completion/User/_mailboxes b/Completion/User/_mailboxes
new file mode 100644
index 000000000..c49aa8185
--- /dev/null
+++ b/Completion/User/_mailboxes
@@ -0,0 +1,32 @@
+#autoload
+
+# This is needlessly mutt-biased and should be fixed.
+
+local expl muttboxes mboxes dirboxes MHboxes maildirboxes muttrc="~/.muttrc" maildirectory="~/Mail"
+
+test -f "$compconfig[muttrc_path]" && muttrc=$compconfig[muttrc_path]
+test -f "$compconfig[maildirectory]" && maildirectory=$compconfig[maildirectory]
+
+if (( ! $+_mailbox_cache )) then
+
+test ${muttrc} || test -f ${~muttrc} && muttboxes=( ${(@)$(grep mailboxes ${~muttrc})[2,-1]} )
+
+mboxes=(${~maildirectory}/*(^/))
+dirboxes=(${~maildirectory}/*(/))
+
+for i in $dirboxes
+do 
+if test -d "${i}/cur"
+then
+maildirboxes=($maildirboxes $i)
+else
+MHboxes=($MHboxes $i)
+fi
+done
+
+_mailbox_cache=(\! \< \> $muttboxes $mboxes $maildirboxes $MHboxes)
+
+fi
+
+_description expl 'mailbox specification'
+compadd "$@" "$expl[@]" - "$_mailbox_cache[@]"
diff --git a/Completion/User/_mutt b/Completion/User/_mutt
new file mode 100644
index 000000000..9155df832
--- /dev/null
+++ b/Completion/User/_mutt
@@ -0,0 +1,39 @@
+#compdef mutt
+
+local state line muttrc="~/.muttrc" ret=1
+
+ _arguments \
+ '::recipient:->userhost' \
+ '-a:MIME attachment:_files' \
+ '-b:BCC recipient:->userhost' \
+ '-c:CC recipient:->userhost' \
+ '-e:post-init configuration:' \
+ '-f+:mailbox:_mailboxes' \
+ '-F+:init file:_files' \
+ '-h+:help' \
+ '-H+:draft file:_files' \
+ '-i:include file:_files' \
+ '-m+:default mailbox type:(mbox MMDF MH Maildir)' \
+ '-n+:bypass system configuration:' \
+ '-p+:resume postponed message:' \
+ '-R+:open in read-only mode:' \
+ '-s+:subject:' \
+ '-v+:version:' \
+ '-x+:emulate mailx compose:' \
+ '-y+:start listing mailboxes:' \
+ '-z+:start only if new messages:' \
+ '-Z+:open first mailbox with new mail:' && ret=0
+
+if [[ "$state" = userhost ]]; then
+      if compset -P '*@'; then
+        _description expl 'remote host name'
+        _hosts "$expl[@]" -q -S,
+        return
+      else
+          _description expl 'login name'
+          _users "$expl[@]" -q -S@ && ret=0
+        fi
+      fi
+
+return ret
+fi