initial checkin
[zsh-lovers.git] / zsh_people / bruno_bonfils / functions / _mutt
1 #compdef mutt
2
3 local curcontext="$curcontext" state line expl suf
4 typeset -A opt_args
5
6 _arguments -C -s \
7     '::recipient:->userhostalias' \
8     '*-a[attach file using MIME]:file attachment:_files' \
9     '*-b[specify a BCC recipient]:BCC recipient:->userhost' \
10     '*-c[specify a CC recipient]:CC recipient:->userhost' \
11     '-e+[specify a post-init configuration command]:post-init configuration:' \
12     '-f+[specify mailbox to load]:mailbox: _mailboxes' \
13     '-F+[specify an init file]:init file:_files' \
14     '-h[display help]' \
15     '-H+[specify a draft file for message]:draft file:_files' \
16     '-i+[specify file to include in message]:include file:_files' \
17     '-m+[specify default mailbox type]:mailbox type:(mbox MMDF MH Maildir)' \
18     '-n[bypass system configuration]' \
19     '-p[resume postponed message]' \
20     '-R[open in read-only mode]' \
21     '-s+[specify a subject]:subject:' \
22     '-v[display mutt version]' \
23     '-x[emulate mailx compose]' \
24     '-y[start listing mailboxes]' \
25     '-z[start only if new messages]' \
26     '-Z[open first mailbox with new mail]' && return 0
27
28 if [[ "$state" = userhostalias ]]; then
29   if compset -P '*@'; then
30     _description hosts expl 'remote host name'
31     _hosts "$expl[@]" -q -S, && return 0
32   else
33     compset -S '@*' || suf='@'
34     
35     _description users expl 'login name'
36     _users "$expl[@]" -q -S "$suf"
37
38     # added by asyd (20020304)
39     if [ -r ~/.muttrc ]; then
40
41        # use cache
42        if ( [[ ${+_list_alias} -eq 0 ]] || _cache_invalid mutt_alias ) &&
43           ! _retrieve_cache mutt_alias; then
44        
45           _list_alias=(${(o)${${(M)${(f)"$(< ~/.muttrc)"}##alias*}/alias /}%% *})
46        
47           _store_cache mutt_alias _list_alias
48        fi
49        
50        _wanted alias expl 'alias name' compadd -q -S, $_list_alias 
51     fi
52     return 0
53     
54   fi
55 fi
56
57 return 1