#compdef mutt

local curcontext="$curcontext" state line muttrc="~/.muttrc" ret=1

 _arguments -C \
 '::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
  _tags hosts || return 1

  if compset -P '*@'; then
    _description expl 'remote host name'
    _hosts "$expl[@]" -q -S, && return 0
  else
    _description expl 'login name'
    _users "$expl[@]" -q -S@ && return 0
   fi
 fi
fi

return ret
