Full Code of karelzak/mutt-kz for AI

master a8e0411599f0 cached
410 files
8.4 MB
2.2M tokens
2344 symbols
1 requests
Download .txt
Showing preview only (9,006K chars total). Download the full file or copy to clipboard to get everything.
Repository: karelzak/mutt-kz
Branch: master
Commit: a8e0411599f0
Files: 410
Total size: 8.4 MB

Directory structure:
gitextract_w375h4b7/

├── .gitignore
├── .hgignore
├── .hgsigs
├── .hgtags
├── ABOUT-NLS
├── BEWARE
├── COPYRIGHT
├── ChangeLog
├── GPL
├── INSTALL
├── Makefile.am
├── NEWS
├── OPS
├── OPS.CRYPT
├── OPS.MIX
├── OPS.NOTMUCH
├── OPS.PGP
├── OPS.SIDEBAR
├── OPS.SMIME
├── PATCHES
├── README
├── README.SECURITY
├── README.SSL
├── README.cond-date
├── README.index-color
├── README.nested-if
├── README.notmuch
├── README.progress
├── README.quasi-delete
├── README.sidebar
├── README.status-color
├── README.tls-sni
├── TODO
├── UPDATING
├── UPDATING.kz
├── VERSION
├── VERSION.kz
├── _regex.h
├── account.c
├── account.h
├── addrbook.c
├── alias.c
├── ascii.c
├── ascii.h
├── attach.c
├── attach.h
├── base64.c
├── bcache.c
├── bcache.h
├── browser.c
├── browser.h
├── buffy.c
├── buffy.h
├── build-release
├── charset.c
├── charset.h
├── check_sec.sh
├── color.c
├── commands.c
├── complete.c
├── compose.c
├── configure.ac
├── contrib/
│   ├── Makefile.am
│   ├── Mush.rc
│   ├── Pine.rc
│   ├── Tin.rc
│   ├── ca-bundle.crt
│   ├── colors.default
│   ├── colors.linux
│   ├── gpg.rc
│   ├── iconv/
│   │   ├── README
│   │   ├── iconv.aix-3.2.5.rc
│   │   ├── iconv.aix-4.1.5.rc
│   │   ├── iconv.aix-4.2.0.rc
│   │   ├── iconv.aix-4.3.2.rc
│   │   ├── iconv.freebsd-3.3.rc
│   │   ├── iconv.glibc-2.1.3.rc
│   │   ├── iconv.glibc-2.1.90.rc
│   │   ├── iconv.hpux-10.01.rc
│   │   ├── iconv.hpux-10.20.rc
│   │   ├── iconv.hpux-11.00.rc
│   │   ├── iconv.irix-6.5.rc
│   │   ├── iconv.osf1-4.0a.rc
│   │   ├── iconv.osf1-4.0d.rc
│   │   ├── iconv.solaris-2.4.rc
│   │   ├── iconv.solaris-2.5.1.rc
│   │   ├── iconv.solaris-2.6-cjk.rc
│   │   ├── iconv.solaris-2.6.rc
│   │   ├── iconv.solaris-2.7.rc
│   │   └── make.sh
│   ├── language.txt
│   ├── language50.txt
│   ├── mutt_xtitle
│   ├── patch.slang-1.2.2.keypad.1
│   ├── pgp2.rc
│   ├── pgp5.rc
│   ├── pgp6.rc
│   ├── sample.mailcap
│   ├── sample.muttrc
│   ├── sample.muttrc-tlr
│   ├── smime.rc
│   └── smime_keys_test.pl
├── copy.c
├── copy.h
├── crypt-gpgme.c
├── crypt-gpgme.h
├── crypt-mod-pgp-classic.c
├── crypt-mod-pgp-gpgme.c
├── crypt-mod-smime-classic.c
├── crypt-mod-smime-gpgme.c
├── crypt-mod.c
├── crypt-mod.h
├── crypt.c
├── cryptglue.c
├── crypthash.h
├── curs_lib.c
├── curs_main.c
├── date.c
├── doc/
│   ├── Makefile.am
│   ├── Muttrc.head
│   ├── PGP-Notes.txt
│   ├── TODO
│   ├── applying-patches.txt
│   ├── chunk.xsl
│   ├── devel-notes.txt
│   ├── dotlock.man
│   ├── gen-map-doc
│   ├── html.xsl
│   ├── instdoc.sh.in
│   ├── makedoc-defs.h
│   ├── makedoc.c
│   ├── manual.xml.head
│   ├── manual.xml.tail
│   ├── mbox.man
│   ├── mmdf.man
│   ├── mutt.css
│   ├── mutt.man
│   ├── mutt.pwl
│   ├── mutt.xsl
│   ├── muttbug.man
│   ├── muttrc.cond-date
│   ├── muttrc.index-color
│   ├── muttrc.man.head
│   ├── muttrc.man.tail
│   ├── muttrc.nested-if
│   ├── muttrc.progress
│   ├── muttrc.quasi-delete
│   ├── muttrc.sidebar
│   ├── muttrc.status-color
│   ├── muttrc.tls-sni
│   ├── patch-notes.txt
│   ├── pgpewrap.man
│   ├── pgpring.man
│   ├── smime-notes.txt
│   ├── smime_keys.man
│   ├── vimrc.index-color
│   ├── vimrc.progress
│   ├── vimrc.quasi-delete
│   └── vimrc.sidebar
├── dotlock.c
├── dotlock.h
├── edit.c
├── editmsg.c
├── enter.c
├── extlib.c
├── filter.c
├── flags.c
├── flymake.am
├── from.c
├── functions.h
├── gen_defs
├── getdomain.c
├── globals.h
├── gnupgparse.c
├── group.c
├── group.h
├── handler.c
├── hash.c
├── hash.h
├── hcache.c
├── hcache.h
├── hcachever.sh.in
├── hdrline.c
├── headers.c
├── help.c
├── hg-changelog-map
├── hg-commit
├── history.c
├── history.h
├── hook.c
├── imap/
│   ├── Makefile.am
│   ├── README
│   ├── TODO
│   ├── auth.c
│   ├── auth.h
│   ├── auth_anon.c
│   ├── auth_cram.c
│   ├── auth_gss.c
│   ├── auth_login.c
│   ├── auth_sasl.c
│   ├── browse.c
│   ├── command.c
│   ├── imap.c
│   ├── imap.h
│   ├── imap_private.h
│   ├── message.c
│   ├── message.h
│   ├── utf7.c
│   └── util.c
├── init.c
├── init.h
├── intl/
│   ├── COPYING.LIB-2
│   ├── COPYING.LIB-2.1
│   ├── ChangeLog
│   ├── VERSION
│   ├── bindtextdom.c
│   ├── cat-compat.c
│   ├── config.charset
│   ├── dcgettext.c
│   ├── dcigettext.c
│   ├── dcngettext.c
│   ├── dgettext.c
│   ├── dngettext.c
│   ├── explodename.c
│   ├── finddomain.c
│   ├── gettext.c
│   ├── gettext.h
│   ├── gettextP.h
│   ├── hash-string.h
│   ├── intl-compat.c
│   ├── l10nflist.c
│   ├── libgettext.h
│   ├── libgnuintl.h
│   ├── libintl.glibc
│   ├── linux-msg.sed
│   ├── loadinfo.h
│   ├── loadmsgcat.c
│   ├── localcharset.c
│   ├── locale.alias
│   ├── localealias.c
│   ├── ngettext.c
│   ├── plural.c
│   ├── plural.y
│   ├── po2tbl.sed.in
│   ├── ref-add.sin
│   ├── ref-del.sin
│   ├── textdomain.c
│   └── xopen-msg.sed
├── keymap.c
├── keymap.h
├── lib.c
├── lib.h
├── m4/
│   ├── Makefile.am
│   ├── README
│   ├── codeset.m4
│   ├── curslib.m4
│   ├── funcdecl.m4
│   ├── funcs.m4
│   ├── gettext.m4
│   ├── glibc21.m4
│   ├── gpgme.m4
│   ├── gssapi.m4
│   ├── iconv.m4
│   ├── lcmessage.m4
│   ├── progtest.m4
│   └── types.m4
├── mailbox.h
├── main.c
├── mapping.h
├── mbox.c
├── mbyte.c
├── mbyte.h
├── md5.c
├── md5.h
├── menu.c
├── mh.c
├── mime.h
├── mime.types
├── mkchangelog.sh
├── mkdtemp.c
├── mutt.h
├── mutt_crypt.h
├── mutt_curses.h
├── mutt_idna.c
├── mutt_idna.h
├── mutt_menu.h
├── mutt_notmuch.c
├── mutt_notmuch.h
├── mutt_regex.h
├── mutt_sasl.c
├── mutt_sasl.h
├── mutt_socket.c
├── mutt_socket.h
├── mutt_ssl.c
├── mutt_ssl.h
├── mutt_ssl_gnutls.c
├── mutt_tunnel.c
├── mutt_tunnel.h
├── muttbug
├── muttbug.sh.in
├── muttlib.c
├── mx.c
├── mx.h
├── pager.c
├── pager.h
├── parse.c
├── patchlist.sh
├── pattern.c
├── pgp.c
├── pgp.h
├── pgpewrap.c
├── pgpinvoke.c
├── pgpkey.c
├── pgplib.c
├── pgplib.h
├── pgpmicalg.c
├── pgppacket.c
├── pgppacket.h
├── pgppubring.c
├── po/
│   ├── Makefile.in.in
│   ├── POTFILES.in
│   ├── bg.po
│   ├── ca.po
│   ├── cs.po
│   ├── da.po
│   ├── de.po
│   ├── el.po
│   ├── eo.po
│   ├── es.po
│   ├── et.po
│   ├── eu.po
│   ├── fr.po
│   ├── ga.po
│   ├── gl.po
│   ├── hu.po
│   ├── id.po
│   ├── it.po
│   ├── ja.po
│   ├── ko.po
│   ├── lt.po
│   ├── nl.po
│   ├── pl.po
│   ├── pt_BR.po
│   ├── ru.po
│   ├── sk.po
│   ├── sv.po
│   ├── tr.po
│   ├── uk.po
│   ├── zh_CN.po
│   └── zh_TW.po
├── pop.c
├── pop.h
├── pop_auth.c
├── pop_lib.c
├── postpone.c
├── prepare
├── protos.h
├── query.c
├── recvattach.c
├── recvcmd.c
├── regex.c
├── remailer.c
├── remailer.h
├── resize.c
├── rfc1524.c
├── rfc1524.h
├── rfc2047.c
├── rfc2047.h
├── rfc2231.c
├── rfc2231.h
├── rfc3676.c
├── rfc3676.h
├── rfc822.c
├── rfc822.h
├── safe_asprintf.c
├── score.c
├── send.c
├── sendlib.c
├── setenv.c
├── sha1.c
├── sha1.h
├── sidebar.c
├── sidebar.h
├── signal.c
├── smime.c
├── smime.h
├── smime_keys.pl
├── smtp.c
├── snprintf.c
├── sort.c
├── sort.h
├── stamp-h.in
├── status.c
├── strcasecmp.c
├── strcasestr.c
├── strdup.c
├── strndup.c
├── strnlen.c
├── strsep.c
├── strtok_r.c
├── system.c
├── thread.c
├── txt2c.c
├── txt2c.sh
├── url.c
├── url.h
├── utf8.c
├── version.sh
├── wcscasecmp.c
└── wcwidth.c

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
*~
*.a
aclocal.m4
autom4te.cache
build/
compile
config.guess
config.h
config.h.in
config.log
config.status
config.sub
configure
cscope.*
depcomp
.deps
doc/advancedusage.html
doc/configuration.html
doc/gettingstarted.html
doc/.*.html
doc/index.html
doc/instdoc
doc/instdoc.sh
doc/intro.html
doc/makedoc
doc/manual.aux
doc/manual.html
doc/manual.log
doc/manual.out
doc/manual.pdf
doc/manual.tex
doc/manual.txt
doc/manual.xml
doc/mimesupport.html
doc/miscellany.html
doc/mutt.1
doc/Muttrc
doc/muttrc.man
doc/optionalfeatures.html
doc/reference.html
doc/security.html
doc/smime_keys.1
doc/stamp-
doc/stamp-doc-chunked
doc/stamp-doc-xml
doc/tuning.html
flea
.gdb_history
*.gmo
hcachever.sh
hcversion.h
install-sh
keymap_defs.h
Makefile
Makefile.in
missing
mutt
muttbug.sh
mutt_dotlock
mutt_dotlock.c
mutt_md5
*.o
*.orig
patchlist.c
pgpewrap
pgpring
po/mutt.pot
po/POTFILES
*.rej
reldate.h
^.settings/
smime_keys
stamp-doc-rc
stamp-h1
*.swp
TAGS
ID
tags
.xcodeproj/*
keymap_alldefs.h
po/mutt-kz.pot
txt2c
conststrings.c
doc/pgpewrap.1
doc/pgpring.1
mutt-kz-*.tar.*



================================================
FILE: .hgignore
================================================
# autoconf products
^aclocal\.m4$
^autom4te\.cache
^compile$
^(contrib/|doc/|imap/|m4/|po/)?Makefile\.in$
^config\.h(\.in~?)?$
^config\.(log|status)$
^configure$
^hcachever.sh$
^muttbug\.sh$
^stamp-h1$
^doc/Muttrc$
^doc/instdoc\.sh$
^po/POTFILES$
^config.guess$
^config.sub$
^depcomp$
^install-sh$
^missing$
^mkinstalldirs$

# built objects
^flea$
^hcversion\.h$
^keymap_(all)?defs\.h$
^doc/makedoc$
^mutt$
^mutt_dotlock(\.c)?$
^mutt_md5$
^patchlist\.c$
^conststrings\.c$
^pgpewrap|pgpring$
^reldate\.h$
^smime_keys$
^txt2c$
^stamp-doc-rc$
^doc/instdoc$
^doc/manual\.(txt|xml|aux|log|out|tex|pdf)$
^doc/mutt\.1$
^doc/muttrc\.man$
^doc/pgpewrap\.1$
^doc/pgpring\.1$
^doc/.*\.html$
^doc/stamp-
^doc/smime_keys\.1$
^po/mutt\.pot$

# xcode droppings
^build/
\.xcodeproj/

# eclipse
^\.c?project$
^\.settings/

syntax: glob
.deps
Makefile
GPATH
GRTAGS
GTAGS
TAGS
cscope.*
*.swp
*.o
*.gmo
*.orig
*.rej
*.a
.gdb_history
*~


================================================
FILE: .hgsigs
================================================
5ecc29447bbb79c9a5d665021746448cd7655e0d 0 iD8DBQBGFrOsIigsijWFMDIRAhJiAJ9q6xMm7T/y1Brh2bXGm6Rza4mIrgCg2fE+dUddKGoHSrnIF4nCLjHsk5k=
bee166a61a5a9523531d7c3ca8c7f8d37ae0ca8d 0 iD8DBQBGa3gAIigsijWFMDIRAtSNAJ4sV9l/77Ao6wf5DcX4AfeH+gDyAQCgsyLb0kYyO8YjJ/rOLDrLLvhixbY=
ca8a3f81b413c31b159518e8cec2b49a649287de 0 iD8DBQBHKkDJIigsijWFMDIRAgHSAKCZmT+s2sadQHV5p7scKAFnTr4SdQCgyxvTICr5rjDL7nOJGdwl7I2kN4Y=
133f3cc9250945091fd438363f47e73766c2e355 0 iEYEABECAAYFAkgvNE8ACgkQIigsijWFMDKHVwCg6D5jmG3YQNUCCRQtat59mL5R7N0AniUhTmfUWK+2ObKYRML38gXO6u76
a4b47ac32d32678c5c2d149d8770c97fbbf9aafb 0 iEYEABECAAYFAkliqKcACgkQIigsijWFMDK7ZgCglDuJdAIZ9o4alPTxbLnWJObXVcoAoLjNtqSLiK5hQ5zhciH/Q3kWjQZ7
f399371bb9b0176c35adc9ca3b88ce1d0bc9667b 0 iEYEABECAAYFAko1TMMACgkQIigsijWFMDI7CQCfZm4chcPLu5RVgsNG1TWFVdoL8NMAoLCeGF/Lvct99CBZC9pIdJq7KDqL
25a7f8f7d50dbd2f301417fcb1c9d1337a8268bd 0 iEYEABECAAYFAkyRAHwACgkQIigsijWFMDIWjQCg/pnBwlQFykA00IAaf6TX236jILEAnjRjPytge6U6aI2gX7jm6uNTV8WC
8c5ea668e7e072cfd7161023553b68072545f2d1 0 iEYEABECAAYFAlJgzU8ACgkQIigsijWFMDIuigCfVBvMqZv1zgSknLjMdTLse7pIH5AAnRSGGzu58aQ7YoJU15bevmWA91/H
b8a63730c8489a0dff577da8f1c8e31219a179e8 0 iQIcBAABAgAGBQJTII72AAoJEFHk0k89vdxov4gP/0nART9SNLs70qa1k+bNsMz5U+SFmqNwjnznmVgkF+tlXFav+zPsYOiS7XNVmk9YdJkogwfEuAerf2mIL7HoTkZ0fg77gvyzfOXPEYxBhu5I4YlNUjObLRarDwHMo5hAud67ZNxvd8QMnappGc1sicutXTkDDXCwE6cLDClSRSIOtKH8qfPOdhQxwhahbWji8xrTUjqi8PReLmDit8KGmcsrFnXgfBKsnMu9NinKujNDdjRqTOvBr9OSa79qnfiholPESpAP5u+g/vTCE12o3OPzyZhgpYhzLoFHL5NSMNM+6jaOhYlamVrYyDGb9G9nLnsWkejleoGgob1aXN5fTpUm2NYJMoTqCOYLk0lfE4UTbnZMBT3hKWvpNjjcIONsmofqMwQ3ObcWUZ2S/DahXwBuVU9Hl9ZiTu6y6xGAuaq7Qc+vDDmzmS7RVE+bPBG+mkHtjN92tD66fCmK8/kzrS9Y0/0mkOqkYdgP5EiTD/BwWpEit2abB2pifajVq3k6JytLBglXP4YGjPGVE0f7lOLJjJZSP1r7NqmSAp1VOcyhg8xe2WwZHbg0R7Gsi1uJFvX6r1lr3XZ867bOTgblVRZyOqMorGQ1lwXqHZCRxkQBjY8geTmZCJf+u5bMpKZBrg6mzwiS7VdjMn174LFhltqXfe8aAl1liVD9rY+Vox7Q
08e81162482fb7b1680efa20b1740f693a8a35de 0 iQIcBAABCgAGBQJV4zztAAoJEK3vdoSAMWva7nMP/046RRvjWEVcIIJjWBejsB6gpOW0ZaHD54F8GGzQLQVN6F4RCuU24cPxyWB04vS0SrQAmANLQ8lGwYjtotztyTs4CnfsvRSEXUFBtyBj5u2ZUHlsA4s/UTPRiuUmen4Dx4nRzXs8XQowTaPdUnncHGxfYLaVznkcUGgVMPhh9RpN8LcJgu11ntYvSdoDWdblF4dGEINlQ7K0u7kqeFNd1EhP0llpAMyCzRvY/zBriYRZn1Jfhn/tuHb4AuiNB7FPEhloBlz3J8PWqqMHannfIVtQYhz6B4b5d6Kd/CJytoExiaEbZI710hEkwjYJVtvnQCRiz50Fu/C4rXHrkRF77Y7wYHBSyEZ0KXkAO9cNvB7Tmypfxyj/kupFFtMTDyaie4kNV+FZxtfSA4Jh99sItcyUEvs0OacogCwz558FDtCdoKyGJuhgn6xZ5O4PVGtPEWPy9G4txwGvOdaIbaal2e8kuBpP+803lKhP7Rlhn1rISSUEQUciqF+bALwEhyiH9b7IVEC2Z4qQBpJIO6jZMo+qVRBY/46FsZQLWF2naIg5tuyjRxkAO5w1aeZmns7rmFgKhsQmkIc4UQNcb7okEwEltm5DtMTJa7bMkdqJdBdCwEvWTMEkjdjY57V7lapwKIXijq8SW966upMhzdg3fwtETjWDLlz4E9xjHiJwqfKA
be82a2fde82fdd9057641e39e4df853d7ae4d4f2 0 iQIcBAABCgAGBQJXABWxAAoJEK3vdoSAMWvaM7IQAMFkG8/bpUY8X4tKaoFwLXNqqVh3BaHgsmx0pDpm753wR+kDkUFu8yw05Rp9fVRNIq2D5r49vvyHP64xSAmIbPaXa3nUWWIEXK8NFvf8NHxgmwNxcowtP9xHqkja3TZnzc8b9ZhyujWW/CEvnLjGsSWbJiCqFIVZjPXlf83wGpCeLHc3/xO1Yo1FKEnpKSfR53yfs+sRtlJCAoSSdCv0C97ylAVnU2UoiXBnuCOLE4lMnCSfM+bHjFxPPMmA4sP+pUfDW3RwVvxji8lmwlGghckBcucD76j/4LoGUNoXkNmy9+DOM19Qw1YzrkehejcC/Ycqcri4jGUItU/lyDL9ghWa2bXzZGjFYvXcaUoi/nXD95UyVwKoEz67zgaepdQENMupuC2V99k0v7kaWA0Gi/Knl+COvFghHfHj3B2mdbiCujBZ5Y7/LQLoDcMQVb2K+hSUIyel5fUIM2BvlPddSJHy2Dc9do1H40GGznb6usODYeh/Sk2o0Nucum0pFbvz3m60j9CV6BZVeHyk7HoEbAi9RhP6/3qRJGWrG3vEvKQmPTXrgqidszNx+arTxvozd1TxaHgSOP+7c7NyDZ3vZoHYy7CwN5j695+pNA27Wab+LvYbYQtEy8eIgVLFHGR1QOD5D1E7y5e1IOBZUS9Z5mbPCYtMsCkXbuaO32GRakpO


================================================
FILE: .hgtags
================================================
0063f043f11aba7b89d63808e6bc67bbb0051c4c mutt-1-1-4-rel
0366855cb4ce645e8547eb371a635a84e2c453d7 mutt-1-3-25-rel
08a17d4cdcbd3fb24bd2ebe83828008f325ae8d8 mutt-1-3-rel
0cb4e2f662903f5ee2972596fb8ebcafe33e733d mutt-1-5-13-rel
0e88fc30c91332187463ee85768805e454140c05 mutt-0-94-13-rel
0e9b6a89555a5ee8bca9fa1f67091618597ec29c mutt-1-3-27-rel
0f24cff519c8501727bc6010ad74556ee0efd198 mutt-1-5-7-rel
0f707f13b76347df80d4d1adbf8dfbb1339dbced mutt-1-3-19-rel
10ae194ea7325c563bc52d803502eff439d369ce mutt-1-3-15-rel
135c43b8d6be6795f7218148e7c142d1b9288105 mutt-1-3-1-rel
15f26edcfd19941bb88e62b034b9fb25f51bb3e7 mutt-1-3-2-rel
178d20efae6a4df9fb12575d30a471c65f64d0d9 mutt-1-3-20-rel
19732d3a1566d2faf5b354af86534cd131852b76 mutt-1-1-11-rel
1b4bbd36bc50f6d482dc800866ed8b0c01b3e71d mutt-1-1-3-rel
1ce6e68d8685ddd721b0698b9692bbad17b22889 mutt-1-1-1-2-rel
232d922da63bcac37f998e8902c27718bdf42aa0 mutt-0-94-9i-rel
23adf861cac46e447b56d34a744c13e7059aa129 mutt-1-3-22-1-rel
23d559ebe55476cdcba916b762ad90fa81912b21 mutt-0-94-18-rel
255a71b1c8a9ed099bdb4b0cf3c8b3a6551bdc80 mutt-1-5-8-rel
2b1e65821a2e4b4d8219e0ff78e87c12fe589d6f mutt-0-94-9i-p1
2b76fdbd3b6803a61cab9438751b9e7aef599370 mutt-1-3-10-rel
30ce625d20ce34aeaac8774955eedd6bdf706fe7 mutt-1-5-1-rel
376a352c9a21c9439c6dd183a6f2f32c0a8f32f2 mutt-1-3-11-rel
3837061be530b4a6f11dfaa1d9a0f539bc9c1aed mutt-1-5-5-rel
3a4ef6600c0afc731e87caeb45ca1d8ef068e96d mutt-0-94-10i-rel
3bef047dbad46fff9ef6abf17dad2decae2bf53f mutt-0-96-7-rel
3d107f9ee4cb8a8d9bbfaba86ccbb0e53c1dffb6 mutt-0-96-8-rel
412f762bc7b8dbce9daa80d544115ffb07cc6f29 mutt-1-3-5-rel
41a18a584dce7c7884da210a277527fb67278093 mutt-1-3-3-rel
42564cca29c857148c7658531eabcd8bc3bedaae mutt-0-96-2-slightly-post-release
42b65d47a6e204f3fb83a9ff57375a3ad2150627 mutt-1-3-23-1-rel
4d0fb523422de134302bcac198a08ecbd8643a9b mutt-1-5-9-rel
4e510c27c6a70589dfe9eacabb3c447ea631d837 mutt-1-3-14-rel
512d53e287cf5fb305f0505e5adaaba1d131d12e mutt-1-3-23-rel
526b2eeec601de50702a882e0893be50b9eb7307 mutt-1-3-21-rel
52f9e92eb4a467024c8f462852037ab2f0280672 mutt-1-1-9-rel
553abc0b5e26ff58fe7130676382ed6da861f61d mutt-1-5-11-rel
559940f0b3d09d49803f654df317f2abaa74310e mutt-1-1-8-rel
5a932e25364f4ef011e0b853916b0b357c77f19c mutt-1-1-1-1-rel
5b22bc9a8a42f6431189f6cda5292f5a9eb726b7 mutt-1-1-rel
5e1d3e482d95b0312ec42efb24b4378cd5e12d00 mutt-0-92-10i
5e807fff2594f1b158534d71bbc0b27f8f864046 mutt-0-96-3-rel
61276da736e2ed1ec31179b0572278be0c341620 mutt-0-94-16i-rel
63f2be9404d6525b8ae23285ad0a0b7a3a748fef mutt-1-5-12-rel
68579cbc7ed88cfafd9a2d6dac5ab3a603f41dce mutt-0-94-7i-rel
6942ab68847a59051565dcab63d7a09900aeb6cd mutt-0-94-6i-rel
699400638f26483ab1c3579c1b237623a58bedc9 mutt-1-3-8-rel
6dbb1acec0cd8be743af82af5809e3df07a4d5f2 mutt-1-3-26-rel
735e30fb79fcbb7fa4e68b86901b7a99523a4375 mutt-1-1-6-rel
7cac3901adf75c84e3327108777164d6a40d43ea mutt-1-3-16-rel
7d765ac7e43412bc71e8f7cb8481a87b80c3e623 mutt-1-3-6-rel
7eba110382a2571b8ce0fee872e47a861aadfbc9 mutt-1-5-4-rel
7f9c706e7ce30b93019a7dbcef2d21ceab61a385 mutt-1-1-14-rel
80cf2a37f4165a48c4b2cb0d5aad6306beb4a90f mutt-1-5-10-rel
83c2dc9cd313db1cd7e12477f5b9bcf2d78bffa4 mutt-1-1-5-rel
85f1ca7436ce7379c42280678ecc9620d2c5ab24 mutt-0-94-8i-rel
87f8bb39638a08795a1e43b69375abcb28d43b94 mutt-1-3-23-2-rel
886d18caed45ebfb9ad62db9725f84db3b07c0ae mutt-1-1-13-rel
8a011a27b0043ab1a825a7cfbfe1eebac89afa76 mutt-1-3-17-rel
8c1927ba5f289bad1a4043234a1bcef82d2d0f38 mutt-0-92-9i
8e42575552e3ed1bfc67a52a9f10c90529c99a85 mutt-1-1-10-rel
96edded07c4641899ff69cc62e46bc8e5ab8b13b mutt-0-94-14-rel
995102535833f5912fb0c9d3858cd048c666c43d mutt-1-5-14-rel
9a8b4255f458d2af4f665d0d64781c6cb2d0681d mutt-1-3-24-rel
a684efc6d536467eb7ba33e6268de798f1223131 mutt-0-96-rel
ab1f203d271069af6e4774728c728185518fb31d mutt-1-1-7-rel
ac336c06ca452931a24d98a654a486dbf4cc1af2 pre-type-punning-patch
ad283a95bec4f80f0bc61001eac6123a036683f7 mutt-1-1-1-rel
b63bc0436b20c5620e2c6c987e2c04e92df2704a mutt-1-5-3-rel
b672da4797c198a4984a094e4eebd72fead1ca99 mutt-1-1-2-rel
b8c1fed48659a6cc448e53d6d0fbff55ef420cc7 mutt-1-1-12-rel
bc468641da8db476cff61735cf3ff1162d875c65 mutt-0-92-11i
bd885c27161a41e57dad92d78eaea71c16bfa97d post-type-punning-patch
c0b703bc239548ba27819486f67bf26c5be5255d mutt-1-5-5-1-rel
c33914e03fb3639902ee76d8a2ccf70c3987437e mutt-1-5-6-rel
c53fa2f08a9d182f5017674acfcbce0f9118e031 mutt-1-3-12-rel
c664b1ec55f11e304f389f7c95715764e95a11ad mutt-1-3-9-rel
cc5ad5889f910f032d0bfbfe25f353d5215d04a1 mutt-0-96-6-rel
ce7b07242251c761743495eb0ac0556ff6422676 mutt-0-94-17i-rel
d08fade289715dbb1b87b4505340d49485b25e8b mutt-1-3-4-rel
d771b5f2e030654157a8bcbd280cf71aa4f6bec2 mutt-0-93-unstable
d8c3cd0d1fcd2155bb100f9d97d2b52fa1fb7bed mutt-0-96-1-rel
d8ea531a046abb33fe0a838f950b6103db11830f mutt-0-94-5i-rel
dab525e08e137b6f82b66747d63ae40c4af72dc4 mutt-1-3-7-rel
db2f73a42a8b57e3b4db93a452c7641477e6e270 mutt-0-94-15-rel
dd09c1f43b4500d761cfdc048a7ada820b1674cc mutt-1-3-13-rel
e2831ecde740d3812ed02ed35b1e5bd939d6898a mutt-0-96-5-rel
e9693de14eadb39bcc9e4f3c39a4cfa93c57996b mutt-0-96-4-rel
ecdf72ecedea71eb345b501af1b4f860d1bf5e24 mutt-0-95-rel
f059fe2b44f3e355e855eb22a647ea3c47849e8e mutt-1-3-22-rel
f7de2cde03d3881f1850adc062b5353f0275a118 mutt-1-3-18-rel
f9953cbe632630f409f92f8a8d27a916c39af6a9 mutt-1-5-2-rel
4fd2d768fe5cfc83d97b04f938a65ceadbdceba9 mutt-1-5-15-rel
aaf805734d242992724d5d87e9de9e7f10a4fa85 mutt-1-5-16-rel
cd03dff9b5764b22831df1a1468b0cba227b912c mutt-1-5-17-rel
ff9e4d0464b1181f0ba5495d7de56fcf5c911d41 mutt-1-5-18-rel
a4b47ac32d32678c5c2d149d8770c97fbbf9aafb mutt-1-5-19-rel
f399371bb9b0176c35adc9ca3b88ce1d0bc9667b mutt-1-5-20-rel
25a7f8f7d50dbd2f301417fcb1c9d1337a8268bd mutt-1-5-21-rel
8c5ea668e7e072cfd7161023553b68072545f2d1 mutt-1-5-22-rel
b8a63730c8489a0dff577da8f1c8e31219a179e8 mutt-1-5-23-rel
08e81162482fb7b1680efa20b1740f693a8a35de mutt-1-5-24-rel
be82a2fde82fdd9057641e39e4df853d7ae4d4f2 mutt-1-6-rel


================================================
FILE: ABOUT-NLS
================================================
Notes on the Free Translation Project
*************************************

   Free software is going international!  The Free Translation Project
is a way to get maintainers of free software, translators, and users all
together, so that will gradually become able to speak many languages.
A few packages already provide translations for their messages.

   If you found this `ABOUT-NLS' file inside a distribution, you may
assume that the distributed package does use GNU `gettext' internally,
itself available at your nearest GNU archive site.  But you do _not_
need to install GNU `gettext' prior to configuring, installing or using
this package with messages translated.

   Installers will find here some useful hints.  These notes also
explain how users should proceed for getting the programs to use the
available translations.  They tell how people wanting to contribute and
work at translations should contact the appropriate team.

   When reporting bugs in the `intl/' directory or bugs which may be
related to internationalization, you should tell about the version of
`gettext' which is used.  The information can be found in the
`intl/VERSION' file, in internationalized packages.

Quick configuration advice
==========================

   If you want to exploit the full power of internationalization, you
should configure it using

     ./configure --with-included-gettext

to force usage of internationalizing routines provided within this
package, despite the existence of internationalizing capabilities in the
operating system where this package is being installed.  So far, only
the `gettext' implementation in the GNU C library version 2 provides as
many features (such as locale alias, message inheritance, automatic
charset conversion or plural form handling) as the implementation here.
It is also not possible to offer this additional functionality on top
of a `catgets' implementation.  Future versions of GNU `gettext' will
very likely convey even more functionality.  So it might be a good idea
to change to GNU `gettext' as soon as possible.

   So you need _not_ provide this option if you are using GNU libc 2 or
you have installed a recent copy of the GNU gettext package with the
included `libintl'.

INSTALL Matters
===============

   Some packages are "localizable" when properly installed; the
programs they contain can be made to speak your own native language.
Most such packages use GNU `gettext'.  Other packages have their own
ways to internationalization, predating GNU `gettext'.

   By default, this package will be installed to allow translation of
messages.  It will automatically detect whether the system already
provides the GNU `gettext' functions.  If not, the GNU `gettext' own
library will be used.  This library is wholly contained within this
package, usually in the `intl/' subdirectory, so prior installation of
the GNU `gettext' package is _not_ required.  Installers may use
special options at configuration time for changing the default
behaviour.  The commands:

     ./configure --with-included-gettext
     ./configure --disable-nls

will respectively bypass any pre-existing `gettext' to use the
internationalizing routines provided within this package, or else,
_totally_ disable translation of messages.

   When you already have GNU `gettext' installed on your system and run
configure without an option for your new package, `configure' will
probably detect the previously built and installed `libintl.a' file and
will decide to use this.  This might be not what is desirable.  You
should use the more recent version of the GNU `gettext' library.  I.e.
if the file `intl/VERSION' shows that the library which comes with this
package is more recent, you should use

     ./configure --with-included-gettext

to prevent auto-detection.

   The configuration process will not test for the `catgets' function
and therefore it will not be used.  The reason is that even an
emulation of `gettext' on top of `catgets' could not provide all the
extensions of the GNU `gettext' library.

   Internationalized packages have usually many `po/LL.po' files, where
LL gives an ISO 639 two-letter code identifying the language.  Unless
translations have been forbidden at `configure' time by using the
`--disable-nls' switch, all available translations are installed
together with the package.  However, the environment variable `LINGUAS'
may be set, prior to configuration, to limit the installed set.
`LINGUAS' should then contain a space separated list of two-letter
codes, stating which languages are allowed.

Using This Package
==================

   As a user, if your language has been installed for this package, you
only have to set the `LANG' environment variable to the appropriate
`LL_CC' combination.  Here `LL' is an ISO 639 two-letter language code,
and `CC' is an ISO 3166 two-letter country code.  For example, let's
suppose that you speak German and live in Germany.  At the shell
prompt, merely execute `setenv LANG de_DE' (in `csh'),
`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash').
This can be done from your `.login' or `.profile' file, once and for
all.

   You might think that the country code specification is redundant.
But in fact, some languages have dialects in different countries.  For
example, `de_AT' is used for Austria, and `pt_BR' for Brazil.  The
country code serves to distinguish the dialects.

   Not all programs have translations for all languages.  By default, an
English message is shown in place of a nonexistent translation.  If you
understand other languages, you can set up a priority list of languages.
This is done through a different environment variable, called
`LANGUAGE'.  GNU `gettext' gives preference to `LANGUAGE' over `LANG'
for the purpose of message handling, but you still need to have `LANG'
set to the primary language; this is required by other parts of the
system libraries.  For example, some Swedish users who would rather
read translations in German than English for when Swedish is not
available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'.

   In the `LANGUAGE' environment variable, but not in the `LANG'
environment variable, `LL_CC' combinations can be abbreviated as `LL'
to denote the language's main dialect.  For example, `de' is equivalent
to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT'
(Portuguese as spoken in Portugal) in this context.

Translating Teams
=================

   For the Free Translation Project to be a success, we need interested
people who like their own language and write it well, and who are also
able to synergize with other translators speaking the same language.
Each translation team has its own mailing list.  The up-to-date list of
teams can be found at the Free Translation Project's homepage,
`http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams"
area.

   If you'd like to volunteer to _work_ at translating messages, you
should become a member of the translating team for your own language.
The subscribing address is _not_ the same as the list itself, it has
`-request' appended.  For example, speakers of Swedish can send a
message to `sv-request@li.org', having this message body:

     subscribe

   Keep in mind that team members are expected to participate
_actively_ in translations, or at solving translational difficulties,
rather than merely lurking around.  If your team does not exist yet and
you want to start one, or if you are unsure about what to do or how to
get started, please write to `translation@iro.umontreal.ca' to reach the
coordinator for all translator teams.

   The English team is special.  It works at improving and uniformizing
the terminology in use.  Proven linguistic skill are praised more than
programming skill, here.

Available Packages
==================

   Languages are not equally supported in all packages.  The following
matrix shows the current state of internationalization, as of September
2001.  The matrix shows, in regard of each package, for which languages
PO files have been submitted to translation coordination, with a
translation percentage of at least 50%.

     Ready PO files    bg cs da de el en eo es et fi fr gl he hr id it ja
                     +----------------------------------------------------+
     a2ps            |          []             []    []                   |
     bash            |          []       [] []       []                   |
     bfd             |                                                    |
     binutils        |                               []                   |
     bison           |          []          [] []    []                [] |
     clisp           |          []    []    []       []                   |
     cpio            |       [] []          []       [] []                |
     diffutils       |       [] []       [] []       [] []       []       |
     enscript        |          []                   []                   |
     error           |                      []       []                   |
     fetchmail       |                                                    |
     fileutils       |    [] [] [] []       []       [] []             [] |
     findutils       |       [] []          [] []    [] []       [] []    |
     flex            |       []             []       []                   |
     freetype        |                                                    |
     gas             |                                                    |
     gawk            |                               []    []             |
     gcal            |                                                    |
     gcc             |                                                    |
     gettext         |    [] [] [] []       []       [] []       [] [] [] |
     gnupg           |          []       []    []    [] []          [] [] |
     gprof           |                                                    |
     grep            |    []    []       [] [] []    [] []          []    |
     hello           |       [] [] []    [] [] [] [] [] []          [] [] |
     id-utils        |       [] []                   []                   |
     indent          |       [] []             []    [] []                |
     jpilot          |                               []                   |
     kbd             |                                                    |
     ld              |                               []                   |
     libc            |    [] [] [] []       []       [] []             [] |
     lilypond        |                                                 [] |
     lynx            |    [] [] []                                     [] |
     m4              |    [] [] [] []                [] []       []    [] |
     make            |       [] []          []       [] []             [] |
     mysecretdiary   |          []                                        |
     nano            |                      []          []       []       |
     opcodes         |                                                    |
     parted          |          []                      []             [] |
     ptx             |       [] []          [] []    [] []       []       |
     python          |                                                    |
     recode          |       [] [] []    [] []       [] [] []       []    |
     sed             |    [] [] [] []    []    []    [] [] []    [] [] [] |
     sh-utils        |    [] [] [] []       [] []    [] []          [] [] |
     sharutils       |    [] [] [] []       []       [] []             [] |
     sketch          |                                                    |
     soundtracker    |          []          []          []                |
     sp              |                                                    |
     tar             |    [] [] []          [] []    []             [] [] |
     texinfo         |    [] [] []       []          []                [] |
     textutils       |    [] [] [] []       []       [] []             [] |
     util-linux      |    [] []                                           |
     wdiff           |       [] []             []                         |
     wget            |    [] [] [] []       [] []    [] [] []          [] |
                     +----------------------------------------------------+
                       bg cs da de el en eo es et fi fr gl he hr id it ja
                        0 14 24 32 11  1  8 23 13  1 33 22  4  0  7  9 18
     
                       ko lv nb nl nn no pl pt pt_BR ru sk sl sv tr uk zh
                     +----------------------------------------------------+
     a2ps            |          []                   []    []             |  6
     bash            |                                                    |  4
     bfd             |                                                    |  0
     binutils        |                                                    |  1
     bison           |                               []                   |  6
     clisp           |          []                                        |  5
     cpio            | []       []       []     []   []                   | 10
     diffutils       |                   []          []       [] []       | 11
     enscript        |          []              []   []                   |  5
     error           |                                  []       []       |  4
     fetchmail       |                                                    |  0
     fileutils       | []       []       []     []   [] [] [] [] []       | 17
     findutils       | []       []       []     []   []    [] [] []       | 16
     flex            | []                            []       []          |  6
     freetype        |                                                    |  0
     gas             |                                                    |  0
     gawk            |                                           []       |  3
     gcal            |                                                    |  0
     gcc             |                                                    |  0
     gettext         | []                []     []   []    [] [] []    [] | 18
     gnupg           |                   []                   [] []       | 10
     gprof           |                                                    |  0
     grep            |                   []                [] [] []       | 12
     hello           | [] [] [] []    [] []          [] []    [] [] []    | 22
     id-utils        |          []                   []       []          |  6
     indent          | []       []       []          [] []    [] []       | 12
     jpilot          |                                                    |  1
     kbd             |                                           []       |  1
     ld              |                                                    |  1
     libc            | []    []       [] []     []      []    [] []       | 16
     lilypond        |          []                            []          |  3
     lynx            |          []              []   []       []          |  8
     m4              |          []       []          []       []          | 12
     make            | []       []       []     []   []          []       | 12
     mysecretdiary   |                                                    |  1
     nano            |                                        []          |  4
     opcodes         |                                           []       |  1
     parted          |          []                   []                   |  5
     ptx             |       [] []    [] [] []       []       [] []       | 15
     python          |                                                    |  0
     recode          |                   []          []    [] []          | 13
     sed             |          []              []   [] [] [] [] []       | 19
     sh-utils        |       [] []    [] []     []   [] [] [] [] []    [] | 21
     sharutils       |          []                   []       []          | 11
     sketch          |                                                    |  0
     soundtracker    |                                                    |  3
     sp              |                                                    |  0
     tar             |       []       [] []     []         [] [] []       | 15
     texinfo         |                               []                   |  7
     textutils       |       [] []    [] []     []   [] [] []             | 16
     util-linux      |                          []               []       |  4
     wdiff           |                               [] []    [] []       |  7
     wget            |          []                   [] [] [] [] [] []    | 17
                     +----------------------------------------------------+
       33 teams        ko lv nb nl nn no pl pt pt_BR ru sk sl sv tr uk zh
       53 domains       9  1  6 20  0  6 17  1  13   25 10 11 23 21  2  2  387

   Some counters in the preceding matrix are higher than the number of
visible blocks let us expect.  This is because a few extra PO files are
used for implementing regional variants of languages, or language
dialects.

   For a PO file in the matrix above to be effective, the package to
which it applies should also have been internationalized and
distributed as such by its maintainer.  There might be an observable
lag between the mere existence a PO file and its wide availability in a
distribution.

   If September 2001 seems to be old, you may fetch a more recent copy
of this `ABOUT-NLS' file on most GNU archive sites.  The most
up-to-date matrix with full percentage details can be found at
`http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'.

Using `gettext' in new packages
===============================

   If you are writing a freely available program and want to
internationalize it you are welcome to use GNU `gettext' in your
package.  Of course you have to respect the GNU Library General Public
License which covers the use of the GNU `gettext' library.  This means
in particular that even non-free programs can use `libintl' as a shared
library, whereas only free software can use `libintl' as a static
library or use modified versions of `libintl'.

   Once the sources are changed appropriately and the setup can handle
to use of `gettext' the only thing missing are the translations.  The
Free Translation Project is also available for packages which are not
developed inside the GNU project.  Therefore the information given above
applies also for every other Free Software Project.  Contact
`translation@iro.umontreal.ca' to make the `.pot' files available to
the translation teams.



================================================
FILE: BEWARE
================================================
MUTT HACKERS BEWARE

A word of warning about string comparisons: Since mutt may run in a
huge variety of locales, case-insensitive string comparisons and
case conversions may be dangerous.  For instance, in iso-8859-9,
tolower('I') is DIFFERENT from 'i' - it's indeed the Turkish dotless
lowercase i.

For this reason, always use the ascii_* functions defined in ascii.h
and implemented in ascii.c when comparing or handling strings which
are defined as us-ascii.  This concerns lots of text-based
protocols, message header tags, character set names, domain names,
e-mail addresses, etc.

Thu Apr 26 15:40:11 CEST 2001, <roessler@does-not-exist.org>


================================================
FILE: COPYRIGHT
================================================
The following copyright notices apply to most of the program.  Some
modules are under different licenses, or in the public domain.

Please note that this is by no means an exhaustive list of all the
persons who have been contributing to this program.  Please see the
manual for a (probably still non complete) list of the persons who
have been helpful with the development of this program.  Please also
see our source code repository at http://dev.mutt.org/hg/mutt/ for
the full history of commits.

Copyright (C) 1996-2014 Michael R. Elkins <me@cs.hmc.edu>
Copyright (C) 1996-2002 Brandon Long <blong@fiction.net>
Copyright (C) 1997-2009 Thomas Roessler <roessler@does-not-exist.org>
Copyright (C) 1998-2005 Werner Koch <wk@isil.d.shuttle.de>
Copyright (C) 1999-2014 Brendan Cully <brendan@kublai.com>
Copyright (C) 1999-2002 Tommi Komulainen <Tommi.Komulainen@iki.fi>
Copyright (C) 2000-2004 Edmund Grimley Evans <edmundo@rano.org>
Copyright (C) 2006-2009 Rocco Rutte <pdmef@gmx.net>
Copyright (C) 2014-2015 Kevin J. McCarthy <kevin@8t8.us>

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.



================================================
FILE: ChangeLog
================================================
2016-04-01 09:38 -0700  Kevin McCarthy  <kevin@8t8.us>  (503bd3a3c818)

	* Makefile.am: Fix hcversion.h generation error when using included
	gettext.

	When configuring mutt with --enable-hcache and
	--with-included-gettext, there is an automake ordering issue:
	BUILT_SOURCES are processed before SUBDIRS. Therefore, the
	'hcversion.h' target is run before the included gettext (intl) is
	built.

	The hcversion.h target runs the cpp over config.h and mutt.h, but
	mutt.h includes lib.h which tries to #include <libintl.h>.
	Unfortunately, libintl.h (in this configuration) is generated by the
	intl subdir build and so doesn't exist yet.

	While the build doesn't completely fail, the resulting hcversion.h
	is incorrect: it's just the md5sum of the initial value of
	BASEVERSION.

	This fix is somewhat of a hack but is cleaner than trying to change
	automake's behavior. It inserts a '#undef ENABLE_NLS' in between the
	config.h and mutt.h sent to the cpp. Since hcachever.sh is just
	scanning the data structures used by mutt, this shouldn't affect the
	hash generated.

	Thanks to Will Yardley for reporting this issue.

2016-03-30 13:16 -0700  Kevin McCarthy  <kevin@8t8.us>  (6e0aca94cdb0)

	* mbyte.c: Filter out bidi marks in rfc2047 and rfc2231 encoding. (see
	#3827)

	Filter out U+200F RIGHT-TO-LEFT MARK and U+200E LEFT-TO-RIGHT MARK
	in rfc2047 and 2231 encoded fields. GNU Screen has a bug that
	corrupts the display, and can cause the wrong email to appear to be
	selected in the index. Until screen fixes the issue, filter it out
	in mutt.

2016-03-29 14:07 -0700  Kevin McCarthy  <kevin@8t8.us>  (96b7714fef87)

	* doc/manual.xml.head: Fix documentation: mime_lookup (not mime-
	lookup).

2016-03-29 15:06 +0200  Vincent Lefevre  <vincent@vinc17.net>  (47aeb87ce9cd)

	* doc/manual.xml.head: Fix typo.

2016-03-26 15:45 -0700  Kevin McCarthy  <kevin@8t8.us>  (62e478a3f1c8)

	* imap/imap.c: Fix error handling in sync_helper() and
	imap_sync_mailbox(). (closes #3817)

	This patch is based on the one Richard Russon found in the Fedora
	package.

	If an error occurs during one of the imap_exec() calls in
	imap_sync_mailbox(), the mailbox could end up being closed. This
	would cause idata->ctx to be NULL. Add a check in sync_helper() for
	the case where idata->ctx == NULL.

	In imap_sync_mailbox(), check the return value of sync_helper(). To
	keep the code simple, change rc from being the sum of the calls to
	the bitwise-OR of the calls. (We only need to know if a single flag
	needs to be updated, and bitwise-OR will detect negatives.)

	Below the calls to sync_helper(), if the call to imap_exec() fails,
	make sure rc is set to -1.

2016-03-26 13:30 -0700  TAKAHASHI Tamotsu  <ttakah@lapis.plala.or.jp>  (0b1f1daba437)

	* po/ja.po: Updated Japanese translation.

2016-03-24 12:07 -0700  Benno Schulenberg  <i18n@benno.vertaalt.nl>  (484b34e23f2a)

	* po/eo.po: Updated Esperanto translation.

2016-03-23 15:28 -0700  Kevin McCarthy  <kevin@8t8.us>  (55a389b96d0b)

	* imap/browse.c: Prevent renaming root folder in imap.

	The root folder results in mx.mbox being NULL, which causes a
	segfault. This can be triggered by entering a subfolder and trying
	to rename the ".." entry.

	Due to the translation string freeze, no visible error message is
	displayed. Add a TODO note about this for post-1.6 release.

2016-03-23 14:20 -0700  Kevin McCarthy  <kevin@8t8.us>  (27cde0a2fe32)

	* imap/browse.c: Fix uninitialized prompt buffer in
	imap_mailbox_rename(). (closes #3819)

	This is a patch from OpenBSD to initialize the newname buffer in
	imap_mailbox_rename(). Previously it would generate random garbage
	in the prompt.

	This version of the patch initializes the prompt to the old mailbox
	name.

	Thanks to TAKAHASHI Tamotsu for finding this patch.

2016-03-23 13:17 -0700  Kevin McCarthy  <kevin@8t8.us>  (789500dae762)

	* doc/manual.xml.head: Add "-d" command-line option to manual. (closes
	#3816)

	Thanks to Richard Russon for finding this patch in the Fedora
	package.

2016-03-23 13:06 -0700  Ivan Vilata i Balaguer  <ivan@selidor.net>  (180380cd9119)

	* po/ca.po: Updated Catalan translation.

2016-03-22 18:00 -0700  Kevin McCarthy  <kevin@8t8.us>  (a3450fd50d11)

	* curs_lib.c, protos.h: Clean up mutt_wstr_trunc() some more.

	* Change return type to size_t. The return value is the cumulation
	of values from mbrtowc(), which returns size_t. All callers already
	assign the return value to a size_t, requiring no external changes.

	* Change the local variables n, w, l, and cl to size_t. n is the
	strlen of the src parameter. l and cl are used for the return value.
	w is assigned to the *width parameter, which is size_t.

	 cw is kept as an int, because wcwidth returns type int.

	* Change error handling of mbrtowc to be the same as other functions
	in mutt: only reset mbstate when the retval==-1. When retvat==-2,
	set cl=n to break out of the loop. Also, set wc to replacement_char
	and allow the logic below to determine the width instead of
	hardcoding to 1.

2016-03-20 17:06 -0700  Karel Zak  <kzak@redhat.com>  (c8c76a6a1e61)

	* curs_lib.c: Improve error handling in mutt_wstr_trunc().

	This is Karel Zak's patch to fix handling of (illegal) multi-byte
	chars.

	 * mutt_wstr_trunc(): Reset mbstate after error in mbrtowc(). Set
	wc=0 if wcwidth returns < 0.

	Addresses: https://github.com/karelzak/mutt-kz/issues/58

	Thanks to Richard Russon for bringing this patch to our attention.

2016-03-22 12:35 -0700  Benno Schulenberg  <i18n@benno.vertaalt.nl>  (b302f9868d78)

	* po/nl.po: Updated Dutch translation.

2016-03-21 01:31 +0100  Vincent Lefevre  <vincent@vinc17.net>  (b3703e907d83)

	* po/fr.po: Updated French translation.

2016-03-20 15:38 -0700  Vsevolod Volkov  <vvv@mutt.org.ua>  (2a73a6e7c6e7)

	* po/ru.po: Updated Russian translation.

2016-03-20 15:36 -0700  Vsevolod Volkov  <vvv@mutt.org.ua>  (b3504a7b6cc2)

	* po/uk.po: Updated Ukrainian translation.

2016-03-20 15:30 -0700  Morten Bo Johansen  <mbj@spamcop.net>  (1f8e728ac6af)

	* po/da.po: Updated Danish translation.

2016-03-19 17:25 -0700  Kevin McCarthy  <kevin@8t8.us>  (7992020e522d)

	* sendlib.c: Turn off asserts in sendlib.c.

	The Doctor reported triggering an assertion in convert_file_to(),
	due to an unexpected errno from iconv(). According to the comments,
	the assertions were only enabled for debugging and should have been
	turned off. We certainly don't want to abort mutt for this case, so
	just disable them as the comment indicates.

2016-03-19 16:19 -0700  Petr Pisar  <petr.pisar@atlas.cz>  (36bf3b7ebd2c)

	* po/cs.po: Updated Czech translation.

2016-03-19 06:08 -0700  Kevin McCarthy  <kevin@8t8.us>  (36f855a4a2cc)

	* crypt-gpgme.c, init.c, mutt_ssl.c, pgp.c: Fix a few typos in
	translation messages.

	Thanks to Moritz Barsnick for reporting these.

2016-03-18 12:12 +0100  Vincent Lefevre  <vincent@vinc17.net>  (fb13f458ad16)

	* po/fr.po: Updated French translation.

2016-03-18 10:15 +0100  Vincent Lefevre  <vincent@vinc17.net>  (6630c196ecd8)

	* mutt_ssl.c: Fix typo in debug message.

2016-03-17 17:33 -0700  Richard Russon  <rich@flatcap.org>  (cbf073e5e0d7)

	* recvattach.c: Fix typo picked up by Debian's QA.

	This was allegedly fixed 5 years ago (see #3493).

2016-03-17 17:22 -0700  Richard Russon  <rich@flatcap.org>  (1fb2a924a7c0)

	* Makefile.am: Use '$(PACKAGE).pot' instead of 'mutt.pot' in
	Makefile.am

2016-03-17 17:12 -0700  Richard Russon  <rich@flatcap.org>  (80926cec6d41)

	* hcache.c, imap/auth_gss.c: Fix three build warnings when DEBUG isn't
	defined.

2016-03-16 14:15 -0700  Kevin McCarthy  <kevin@8t8.us>  (cc1af19c0763)

	* hcache.c: Fix tcbdb error reporting to use ecode, not errno.

	After committing aff8d62ebddb and taking a closer look at the tcbdb
	documentation, I realized those functions don't set errno.

	Change the error handling messages to instead get the ecode and
	message using tcbdbecode() and tcbdberrmsg().

2016-03-16 13:33 -0700  Kevin McCarthy  <kevin@8t8.us>  (aff8d62ebddb)

	* hcache.c: Fix crash in hcache_open_tc() when open fails and debug is
	on. (closes #3813)

	When the hcache open fails, it was trying to dprint. The dprint had
	a %s where it was passing errno, leading to a crash in strlen.

	Unify the dprint messages for tcdbopen and tcdbclose to report the
	path, strerror, and errno.

	Thanks to Will Yardley for capturing the stack trace!

2016-03-15 18:04 -0700  Kevin McCarthy  <kevin@8t8.us>  (29b254ac7c12)

	* mbox.c: Prevent ctx->fp from being closed twice in the event of an
	error.

	The previous patch from Vincent exposed a crash if ftruncate() fails
	in mbox_sync_mailbox(). Change fclose() to safe_fclose(), to avoid
	it being called twice.

2016-03-15 18:01 -0700  Vincent Lefevre  <vincent@vinc17.org>  (2a152212cd9a)

	* mbox.c: Check return value of ftruncate() in mbox_sync_mailbox().

	Generate an error in the event that ftruncate() fails.

2016-03-13 19:04 -0700  Kevin McCarthy  <kevin@8t8.us>  (73c8c033e184)

	* init.h: Update the $hostname documentation.

	Change to reflect the updates in changeset ce71d168c819.

2016-03-13 18:18 -0700  Kevin McCarthy  <kevin@8t8.us>  (ad14066bf6c1)

	* UPDATING: Update the UPDATING file for 1.6.0

2016-03-13 11:19 -0700  Kevin McCarthy  <kevin@8t8.us>  (90d0935c3142)

	* rfc2231.c: Fix RFC2231 continuation join order. (closes #3811)
	(closes #3741)

	The function generating a list of parts to join had incorrect
	sorting logic. It was comparing values, not attributes.
	Additionally, the order logic wasn't correct.

	Thanks to TAKAHASHI Tamotsu for pointing out the value vs attribute
	comparison bug.

2016-03-11 13:47 +0100  Vincent Lefevre  <vincent@vinc17.net>  (bd0e695f627e)

	* po/fr.po: Updated French translation.

2016-03-10 15:52 -0800  Kevin McCarthy  <kevin@8t8.us>  (b5f170446e14)

	* doc/manual.xml.head: Improve the mailto_allow documentation.

	Add to the commands list. Document unmailto_allow. Mention the new
	behavior in the Security Considerations section about mailto: links.

2016-03-10 14:59 -0800  Michael Elkins  <me@sigpipe.org>  (ad94dd58966b)

	* doc/manual.xml.head, doc/muttrc.man.head, globals.h, init.c, init.h,
	url.c: Restrict mailto header fields using mailto_allow.

	By default, only the body and subject fields are allowed. These can
	be changed with the mailto_allow and unmailto_allow commands.

2016-03-10 14:20 -0800  Kevin McCarthy  <kevin@8t8.us>  (b46ee6523400)

	* configure.ac: Check stat return value in configure.ac. (closes
	#3810)

2016-03-08 15:57 -0800  Kevin McCarthy  <kevin@8t8.us>  (d07d2e9f1e34)

	* init.h, main.c, mutt.h: Add $resume_edited_draft_files option.

	This adds an extra header when saving edited draft files (-E -H on
	the command line). With this header, the next time they are edited,
	they are automatically "resumed" (by setting $resume_draft_files).

	The idea is to prevent multiple user-defined headers and signatures
	from being added to the draft message by avoiding processing it as a
	brand new message after the first time.

2016-03-08 15:57 -0800  Kevin McCarthy  <kevin@8t8.us>  (24b4f14e9538)

	* init.h, mutt.h, send.c: Add $resume_draft_files option.

	When set, draft files are processed the same as when resuming
	postponed messages. One use of this option is to avoid multiple
	user-defined headers and signatures being added to the message.
	(e.g. when -E is used repeatedly on the draft files).

2016-03-08 13:12 -0800  Derek Martin  <code@pizzashack.org>  (ce71d168c819)

	* getdomain.c, init.c: Improve method of determining FQDN. (closes
	#3298)

	Rather than reading /etc/resolv.conf, use gethostname() and
	getaddrinfo() to get the canonical domain.

	Thanks to Vincent Lefèvre for the memory leak fix.

2016-03-02 15:08 -0800  Kevin McCarthy  <kevin@8t8.us>  (8e77637a1a69)

	* init.h: Document that GPGME doesn't support creating inline PGP
	messages.

2016-03-02 15:08 -0800  Kevin McCarthy  <kevin@8t8.us>  (6034900d1636)

	* crypt-gpgme.c: Add hard redraw for the gpgme application/pgp
	handler.

	Will Yardley reported display artifacts and keyboard issues after
	decrypting a traditional pgp message using gpgme. It turns out the
	gpgpme code path was missing a hard_redraw() to repaint the screen
	after pinentry.

2016-02-28 19:42 -0800  Kevin McCarthy  <kevin@8t8.us>  (d11b6776532f)

	* main.c, mutt.h, send.c: Draft file tweeks: rename flag, don't auto-
	abort on no change.

	Rename the flag to SENDDRAFTFILE since it will be used in contexts
	other than the body allocation.

	Don't automatically abort if the message was unchanged; it seems
	possible the draft files could be used as the entire message reply.

2016-02-15 19:44 -0800  Kevin McCarthy  <kevin@8t8.us>  (909cf6dd067c)

	* contrib/gpg.rc, crypt-gpgme.c, globals.h, init.h, pgp.c: Add
	$pgp_decryption_okay to verify multipart/encrypted are actually
	encrypted. (closes #3770)

	In pgp classic mode, if the $pgp_decrypt_command generated output,
	it assumed the content was encrypted. However, gpg will generate
	output even if the block is simply signed and armored text. The
	problem is that mutt was then printing mime headers labelling the
	output as encrypted text in the ui.

	Add a new option, and suggested value of: set
	pgp_decryption_okay="^\\[GNUPG:\\] DECRYPTION_OKAY" If set, the
	output from the decrypt command will be scanned for this regexp to
	confirm an actual decryption occurred.

	Note that gpgme already correctly rejects this form of spoofed
	message.

2016-02-11 15:12 -0800  Kevin McCarthy  <kevin@8t8.us>  (b55c6a64a07b)

	* crypt-gpgme.c: Update the status message after decryption using
	gpgpme.

	Change gpgme to behave the same as classic pgp mode: after a
	decryption, update the status message to overwrite the initial
	"Invoking PGP..." message.

2016-02-11 02:15 +0100  Vincent Lefevre  <vincent@vinc17.net>  (3b59ef2bf032)

	* po/fr.po: Updated French translation.

2016-02-07 10:15 -0800  Kevin McCarthy  <kevin@8t8.us>  (87c46e1f6f8c)

	* postpone.c: Fix pgp and smime decryption in mutt_prepare_template().

	Change the "combined" multipart decryption block to only work for
	pgp, since mutt_is_multipart_encrypted() currently only checks for
	pgp headers and it therefore only worked for pgp in the first place.

	Fix the newhdr->security to be based on what that function returns,
	instead of the "context" hdr passed in.

	Add a smime decryption block below when iterating through the
	content.

	Fix the application/pgp decryption block to assign to hdr->security
	using the type of the app/pgp part instead of hdr->content.

2016-02-07 10:15 -0800  Kevin McCarthy  <kevin@8t8.us>  (a4d885bb36ab)

	* compose.c, doc/manual.xml.head, doc/mutt.man, main.c, mutt.h,
	protos.h, send.c: Add new flag -E to modify draft/include file.
	(closes #3799)

	Specifying -E with -i will cause mutt to directly edit the include
	file.

	Specifying -E with -H will cause the draft file to be regenerated
	from the latest version of the email on exit.

	Improve -H so that it will read (and write) multipart messages.

2016-01-26 13:46 -0800  Kevin McCarthy  <kevin@8t8.us>  (e8f7a08cb7ac)

	* doc/manual.xml.head: Mention <what-key> under the key bindings
	documentation.

2016-01-23 12:30 -0800  Kevin McCarthy  <kevin@8t8.us>  (df42596d08fe)

	* lib.h: Increase HUGE_STRING size to 8192. (see #3804)

	The interface for editing a large number of recipients is poor and
	perhaps shouldn't be using a fixed buffer size. Until a redesign can
	be thought about, this will help.

2016-01-19 14:05 -0800  Kevin McCarthy  <kevin@8t8.us>  (b315c4d4ede7)

	* imap/auth_sasl.c, pop_auth.c, smtp.c: Make sasl authentication
	buffers dynamically sized. (see #3804)

	The reporter found that the current buffer of HUGE_STRING was
	insufficient in his case to encode the clientout response back to
	the server in imap_auth_sasl().

	Since sasl gives us the size of "clientout", we can dynamically
	malloc and resize the buffer as needed. This patch uses
	max(LONG_STRING, (clientoutlen*2)). This is sufficient to hold the
	base64 encoded value plus additional prefix/suffix needed in each
	protocol.

	The size is rechecked after each sasl_client_step() and resized as
	needed.

	Similar code is in pop_auth_sasl() and smtp_auth_sasl(), so convert
	all three to use a dynamic buffer.

2016-01-05 18:08 -0800  Kevin McCarthy  <kevin@8t8.us>  (7c0bd34546f4)

	* smime.c: Allow tab as a delimiter in smime .index files. (closes
	#3802)

	The old parsing code used fscanf, and so happened to allow a tab as
	a delimiter. Even though smime_keys.pl uses a space, some users
	maintain their own .index files by hand (using tab delimiters), so
	continue to allow that delimiter.

	Thanks to Andre for the bug report and patch.

2016-01-04 16:28 -0800  Kevin McCarthy  <kevin@8t8.us>  (cf4c1c21e58d)

	* compose.c: Add a couple missing ATTACHPTR->tree frees.

	While working on ticket 3800, I noticed the tree wasn't being freed
	inside OP_COMPOSE_EDIT_HEADERS. Add a free there, and in the cleanup
	at the end of mutt_compose_menu().

	A few other sections in mutt_compose_menu() are performing a free-
	on-error where the tree isn't allocated yet, so skip it for those.

	I believe this is actually not fixing a memory leak: all attachments
	are always at level 0 in the compose menu (as far as I know); so
	nothing is ever allocated in the tree pointer. However since other
	parts of the code in compose.c clean this up, it make sense to add
	them here too.

2016-01-04 13:57 -0800  S. Gilles  <sgilles@math.umd.edu>  (960017a249f7)

	* color.c: Prefer bright versions (8-15) of colors for brightXXX
	backgrounds.

	When a bright color is specified as a background, try to use the
	bright version of that color, falling back to the A_BLINK method
	only on terms which do not support enough colors.

2016-01-01 12:24 -0800  Kevin McCarthy  <kevin@8t8.us>  (d3f31cf9239e)

	* parse.c: Use strrchr to search for Received date separator. (closes
	#3798)

	Sample email provided by the submitter showed a Received header with
	a ";" at the end of each line, instead of a single ";" in front of
	the date. The emails are obviously not RFC compliant, but the fix is
	simple enough: find the last ";" using strrchr instead of the first.

2016-01-01 12:16 -0800  Kevin McCarthy  <kevin@8t8.us>  (cec45c0a405e)

	* doc/manual.xml.head: Update manual copyright too.

2016-01-01 12:07 -0800  Kevin McCarthy  <kevin@8t8.us>  (b74ce90c7ba1)

	* account.c, account.h, ascii.h, bcache.c, bcache.h, commands.c,
	crypt-gpgme.c, crypt.c, cryptglue.c, curs_lib.c, curs_main.c,
	enter.c, globals.h, imap/auth.c, imap/auth.h, imap/auth_sasl.c,
	imap/browse.c, imap/command.c, imap/imap.c, imap/imap.h,
	imap/imap_private.h, imap/message.c, imap/message.h, imap/util.c,
	init.h, keymap.c, lib.c, mutt_idna.c, mutt_sasl.c, mutt_sasl.h,
	pager.c, parse.c, pattern.c, pgp.c, pgp.h, pgpkey.c, pgplib.h,
	pgppacket.c, pop.c, postpone.c, rfc3676.c, rfc822.c, send.c,
	smime.c, smime.h, smime_keys.pl, smtp.c, url.c: Convert copyright
	years to all use 4 digit years.

	Vincent Lefèvre pointed out the common shortcut, e.g 1996-9, is
	actually not allowed for copyright years. Convert all the copyright
	years (for mutt files) to use 4 digits.

2016-01-01 12:07 -0800  Kevin McCarthy  <kevin@8t8.us>  (fdd3fdd6f708)

	* COPYRIGHT, account.h, attach.c, bcache.c, browser.c, buffy.c,
	buffy.h, color.c, compose.c, copy.c, crypt-gpgme.c, curs_lib.c,
	curs_main.c, enter.c, from.c, handler.c, headers.c,
	imap/auth_login.c, imap/command.c, imap/imap.c, imap/imap_private.h,
	imap/util.c, init.c, init.h, keymap.c, keymap.h, lib.c, lib.h,
	main.c, mbox.c, mh.c, mime.h, mutt.h, mutt_curses.h, mutt_idna.c,
	mutt_sasl.c, muttlib.c, mx.c, mx.h, pager.c, parse.c, pattern.c,
	pgp.c, pop.c, postpone.c, protos.h, query.c, recvattach.c,
	rfc1524.c, rfc2047.c, rfc822.c, send.c, sendlib.c, signal.c,
	smime_keys.pl, system.c: Update copyright notices.

	This patch only updates existing copyright notices in the source
	files, using commit dates since the last copyright update in commits
	e3af935cdb1a and f8fd60d8d3f2.

	Add a notice to the COPYRIGHT file to refer to our mercurial
	repository for the full commit history.

	Add myself to the COPYRIGHT file and smime_keys.pl file.

2016-01-01 09:52 -0800  Kevin McCarthy  <kevin@8t8.us>  (c6471322c68f)

	* compose.c: merge stable

2016-01-01 09:48 -0800  Kevin McCarthy  <kevin@8t8.us>  (f99561e22a99)

	* compose.c: Fix segfault when deleting and reusing attachment slots.
	(closes #3800)

	When attachments are deleted, delete_attachment() slides the entries
	down in the idx array, but forgets to NULL out the last vacated
	slot.

	If more attachments are added later on via OP_COMPOSE_EDIT_HEADERS
	and the Attach: pseudo-header, mutt_gen_attach_list() will attempt
	to re-use the ATTACHPTR in that last slot because it wasn't set to
	NULL. This will be pointing to freed memory and likely segfault (at
	best).

2015-12-17 12:25 -0800  Kevin McCarthy  <kevin@8t8.us>  (9480a363a68a)

	* init.h: Add missing "yes" to $recall option documentation.

	Also add a blurb about the <recall-message> function.

2015-12-17 07:37 -0800  Kevin McCarthy  <kevin@8t8.us>  (52df4013b0b7)

	* doc/manual.xml.head: Reword new f=f documentation.

	Reword a couple parts, as Oswald Buddenhagen suggested the original
	wording was somewhat confusing.

2015-12-15 15:29 -0800  Kevin McCarthy  <kevin@8t8.us>  (e52d3e9c83d8)

	* doc/manual.xml.head, init.h, mutt.h, rfc3676.c: Add
	$reflow_space_quotes option. (closes #3309)

	When viewing and replying to a flowed email, add spacing between the
	quotes to improve readability and interoperability with non-flowed
	replies.

	Add a section to the documentation discussing support for viewing
	and non-flowed replies to flowed emails.

2015-12-08 09:12 -0800  Kevin McCarthy  <kevin@8t8.us>  (02bc14ed1569)

	* merge stable

2015-12-08 09:11 -0800  Kevin McCarthy  <kevin@8t8.us>  (f542783e257d)

	* mh.c: Fix hash table key "use after free" in mh_check_mailbox().
	(closes #3797)

	The fnames hash uses the maildir->header->path as the key. As
	matches are found, the headers are freed. This inadvertantly also
	freed the key to the hashtable entry; the next hash_find() going to
	the same bucket might end up comparing keys with a freed string.

	This patch stores the path in the struct maildir canon_fname field
	(just as maildir_check_mailbox() does) and uses that as the hash key
	instead. This field isn't used outside of maildir_check_mailbox(),
	and is automatically freed for us in the maildir_move_to_context()
	call at the bottom of both functions.

	Note there are other ways to fix this problem:
	- Add a new mode to the hash table, causing it to strdup the keys and
	free them itself.
	- Delete the entries in the fnames hash, rather leaving them there.
	The first seems the cleanest, but would end up touching much more
	code. The second is also clean, but might have a negative
	performance impact.

	Additionally, peeking back in history to changeset 1d45a50b6f9b, it
	looks like the canon_fname used to be used by mh too, so perhaps
	removing the strdup may have been a mistake during refactoring at
	some point.

2015-12-07 12:22 +0100  Vincent Lefevre  <vincent@vinc17.net>  (72fbf15cd9a1)

	* po/fr.po: Updated French translation.

2015-12-03 15:23 -0800  Kevin McCarthy  <kevin@8t8.us>  (bce2a0e71bf6)

	* crypt.c: Provide a better prompt and error for inline PGP with
	attachments. (closes #3738)

	Change mutt_protect() to check for text/plain before trying to
	invoke crypt_pgp_traditional_encryptsign(). This way, mutt can
	provide a bit more specific prompt and error message.

	Since pgp_mime_auto says it will prompt in the event of any failure,
	keep the more generic prompt after the encryptsign call too.

2015-12-01 18:20 -0800  Kevin McCarthy  <kevin@8t8.us>  (5e5aff1782dc)

	* crypt.c: Loosen mutt_signed_handler() protocol value consistency
	check. (closes #3639)

	Apparently, for S/MIME, some MUAs mismatch the protocol value of the
	multipart/signed and the content-type of the signature: putting
	"pkcs7-signature" in one and "x-pkcs7-signature" in the other.

	Change mutt_signed_handler() to independently verify the values of
	the protocol and the content-type. This still checks for correct
	values but doesn't ensure they match between the two (for S/MIME).

2015-11-30 15:52 -0800  Kevin McCarthy  <kevin@8t8.us>  (428a92464d5b)

	* contrib/smime.rc, globals.h, init.h, smime.c: smime: allow signing
	message digest algorithm to be specified.

	Currently, Mutt hardcodes micalg=sha1 for signed messages.
	Unfortunately, the actual message digest algorithm used defaults to
	the value in the "Signature Algorithm" field in the signing key's
	certificate.

	Add a new configuration option $smime_sign_digest_alg, defaulting to
	sha256. Add a new printf format string, %d, to be used in the
	signing command to specify the digest algorithm. Modify the sample
	$smime_sign_command to include "-md %d".

	Note: This solution requires using the modified $smime_sign_command,
	or else the micalg parameter again may not match the algorithm used.
	An alternative solution would be to query the certificate "Signature
	Algorithm" field and try to change the micalg to match it, but this
	method is easier to implement and provides better control for the
	user to configure, in any case.

2015-11-26 11:01 -0800  Kevin McCarthy  <kevin@8t8.us>  (ff560d1f3f7a)

	* smtp.c: Clean up address_uses_unicode() (closes #3794)

	Pull the null check out of the loop. Use a bit comparison to detect
	if the high bit is set: this avoids a warning for platforms where
	char is implicitly signed (where comparing < 128 is always true).

2015-11-24 21:45 -0800  Kevin McCarthy  <kevin@8t8.us>  (94186a96ca17)

	* mutt_idna.c: Fix bad idn error on local mailboxes. (closes #3795)

	Commit 831abf39d53a pulled the mbox_to_udomain() call inside the
	conversion functions. Unfortunately, this causes local (user only)
	mailboxes to be considered conversion errors instead of just
	skipping them.

	Revert mbox_to_udomain() back to using a static buffer and pull back
	into the mutt_addrlist_to_local/intl() functions.

	Pass the user and domain into the conversion functions instead of
	the address.

2015-11-24 15:49 -0800  Kevin McCarthy  <kevin@8t8.us>  (0d7ce56bbafd)

	* mutt_idna.c: Add user reversibility check in intl_to_local.

	This ensures we don't lose information by converting to the local
	charset.

2015-11-24 15:49 -0800  Kevin McCarthy  <kevin@8t8.us>  (935c779db0ea)

	* smtp.c: Implement SMTPUTF8 capability support in smtp.c

	This is patch 4 of 4 implementing support for SMTPUTF8 (RFC 6531).

	RFC6532 support already worked: rfc822*.c already parsed messages in
	exactly the way RFC6532 wants.

	Thanks for Arnt Gulbrandsen for the original patch.

2015-11-24 15:49 -0800  Kevin McCarthy  <kevin@8t8.us>  (151ff413e21a)

	* init.h, mutt.h, mutt_idna.c: Add option 'idn_encode'; rename option
	'use_idn' to 'idn_decode'.

	This is patch 3 of 4 implementing support for SMTPUTF8 (RFC 6531).

	Add an option to control whether international domains are encoded
	with IDN or not. This defaults to set, for backward compatibility.

	Rename the use_idn option to idn_decode, since that more properly
	reflects its purpose.

2015-11-24 15:49 -0800  Kevin McCarthy  <kevin@8t8.us>  (831abf39d53a)

	* mutt_idna.c: Rewrite address local-to-intl conversion functions.

	This is patch 2 of 4 implementing support for SMTPUTF8 (RFC 6531).

	Perform charset conversion from local to UTF-8 for both the user and
	domain parts of the address.

	If IDN is enabled and the options (added in the next patch) are
	turned on, encode/decode the domain part.

	Use the intl_checked and is_intl status bits to record the
	intl/local status of the ADDRESS mailbox part.

2015-11-24 15:49 -0800  Kevin McCarthy  <kevin@8t8.us>  (814ece9689cc)

	* Makefile.am, alias.c, commands.c, compose.c, configure.ac, edit.c,
	init.c, main.c, mutt_idna.c, mutt_idna.h, query.c, recvcmd.c,
	rfc822.c, rfc822.h, send.c, sendlib.c: Rename idna functions and
	bits for smtputf8 changes.

	This is patch 1 of 4 implementing support for SMTPUTF8 (RFC 6531).

	Change mutt_idna.c to be always compiled. Remove the stub functions
	in mutt_idna.h. Instead, put #ifdefs around the idna function calls.
	The conversion functions will be fixed up in the next patch.

	Rename the conversion functions to mutt_addrlist_to_intl() and
	mutt_env_to_intl(). Rename the ADDRESS idna status bits to "intl"
	status bits.

2015-11-21 15:28 -0800  Kevin McCarthy  <kevin@8t8.us>  (e635ce43b001)

	* imap/browse.c: Remove redundant mbox delimiter check in
	imap_browse(). (closes #3646)

	imap_fix_path() removes duplicate and trailing delimiters, so the
	check below it was redundant. This also made it appear list.delim
	could be used uninitialized.

	Remove the check, but add a check to make sure the "fixed" path has
	len>0, to prevent oob accesses of mbox[n-1] below.

	Lastly, remove a redundant n=strlen(mbox) inside the initial LIST
	processing loop. The mbox isn't changed from above, so there is no
	need to rerun strlen.

2015-11-18 16:14 -0800  Kevin McCarthy  <kevin@8t8.us>  (444f1f013f1b)

	* enter.c: Fix memcpy buf=NULL/len=0 issue in replace_part(). (closes
	#3790)

	Calling memcpy with src or dest=NULL is technically illegal, even if
	len=0. Recent compilers seem to now be generating warnings/errors
	with this.

	replace_part() is currently the only place we are getting bug
	reports, so for now just fix the problem in this one place.

2015-11-09 18:53 -0800  Kevin McCarthy  <kevin@8t8.us>  (c799162691b2)

	* pattern.c: Improve error messages for eat_date() and eat_regexp().

	After calling mutt_extract_token(), s->dptr will typically be at the
	end of the string if an error occurred. Save a pointer to the
	beginning of the expression, so it can be properly displayed in the
	error message.

	Convert eat_date() and eat_regexp() to use the same iconv strings
	for the error message.

2015-11-09 15:40 -0800  Kevin McCarthy  <kevin@8t8.us>  (1c151d8800de)

	* curs_lib.c, lib.h, pattern.c, rfc2047.c, rfc822.c: Fix possible
	unintentional '\0' strchr matches.

	After fixing the ticket 3787 strchr issue, this patch cleans up
	other potentially incorrect uses of strchr for the '\0' case.

	In mutt_multi_choice(), mutt_getch() can technically return 0.
	Although it seems the user would have to try quite hard to do this,
	it's incorrect to return that index into letters. Change "ch.ch==0"
	to be considered the same as an abort.

	is_email_wsp() is used in a couple places where it wasn't obvious
	whether '\0' was being accounted for, so add an explicit check to
	the function.

	Inside eat_date(), if mutt_extract_token() had no input and returned
	"", the strchr ("<>=", buffer.data[0]) below would return a pointer.
	In actuality, this is prevented by an empty parameter check inside
	mutt_pattern_comp(), but it doesn't hurt to make it the same as
	eat_regexp() and have the check explicitly done here too.

	rfc2047_encode() was another borderline case for adding a check. The
	convert_string() sets a length, so it seems highly unlikely that *t
	could be 0, but doesn't hurt to add the check.

	The find_encoded_word() fix looks necessary. If the passed in s was
	something like "=?charset?" (followed by EOS, '\0'), the
	strchr("BbQq", q[1]) would in fact return a pointer and the
	following q[2] would read past the end of string. If q[2] happened
	to be '?', it might even continue reading in the for loop below.

	Lastly, in parse_mailboxdomain(), the potential overread was already
	fixed in changeset:a6919571eb59, but although the nonspecial and
	special strchr() line happens to "work" for the case of '\0', it's
	pretty fragile to leave as is. It's better to be explicit and just
	return if we hit EOS without calling next_token().

2015-10-20 17:59 +0200  Vincent Lefevre  <vincent@vinc17.net>  (17991330c086)

	* po/fr.po: Updated French translation.

2015-10-18 20:05 +0800  Kevin McCarthy  <kevin@8t8.us>  (41af5a753d6f)

	* merge stable

2015-10-18 19:45 +0800  Kevin McCarthy  <kevin@8t8.us>  (a6919571eb59)

	* rfc822.c: Fix next_token() oob read. (closes #3787)

	With specially crafted input to 'mutt -H', the line "Return-Path:<()
	" is read and passed to mutt_parse_rfc822_line(). "<() " is then
	passed through to rfc822_parse_adrlist().

	Eventually, inside next_token(), is_special(*s) is called when s
	points to the end of the string ('\0'). This macro calls strchr,
	which will actually match and return a pointer to the trailing '\0'
	in RFC822Specials! This causes "s + 1" to be returned, skipping past
	the end of string inside parse_mailboxdomain().

	This patch adds a check to make sure *s is non-null before calling
	is_special(*s).

2015-10-17 11:15 +0800  Kevin McCarthy  <kevin@8t8.us>  (19c3406fbad9)

	* compose.c: Fix error message for attach-message. (closes #3785)

	Currently if mx_open_mailbox() fails when trying to attach a
	message, mutt_perror() is called. Change this to call mutt_error()
	instead, since errno isn't set for all failure cases.

2015-10-08 13:17 +0200  Vincent Lefevre  <vincent@vinc17.net>  (7aa4e6fc6884)

	* po/fr.po: Updated French translation.

2015-10-04 10:08 +0800  Kevin McCarthy  <kevin@8t8.us>  (a07e8215a0ef)

	* browser.c, commands.c, curs_lib.c, curs_main.c, keymap.c, menu.c,
	mutt.h, mutt_curses.h, mutt_ssl.c, mutt_ssl_gnutls.c: Create a
	separate macro/push/exec event buffer. (closes #3779)

	Currently, the SSL and TLS certficate prompts turn on
	OPTUNBUFFEREDINPUT, (to prevent macros and such from running right
	through the dialog). Unfortunately, the menu dialog processing in
	menu_dialog_dokey() is using mutt_ungetch() to forward non-dialog
	keys on to standard menu processing. With OPTUNBUFFEREDINPUT set,
	those keys never make it to the menu and are buffered until after
	the menu dialog.

	This patch creates a new event buffer, separate from the standard
	"unget" buffer, for use by macros, exec, and push events. These
	events can be temporarily ignored by setting OPTIGNOREMACROEVENTS
	(renamed from OPTUNBUFFEREDINPUT), while continuing to allow unget
	events to be processed.

	Since the "push" and "unget" functions now go to different buffers,
	function names were slightly renamed, to make it less easy to
	unintentionally use the wrong function at the wrong time.

2015-10-04 10:08 +0800  Kevin McCarthy  <kevin@8t8.us>  (ac156dcc2c54)

	* menu.c, mutt_ssl.c, mutt_ssl_gnutls.c: Fix menu type in certificate
	prompt. (see #3779)

	The menu type is used in several places as a direct index into
	Keymaps[], so passing in -1 to mutt_new_menu() was leading to
	illegal memory accesses later on.

	Add a range check in mutt_new_menu(), defaulting to MENU_GENERIC, to
	prevent this problem in the future.

2015-10-01 15:38 +0800  Kevin McCarthy  <kevin@8t8.us>  (9de2f1c6da87)

	* compose.c: Improve prompt when switching between PGP and S/MIME.
	(closes #3777)

	Only prompt when encrypt or sign is enabled.

	Also, improve oppenc to run and refresh the status when switching.

2015-09-30 11:25 +0800  Kevin McCarthy  <kevin@8t8.us>  (909dfe9878ff)

	* smime.c: Fix chomp in smime_handle_cert_email.

	During a review of the previous patch, Oswald Buddenhagen noticed
	two of the fixed oob reads had another problem: they were "chomping"
	(the newline) without verifying there actually was a newline at the
	end of the string.

2015-09-30 11:25 +0800  Kevin McCarthy  <kevin@8t8.us>  (d9142ca37afb)

	* smime.c: merge stable

2015-09-30 11:21 +0800  Kevin McCarthy  <kevin@8t8.us>  (590ff6eebe1a)

	* parse.c, smime.c, smtp.c: Fix oob reads when fgets returns "\0".
	(closes #3776)

	The ticket reported an out of bounds read in mutt_read_rfc822_line()
	when a '\0' was embedded on its own line in the headers. The
	function assumed if fgets() didn't return NULL, then the string
	would have at least one character.

	I scanned the rest of the code and found three other places making
	the same assumption for fgets.

	Thanks to hanno for finding this with the "american fuzzy lop" tool.

2015-09-20 20:37 -0400  Derek Schrock  <dereks@lifeofadishwasher.com>  (aec82c4dd826)

	* UPDATING, hdrline.c, init.h, send.c: Add new optional index_format
	expandos %r and %R.

	These generate a comma separated list of all the To and Cc
	recipients.

	Also, increase the attribution buffer size to accommodate these new
	expandos.

2015-09-21 10:28 +0800  bat guano  <bat.guano@don.blech.e4ward.com>  (93c6ae1ef01b)

	* po/de.po: German translation fix. (closes #3701)

2015-09-20 19:05 +0800  TAKAHASHI Tamotsu  <ttakah@lapis.plala.or.jp>  (2fdec286cfb7)

	* po/ja.po: Updated Japanese translation.

2015-09-20 18:58 +0800  Kevin McCarthy  <kevin@8t8.us>  (61c754a8effd)

	* pager.c: Translation improvements.

	Thanks to TAKAHASHI Tamotsu for pointing out these ones I missed.

2015-09-13 14:41 +0800  Kevin McCarthy  <kevin@8t8.us>  (e85eda4ee425)

	* po/Makefile.in.in, po/bg.po, po/hu.po, po/ko.po, po/pt_BR.po,
	po/uk.po: Enable msgfmt translation check flag -c.

	Fix discovered translation format string errors.

2015-09-13 11:47 +0800  Kevin McCarthy  <kevin@8t8.us>  (6eb6b41f5d45)

	* compose.c, crypt-gpgme.c, curs_main.c, edit.c, editmsg.c,
	imap/message.c, mutt_ssl.c, muttlib.c, pgp.c, send.c, smime.c: Add
	translation comments and improvements.

	These were suggested by TAKAHASHI Tamotsu.

2015-09-12 11:25 +0800  Kevin McCarthy  <kevin@8t8.us>  (1a281a527cb7)

	* crypt-gpgme.c: Improve translation string in crypt-gpgme.c

	Combine into a single buffer to make the translation easier. Also,
	mark a couple todos for alignment problems.

2015-09-06 16:31 -0700  Kevin McCarthy  <kevin@8t8.us>  (2dac9fa02842)

	* imap/browse.c: Fix double-decode during IMAP browse.

	cmd_parse_list() already calls imap_unmunge_mbox_name() on the
	mailbox names returned from the server. However,
	browse_add_list_result() was taking those mailbox names and passing
	them to imap_add_folder(), which was calling
	imap_unmunge_mbox_name() yet again.

	The reason is that imap_browse() was directly calling
	imap_add_folder() too, passing in a previously encoded "mbox" name.
	After looking carefully at the code, I could find no reason that
	mbox needed to be encoded outside of the LIST commands.. Therefore I
	changed imap_browse() to call imap_munge_mbox_name() on mbox for the
	two LIST commands generated from it instead, and removed the
	imap_unmunge_mbox_name() call inside imap_add_folder().

2015-09-06 07:41 -0700  Kevin McCarthy  <kevin@8t8.us>  (c6a6b7d3b83d)

	* merge stable

2015-09-06 07:40 -0700  Kevin McCarthy  <kevin@8t8.us>  (40c47fcc9d17)

	* mx.c: Fix use after free of ctx->last_tag. (closes #3775)

	When using imap to access gmail, tagging and saving messages to "all
	mail" and pressing <sync-mailbox> can result in the call path:
	mx_check_mailbox() imap_check_mailbox() imap_cmd_finish()
	imap_expunge_mailbox() mx_update_tables() followed by:
	mx_sync_mailbox()

	The HEADER pointed to by ctx->last_tag will be removed and FREE'ed
	in mx_update_tables(), but will subsequently be accessed in
	mx_sync_mailbox().

	This patch simply sets ctx->last_tag=NULL if it is freed inside
	mx_update_tables().

	Thanks to Peter Lekensteyn for the bug report and ASAN report.

2015-09-05 19:55 -0700  Morten Bo Johansen  <mbj@spamcop.net>  (58cbc3235db6)

	* po/da.po: Updated Danish translation.

2014-07-17 16:05 +0200  Kevin McCarthy  <kevin@8t8.us>  (bd2c2a6058a7)

	* imap/browse.c, imap/command.c, imap/imap.c, imap/imap_private.h,
	imap/message.c, imap/utf7.c, imap/util.c: Add support for utf-8
	mailboxes in imap.

	This adds support for RFC6855 to imap/*.c.

	Thanks to Arnt Gulbrandsen for the original patch.

2015-09-02 18:14 -0700  Kevin McCarthy  <kevin@8t8.us>  (5700b43f1e5b)

	* crypt-gpgme.c: merge stable

2015-09-02 18:11 -0700  Kevin McCarthy  <kevin@8t8.us>  (f675e853af12)

	* crypt-gpgme.c: Add time_t conversion to fix gpgme segfault on
	OpenBSD.

	time_t isn't the same size as gpgme_subkey_t->timestamp on OpenBSD.
	Passing &subkey->timestamp to localtime was therefore passing an
	address to the wrong size int and was causing a segfault.

	Thanks to Hannes Wenzel for reporting the bug and providing a patch.

2015-09-02 15:02 -0700  Kevin McCarthy  <kevin@8t8.us>  (8bbcfa2af7b6)

	* crypt-gpgme.c, pgp.c, smime.c: Add L10N messages for the pgp/smime
	send menus.

	This documents the 'f' "forget it" choice for translators.

	Thanks to Benno Schulenberg for pointing this out and for the
	original patch.

2015-09-02 14:43 -0700  Kevin McCarthy  <kevin@8t8.us>  (f7859d96006c)

	* alias.c, curs_main.c, doc/devel-notes.txt, po/Makefile.in.in: Flag
	translator comments using L10N.

	Add comment to devel-notes.txt documentation.

2015-08-31 09:32 -0700  Kevin McCarthy  <kevin@8t8.us>  (62730ecbc17d)

	* mkinstalldirs: merge default into stable

2015-08-30 10:27 -0700  Kevin McCarthy  <kevin@8t8.us>  (2f0d516fc638)

	* .hgsigs: mutt-1.5.24 signed

2015-08-30 10:26 -0700  Kevin McCarthy  <kevin@8t8.us>  (a494c8f932fa)

	* .hgtags: Added tag mutt-1-5-24-rel for changeset 08e81162482f

2015-08-30 10:26 -0700  Kevin McCarthy  <kevin@8t8.us>  (08e81162482f)

	* ChangeLog, VERSION, po/bg.po, po/ca.po, po/cs.po, po/da.po,
	po/de.po, po/el.po, po/eo.po, po/es.po, po/et.po, po/eu.po,
	po/fr.po, po/ga.po, po/gl.po, po/hu.po, po/id.po, po/it.po,
	po/ja.po, po/ko.po, po/lt.po, po/nl.po, po/pl.po, po/pt_BR.po,
	po/ru.po, po/sk.po, po/sv.po, po/tr.po, po/uk.po, po/zh_CN.po,
	po/zh_TW.po: automatic post-release commit for mutt-1.5.24

2015-08-30 10:21 -0700  Benno Schulenberg  <i18n@benno.vertaalt.nl>  (d9b1c4b6662f)

	* po/eo.po: Partially updated Esperanto translation.

2015-08-30 10:18 -0700  Benno Schulenberg  <i18n@benno.vertaalt.nl>  (b9864644b6a2)

	* commands.c: Minor translation fixes.

	This makes two equivalent translation messages the exact same so
	they only need to be translated once.

	It also adds a missing translation marker (for the same string).

	This same string is used in recvcmd.c so does not generate a new
	translation string.

2015-08-30 10:08 -0700  Kevin McCarthy  <kevin@8t8.us>  (934fbd272ce6)

	* UPDATING: Set release date. Minor fixes to release notes.

2015-08-29 12:51 -0700  Ivan Vilata i Balaguer  <ivan@selidor.net>  (faa85ed8a7c9)

	* po/ca.po: Updated Catalan translation.

2015-08-29 12:40 -0700  Benno Schulenberg  <i18n@benno.vertaalt.nl>  (14a2ad40e954)

	* po/nl.po: Updated Dutch translation.

2015-08-29 07:40 -0700  Benno Schulenberg  <i18n@benno.vertaalt.nl>  (0d346dc8dccb)

	* smime.c: Minor translation fix.

	This makes two equivalent translation messages the exact same so
	they only need to be translated once.

2015-08-28 07:35 -0700  TAKAHASHI Tamotsu  <ttakah@lapis.plala.or.jp>  (e33ba8f72a40)

	* po/ja.po: Updated Japanese translation.

2015-08-20 11:18 -0700  Vsevolod Volkov  <vvv@mutt.org.ua>  (b3c095648df6)

	* po/ru.po: Updated Russian translation.

2015-08-19 09:41 -0700  Petr Pisar  <petr.pisar@atlas.cz>  (83760f05bb46)

	* po/cs.po: Updated Czech translation

2015-08-17 14:51 -0700  Kevin McCarthy  <kevin@8t8.us>  (c0180991c352)

	* configure.ac: Add idn to MUTTLIBS instead of LIBS (see #3638)

	Currently, -lidn is included while linking all the mutt binaries.
	Add it to MUTTLIBS instead so it's only used for the mutt linking.

	Also, add $LIBICONV to $LIBS before checking for some of the idna
	functions. On some sytems, there are apparently issues when using
	static linking. (Thanks to grarpamp for reporting).

2015-08-17 12:31 -0700  Kevin McCarthy  <kevin@8t8.us>  (356443232291)

	* muttlib.c, protos.h: Change mutt_adv_mktemp to call mutt_mktemp
	instead of mktemp. (see #3638).

	mutt_mktemp is currently called in 95% of the cases in mutt, and is
	already our "own rolled" version of mktemp. The "insecure mktemp
	warning" discussion keeps coming up, so instead add prefix and
	suffix functionality to mutt_mktemp() and call that.

	All other uses of Tempdir in the mutt source did not call
	mutt_expand_path() first, so remove that from mutt_adv_mktemp().

2015-08-17 12:26 -0700  Kevin McCarthy  <kevin@8t8.us>  (8b2fe6a4db79)

	* configure.ac: Enable C99 mode for compiler. (See #3638).

	This is already the default for clang (FreeBSD) so shouldn't cause
	any issues.

	Enabling this will increase the allowed static string length and
	remove the Copyright length warning.

2015-08-11 11:20 -0700  Kevin McCarthy  <kevin@8t8.us>  (55ea6e829b46)

	* Makefile.am: Compile txt2c using automake rules.

	The compilation rule used $< which isn't portable for ordinary make
	rules.

2015-08-11 11:20 -0700  David Champion  <dgc@bikeshed.us>  (eb4aaf4581ac)

	* txt2c.sh: Fix txt2c.sh sed invocations to use posix syntax.

2015-08-07 03:38 +0200  Vincent Lefevre  <vincent@vinc17.net>  (711708700602)

	* po/fr.po: Updated French translation.

2015-07-29 09:26 -0700  Kevin McCarthy  <kevin@8t8.us>  (34ca1c5fdd45)

	* doc/manual.xml.head: Minor documentation fix.

	In one place, the documentation mentioned 'alternative-order'
	instead of 'alternative_order'.

2015-07-29 09:07 -0700  Kevin McCarthy  <kevin@8t8.us>  (75e398daa94c)

	* doc/manual.xml.head, hook.c: Add error handling for ^ and other
	empty mailbox shortcuts.

	(closes #2402) (closes #3735)

	Explicitly mention the ^ example in the documentation added in
	6d733cab6b45.

	Add an error message for ^ when CurrentFolder is not set. Add checks
	for other mailbox shortcuts that expand to the empty string. This
	could happen if the @alias shortcut was accidentally used, or the
	value referenced by a shortcut isn't set yet.

2015-07-27 14:09 -0700  Kevin McCarthy  <kevin@8t8.us>  (6d733cab6b45)

	* doc/manual.xml.head: Add "Mailbox Matching in Hooks" section to
	manual.

	Folder-hook and mbox-hook perform mailbox shortcut expansion on the
	regexp parameter. Add a section to the manual to give examples and
	make the behavior clearer.

2015-07-26 14:48 -0700  Kevin McCarthy  <kevin@8t8.us>  (21a08f9abc80)

	* crypt-gpgme.c, crypt.c, handler.c, mutt_crypt.h, pgp.c,
	recvattach.c: Handle malformed ms-exchange pgp-encrypted block.
	(closes #3742)

	In certain circumstances, Exchange corrupts a multipart/encrypted
	block into: <multipart/mixed> <text/plain> <application /pgp-
	encrypted> [BASE64-encoded] <application/octet-stream>
	[BASE64-encoded]

	This patch pulls the full detection of valid/invalid multiparts into
	mutt_body_handler(). It extracts a run_decode_and_handler()
	function, which is reused by new intermediate handlers to decode the
	application/octet-stream part before passing it directly to
	crypt_pgp_encrypted_handler. These intermediate handlers then check
	and set any GOODSIG flags back into the parent part.

	This change may result in less error messages for invalid
	multipart/encrypted parts. Instead, mutt will default to the
	multipart_handler if it isn't fully "correct".

	Viewing attachments uses crypt_pgp_decrypt_mime() which bypasses the
	handler mechanism. Add decoding to the decrypt_mime() functions for
	pgp and gpgme.

	Thanks to Vincent Brillault for his analysis and initial patch.

2015-07-18 18:40 +0200  Martin Sandsmark  <martin@sandsmark.ninja>  (e40e3e0391ea)

	* UPDATING, buffy.c, init.h, mutt.h: Add support for checking cur/ in
	Maildir for unread mails in buffy.

	Also skip messages with the S flag when checking for unread mails.

2015-07-24 13:36 -0700  Kevin McCarthy  <kevin@8t8.us>  (fdafc56a854f)

	* doc/Makefile.am: Set AUTOMAKE_OPTIONS in doc/Makefile.am. (closes
	#3766)

	Add the "foreign" option to silence warnings generated by
	flymake.am.

2015-07-24 13:15 -0700  Kevin McCarthy  <kevin@8t8.us>  (cbae8642cb3d)

	* UPDATING: Update the UPDATING file with changes since 1.5.23.

2015-07-23 14:57 -0700  Kevin McCarthy  <kevin@8t8.us>  (8c16206f50a1)

	* hcache.c, help.c, imap/util.c, protos.h, sendlib.c: Fix compiler
	type warnings. (closes #3765)

	The output of mutt_local_tz() was being passed to abs(). Technically
	the return type is time_t, but it represents a small value: the
	timezone offset in seconds. Add a safe explicit cast to int.

	Change the txt parameter of mutt_make_help() to type const char *.
	Typically all calls run the txt parameter through _(), which accepts
	const char * and returns a char *. However, if NLS is not enabled,
	_() is a noop, simply returning the parameter itself. In
	mutt_compile_help(), items[i].name is const char *, so it will
	generate a warning when passed as the txt parameter of
	mutt_make_help().

	On some systems, e.g. OS X, snprintf is defined as a macro. One call
	in hcache.c was embedding directives inside the snprintf call. This
	is apparently undefined behavior, so duplicate the call instead.

2015-07-22 19:23 -0700  Kevin McCarthy  <kevin@8t8.us>  (c60fed102d79)

	* imap/message.c, keymap.c, pop_lib.c: Fix a few small compiler
	warnings. (See #3638)

	In certain configurations, unused variables and labels were causing
	warnings.

	Add a missing "#include <netinet/in.h>" to pop_lib.c.

2015-07-21 12:41 -0700  Kevin McCarthy  <kevin@8t8.us>  (704e0622cc67)

	* imap/imap.c: merge stable

2015-07-21 12:34 -0700  Kevin McCarthy  <kevin@8t8.us>  (e5fe2f80e797)

	* imap/imap.c: Imap: Fix flag caching after sync.

	The flags cached in IMAP_HEADER_DATA were not updated to match the
	HEADER flags after a sync. This means if a flag were toggled and
	synced twice, the second sync was not sending the flag update.

	Thanks to Noah Misch for the patch.

2015-07-19 15:55 -0700  Kevin McCarthy  <kevin@8t8.us>  (100835c4a8ac)

	* init.h: Add note about gpg fixed-list-mode. (closes #3763).

	Thanks to Gregor Zattler for the original patch.

2015-07-11 14:36 -0700  Kevin McCarthy  <kevin@8t8.us>  (2ca89bed6448)

	* main.c: Fix batch mode lockup. (closes #3761) (closes #3760)

	The new TS capability check was also running when curses wasn't
	initialized. Move check inside the !OPTNOCURSES block.

2015-07-09 14:50 -0700  Kevin McCarthy  <kevin@8t8.us>  (7e91a8855dc3)

	* Makefile.am, doc/Makefile.am, imap/Makefile.am: Use $(VAR) instead
	of @VAR@ in Makefile.am files. (closes #3664)

	The @VAR@ form is not overridable, such as the case for #3664 where
	the reporter wanted to override DOTLOCK_GROUP.

	It's doubtful targets need to be overriden, but it makes sense to be
	consistent in the usage of automake substituted variables unless
	there is a particular reason/bug to work around.

2015-07-05 13:38 -0700  Kevin McCarthy  <kevin@8t8.us>  (79cd2f34961d)

	* crypt-gpgme.c: Remove 'hit enter' prompt for GPGME initialization
	errors.

	Older GPGMEs are missing CMS (S/MIME) support. Don't force the poor
	users to hit enter every time they start mutt.

2015-07-02 11:21 -0700  Kevin McCarthy  <kevin@8t8.us>  (39422ec14f60)

	* .hgignore, mkinstalldirs: Remove the automake mkinstalldirs script.

	Add to .hgignore so it doesn't accidentally get added again.

2015-07-02 11:21 -0700  Kevin McCarthy  <kevin@8t8.us>  (97ef326274e7)

	* Makefile.am, configure.ac, contrib/Makefile.am, doc/Makefile.am,
	intl/Makefile.in, m4/gettext.m4, po/Makefile.in.in: Convert from
	using mkinstalldirs to $(MKDIR_P).

	The automake mkinstalldirs script is now deprecated. "install-sh -d"
	can be used in place. Configure.ac already includes AC_PROG_INSTALL,
	which will ensure install-sh is bundled. Add AC_PROG_MKDIR_P, which
	will set $(MKDIR_P) to either a thread-safe "mkdir -p" or will fall
	back to using install-sh.

2015-07-02 11:18 -0700  Kevin McCarthy  <kevin@8t8.us>  (67d945e38074)

	* build-release: Fix build-release to always update automake tools.
	(closes #3671)

	1.5.22 and 1.5.23 include a version of "missing" older than the
	version of automake/aclocal used to generate configure.

	Fix the build-release script to always copy and force update of the
	automake tools.

2015-06-29 14:35 -0700  Kevin McCarthy  <kevin@8t8.us>  (9802a6172edf)

	* doc/manual.xml.head: Add note to manual clarifying push/exec and
	folder-hook order.

	Folder-hooks are executed in the order declared. However, push/exec
	commands will simply prepend to the keyboard buffer. If there are
	multiple push/exec commands, each will prepend to the earlier one.
	The result is that they will end up being "run" in reverse order
	once keyboard buffer processing starts.

2015-06-26 12:23 -0700  Kevin McCarthy  <kevin@8t8.us>  (3bbb1f569eb1)

	* imap/auth_sasl.c, imap/imap.c: Fix IMAP segfault due to NULL capstr.

	After a failed login, the connection is left open but capstr is
	freed. If a second login attempt is made, imap_auth_sasl was trying
	to strstr using the NULL capstr.

	Add a NONULL around the capstr parameter to strstr. Change
	imap_conn_find() to keep the capstr around until a successful
	authentication occurs.

2015-06-26 11:38 -0700  Kevin McCarthy  <kevin@8t8.us>  (b4be5796a458)

	* crypt-gpgme.c, pgp.c, smime.c: Add comment about "(f)orget it"
	choice in pgp/smime send menus.

2015-06-26 12:28 +0200  Vincent Lefevre  <vincent@vinc17.net>  (b640b23e64a8)

	* po/fr.po: Updated French translation.

2015-06-07 13:59 -0700  Kevin McCarthy  <kevin@8t8.us>  (17a4f92e4a95)

	* smime.c, smime.h: Rewrite S/MIME key searching. Add purpose
	checking.

	Model the smime.c searching off of classic pgp searching. Create
	smime_get_key_by_hash()/addr()/str() functions that use a single
	smime_get_candidates() function to search the index.

	Use the new smime_keys generated purpose flag in the index to filter
	by KEYFLAG_CANENCRYPT and KEYFLAG_CANSIGN. Old style indices fall
	back to all-inclusive behavior.

2015-06-07 13:59 -0700  Kevin McCarthy  <kevin@8t8.us>  (106914bc9406)

	* smime_keys.pl: smime_keys: Add refresh command.

	Refresh verifies the trust of each certificate and adds the purpose
	flag if it is missing. It pushes those values to the private keys'
	index file too.

2015-06-07 13:59 -0700  Kevin McCarthy  <kevin@8t8.us>  (aabd030b25cb)

	* smime_keys.pl: smime_keys: Add purpose flag to index.

	A subsequent patch will change smime.c to use the purpose to filter
	certs and keys that can't be used for signing or encryption.

	Issuer, trust, and purpose flags were also added to the keys index
	file, to keep parsing simpler in smime_keys as well as smime.c. The
	trust and purpose are derived from the cert. Issuer is set to '?' as
	this should never be needed for keys.

2015-05-25 10:59 -0700  Kevin McCarthy  <kevin@8t8.us>  (0255b37be491)

	* smime_keys.pl: smime_keys: Handle certificate chains in add_cert.
	(closes #3339) (closes #3559)

	Find all chains in the certificate provided. For each chain create a
	separate leaf and intermediate certificate file. Because Mutt
	controls the label prompt, use a single label for all chains.

	Also, loosen up cert file parsing to allow attributes even if they
	aren't delimited by a "Bag Attributes" header.

	Thanks to David J. Weller-Fahy for his testing and feedback!

2015-05-18 13:27 -0700  Kevin McCarthy  <kevin@8t8.us>  (577987ca2d02)

	* smime_keys.pl: smime_keys: Convert openssl execution to use
	open("-|",...). (see #3575) (see #2456)

	This does a fork/exec, bypassing the shell, and so handles spaces,
	quotes, and other shell-characters problems better than the simple
	fix in changeset:c66a6bd5d0d5

	This also fixes the "verify with crl" bug in #2456: the grep is now
	done in perl.

	Thank you Vincent Lefevre for your review and feedback!

2015-05-18 03:25 +0200  Vincent Lefevre  <vincent@vinc17.net>  (82d43abf2a37)

	* po/fr.po: Updated French translation (related to PGP & S/MIME, with
	corrections).

2015-05-15 14:09 -0700  Kevin McCarthy  <kevin@8t8.us>  (c66a6bd5d0d5)

	* smime_keys.pl: smime_keys: quote filenames. (closes #3575) (see
	#2456)

	Wrap the various filename parameters in single quotes in case there
	are spaces in the filename.

2015-05-15 10:47 -0700  Kevin McCarthy  <kevin@8t8.us>  (babc30377614)

	* smime_keys.pl: Start cleaning up and fixing smime_keys.pl (closes
	#3324) (see #2456)

	* Convert to using File::Temp (#3324). This was also suggested at
	https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=775199

	* Use File::Temp for add_p12 temp file. (#2456)

	* Make the query_label() method a bit more robust with empty
	strings, ctrl-d, and leading spaces.

	* Clean up openssl_do_verify() logic. Mark cert as invalid rather
	that die'ing if an openssl verify command fails.

	* General cleanup:
	  - Clearly separate op handler, certificate management, and helper
	functions by section and using prefixes.
	  - Create openssl helper functions to reduce copy/paste invocations and
	make the code clearer.
	  - Make indentation consistent at 2 spaces.
	  - Change handle_add_pem() to re-use handle_add_chain() once the
	correct files are identified.
	  - Change openssl_parse_pem() to return a single array of data
	structures representing the parsed certs/keys.

2015-05-03 16:25 -0700  Kevin McCarthy  <kevin@8t8.us>  (c46dfbdb5eff)

	* globals.h, init.h, mutt_ssl.c, mutt_ssl_gnutls.c: Provide SSL cipher
	selection option. (closes #3167)

	Creates a $ssl_ciphers option that allows direct selection of the
	ciphers for OpenSSL (via SSL_CTX_set_cipher_list) and GnuTLS (via
	gnutls_priority_set_direct).

	Thank you Sergio Gelato for the patch.

2015-04-25 19:00 -0700  Seth Forshee  <seth@forshee.me>  (755a18da99bc)

	* handler.c: Fix performance regression for ~b/~B searching. (closes
	#3743)

	In mutt_is_autoview(), changeset b58cdfacfb89 introduced a call to
	rfc1524_mailcap_lookup() before checking if the MIME type should be
	autoviewed based on the user's preferences. This caused a major
	performance regression for ~b/~B searching.

	Rearrange mutt_is_autoview() to check the user preferences first,
	then search for a mailcap entry only if the MIME type should be
	autoviewed.

	In order to preserve correct mime_lookup behavior, re-add a call to
	mutt_check_lookup_list() before scanning the AutoViewList.

2015-04-19 13:15 -0700  Kevin McCarthy  <kevin@8t8.us>  (067a3ac42c3b)

	* crypt-gpgme.c, doc/manual.xml.head, init.h, mutt.h, pgp.c: Add
	$crypt_confirmhook option. (see #3727)

	Allow the confirmation prompt for crypt-hooks to be disabled. This
	is useful for multiple crypt-hook users (e.g. encrypted mailing
	lists), or just for people who are certain of their crypt-hooks and
	don't want to be prompted every time.

	Thanks to Dale Woolridge for the original patch.

2015-04-19 13:15 -0700  Kevin McCarthy  <kevin@8t8.us>  (b4c57d3fd7e8)

	* crypt-gpgme.c, doc/manual.xml.head, doc/muttrc.man.head, hook.c,
	pgp.c, protos.h: Allow multiple crypt-hooks with the same regexp.
	(closes #3727).

	Changes the crypt-hook to accumulate a LIST of hooks with the same
	regexp, as opposed to replacing the hook data. This is useful for
	the case of encrypted mailing lists.

	Update pgp classic and gpgme to process a LIST of crypt-hook values
	instead of just one.

	This version of the patch creates a new _mutt_list_hook() function
	that (in theory) other hooks could use if they were changed to
	return a list. It also changes the behavior when a crypt-hook is
	declined: previously it would immediately use the original recipient
	for key selection. Now it will only do that if all crypt-hooks for a
	recipient are declined. This allows all, a subset, or none of the
	hooks to be used.

	Thanks to Rejo Zenger, Remco Rijnders, and Dale Woolridge for their
	work on various versions of this patch.

2015-04-15 19:25 -0700  Kevin McCarthy  <kevin@8t8.us>  (1e26a962ab7a)

	* doc/manual.xml.head: Fix a few more incorrect documentation lines
	for hooks.

	Hopefully this finishes up aac979f8b529 and ca5aff2a4b6e.

2015-04-15 18:57 -0700  Kevin McCarthy  <kevin@8t8.us>  (d12cb775b779)

	* crypt-gpgme.c, doc/manual.xml.head, init.h, pgp.c, pgp.h, pgpkey.c:
	Use fingerprints instead of keyIDs internally. (see #3695)

	Add a helper function, pgp_fpr_or_lkeyid(), that returns the
	fingerprint if available, otherwise falls back to the long key id.
	Convert Mutt to use that value for pgp command invocation.

	Change gpgme to use an equivalent crypt_fpr_or_lkeyid() function in
	a couple places too (for keylist generation and sign-as key
	selection).

	Update documentation to mention fingerprints and the --with-
	fingerprint option for gpg invocation.

	Change pgp_long_ids to default: yes, but add a note mentioning it's
	only used for the display of key IDs in a few places.

2015-03-12 14:48 -0700  Kevin McCarthy  <kevin@8t8.us>  (bd21cff208c4)

	* recvattach.c: Allow attachments from unencrypted emails to be
	deleted.

	Print a warning if the message is signed or partly signed.

	Thanks to David Haguenauer for the original patch!

2015-04-06 18:39 -0700  Kevin McCarthy  <kevin@8t8.us>  (ca5aff2a4b6e)

	* doc/muttrc.man.head: Clarify hook pattern vs regexp in muttrc.man
	page.

	Updates to the muttrc.man page were inadvertently not included in
	changeset:aac979f8b529. Fix mbox-hook and crypt-hook to show they
	accept a regexp, not a pattern.

2015-04-05 13:52 -0700  Kevin McCarthy  <kevin@8t8.us>  (e3e6febd8240)

	* contrib/smime.rc: Fix smime.rc typos and spacing issues. (closes
	#3745)

	Thanks to David J. Weller-Fahy for that patch.

2015-03-30 15:45 -0700  Kevin McCarthy  <kevin@8t8.us>  (1bd26d871d76)

	* crypt-gpgme.c: Fix const errors caused by find_keys() changes.

	Part 4 of the oppenc series changed the keyID type to const as part
	of some cleanup changes. At the time, that only propagated to
	crypt_getkeybystr(), but with the fingerprint changes, this is
	starting to propagate too far.

	Create a separate non-const variable to deal with the crypt hook
	value and revert crypt_getkeybystr()'s parameter to non-const.

2015-03-30 15:45 -0700  Kevin McCarthy  <kevin@8t8.us>  (b8ead28d8e84)

	* compose.c, crypt-gpgme.c, pgp.c, smime.c: Add ui elements for oppenc
	mode.

	Add a status message to the Security line when oppenc is enabled.

	For each send menu, add the ability to toggle it on or off. When
	enabled, the menus won't show the (e)ncrypt or (b)oth options, and
	the (c)lear function only clears the SIGN bit when it is active.

	Change the gpgme_send_menu() to directly use the ENCRYPT and SIGN
	flags instead of the PGPENCRYPT/SIGN and SMIMEENCRYPT/SMIME flags.
	Using the latter sometimes resulted in the APPLICATION bit unset,
	which made oppenc unhappy.

	The send_menus previously used a switch statement using choice
	numbers. Since the menus now vary based on the oppenc option and
	message bit being set, these were all changed to convert the numbers
	back to a choice letter.

2015-03-30 15:45 -0700  Kevin McCarthy  <kevin@8t8.us>  (2ec6a8d91de4)

	* crypt.c, mutt.h, mutt_crypt.h, postpone.c, send.c, sendlib.c: Add a
	security bit to the message for oppenc mode.

	This allows oppenc to be enabled/disabled on a message level. If
	something initially enables encryption, such as crypt_autoencrypt or
	crypt_replyencrypt, oppenc is turned off for the message.

	Change the postpone/resume code to persist the oppenc bit.

	Also change resend message to enable and invoke oppenc if the option
	is set.

2015-03-30 15:45 -0700  Kevin McCarthy  <kevin@8t8.us>  (b38c4838976f)

	* compose.c, crypt.c, init.h, mutt.h, send.c: Add the
	crypt_opportunistic_encrypt option and calls.

	This patch creates the OPTCRYPTOPPORTUNISTICENCRYPT option and
	documentation.

	It also adds calls to crypt_opportunistic_encrypt() during initial
	message composition, after updating to, cc, or bcc, and after
	editing the message (if edit_headers is enabled).

2015-03-30 15:45 -0700  Kevin McCarthy  <kevin@8t8.us>  (b10d0a945623)

	* crypt.c, mutt_crypt.h, send.c: Implement
	crypt_opportunistic_encrypt().

	This function will be called to flip encryption on and off based on
	message recipients.

2015-03-30 15:45 -0700  Kevin McCarthy  <kevin@8t8.us>  (db2abe57adb5)

	* crypt-gpgme.c, pgp.c, pgp.h, pgpkey.c, smime.c: Implement
	oppenc_mode in the find_keys methods.

	oppenc_mode is used by crypt_opportunistic_encrypt to determine
	whether there are valid keys for all recipients of a message,
	without prompting the user.

	The patch wraps around prompts, and makes getkeybyaddr methods
	return a valid address-matching key without prompting.

	The patch also fixes a small problem with gpgme's getkeybyaddr. When
	determining if there were multiple strong matches, it was comparing
	the crypt_key_t instead of its kobj member (gpgme_key_t).

	The patch also enables a call to crypt_is_numerical_keyid() in
	find_keys(), so that crypt-hooks can actually be checked without
	prompting when gpgme is enabled. (The addition was patterned off of
	the pgp_findKeys() function).

2015-03-30 15:45 -0700  Kevin McCarthy  <kevin@8t8.us>  (80b963ff82d3)

	* crypt.c, mutt_crypt.h, pgp.c: Pull is_numerical_keyid() into
	crypt.c.

	A subsequent patch (re?)-introduces a call to is_numerical_keyid
	inside find_keys(). Rather than duplicate the function, this patch
	pulls it into crypt.c, where find_keys() and pgp_findKeys() can both
	call it.

2015-03-30 15:45 -0700  Kevin McCarthy  <kevin@8t8.us>  (04eb395d80a7)

	* crypt-gpgme.c, crypt-gpgme.h, crypt-mod-pgp-classic.c, crypt-mod-
	pgp-gpgme.c, crypt-mod-smime-classic.c, crypt-mod-smime-gpgme.c,
	crypt-mod.h, crypt.c, cryptglue.c, mutt_crypt.h, pgp.c, pgp.h,
	smime.c, smime.h: Introduce an oppenc_mode parameter

	It's added to the parameter lists through the call stack down to the
	find_keys calls.

	No functionality is implemented yet. This patch is separated just to
	keep other patches more readable.

2015-03-30 15:45 -0700  Kevin McCarthy  <kevin@8t8.us>  (5b443e7da81b)

	* crypt-gpgme.c, crypt-gpgme.h, crypt-mod-pgp-classic.c, crypt-mod-
	pgp-gpgme.c, crypt-mod-smime-classic.c, crypt-mod-smime-gpgme.c,
	crypt-mod.h, crypt.c, cryptglue.c, mutt_crypt.h, pgp.c, pgp.h,
	smime.c, smime.h: Refactor the address list generation out of the
	find_keys routines.

	All four find_keys routines have a similar set up code for
	generating a single address list out of the to, cc, bcc lists. This
	patch pulls all the code into crypt_get_keys.

	This is done to simplify the functions before later patches make
	them more complicated (with the oppenc_mode parameter).

2015-03-17 16:28 -0700  Kevin McCarthy  <kevin@8t8.us>  (59bd9030e898)

	* doc/manual.xml.head: Document limitation of color index and server-
	side searches. (see #3723)

2015-03-17 16:28 -0700  Kevin McCarthy  <kevin@8t8.us>  (ab101844dc07)

	* doc/manual.xml.head: Add entries for =B and =h in pattern modifier
	table.

	Since these operate differently for IMAP, it's worth adding explicit
	entries to the table for these two.

2015-03-17 16:28 -0700  Kevin McCarthy  <kevin@8t8.us>  (aac979f8b529)

	* doc/manual.xml.head: Clarify hook documentation to specify regexp
	instead of pattern.

	Account-hook, crypt-hook, and mbox-hook accept a regexp parameter,
	not a pattern.

2015-03-04 19:24 -0800  Kevin McCarthy  <kevin@8t8.us>  (09be71b645a7)

	* pgp.c: Fix pgp_application_pgp_handler to remove all tempfiles.

	If multiple PGP blocks are present in an email, Mutt only cleans up
	the tempfiles for the last block. Thanks to Dennis Preiser for the
	patch and sample mbox file demonstrating the problem.

	This patch also fixes the argument to mutt_perror for the pgpout
	tempfile.

2015-02-19 11:00 -0800  Kevin McCarthy  <kevin@8t8.us>  (71f12fef8c6f)

	* sendlib.c: merge stable

2015-02-10 18:29 +0100  Peter Wu  <peter@lekensteyn.nl>  (70b85d8b232b)

	* sendlib.c: Fix buffer underread for empty header values. (closes
	#3736)

	When a header has no value (*p == '\0' so l == 0), do not read
	outside the buffer but print the newline anyway when a tag is
	already printed (col != 0).

	Caught by ASAN while opening a draft with no Subject.

2015-02-11 21:38 +0100  Eike Rathke  <erack@erack.de>  (f5b1b75c5958)

	* crypt-gpgme.c, crypt.c, mutt_crypt.h, pgpkey.c: Allow fingerprint
	user input for key selection. (see #3695)

	Accept and check input of a fingerprint and find the matching key.

	Note that for both to work, match against and display of
	fingerprint, the pgp_list_pubring_command and
	pgp_list_secring_command need to contain the
	--with-fingerprint option, or have with-fingerprint in
	~/.gnupg/gpg.conf.

2015-02-15 10:09 -0800  Kevin McCarthy  <kevin@8t8.us>  (af5951f5d81c)

	* contrib/gpg.rc, gnupgparse.c: Add fingerprint record parsing for pgp
	list keys. (see #3695)

	Modify parse_pub_line to parse fpr records and add the fingerprint
	to the pgp_key_t's fingerprint field.

	Add "--with-fingerprint --with-fingerprint" to the
	pgp_list_pubring_command and pgp_list_secring_command commands in
	contrib/gpg.rc. The second invocation generates fpr records for
	subkeys too.

2015-02-15 10:08 -0800  Kevin McCarthy  <kevin@8t8.us>  (47b4e57b2f1c)

	* pgplib.c, pgplib.h, pgppubring.c: Convert pgp_key_t fingerprint to a
	char* (see #3695)

	Currently only pgppubring.c is using the fingerprint field, and is
	using it to store a binary version of the fingerprint.

	Convert the field to store a null-terminated string. Modify
	pgppubring.c to use to use the new field.

2015-02-10 12:14 -0800  Kevin McCarthy  <kevin@8t8.us>  (385d7434c9d6)

	* pgpkey.c: Protect addr with NONULL in pgp_getkeybyaddr.

	This was introduced by bb3b01f41ed2, but wasn't included in the
	NONULL checks added in 9a75aa4bd69e.

2015-02-08 14:19 -0800  Kevin McCarthy  <kevin@8t8.us>  (addd7cea01d4)

	* crypt-gpgme.c: Cache uid validity in crypt_key_t.

	In order to find the validity for a crypt_key_t, the code has to
	loop through the key->kobj->uids list up to the correct index. This
	is a bit silly since the uid is available when the crypt_key_t is
	created in get_candidates().

	This patch adds a validity field, and changes the various places to
	use that instead of looping.

	Also fix a bug in _crypt_compare_trust(): it was using the validity
	of the first uid instead of the corresponding uid's validity.

2015-02-08 13:44 -0800  Kevin McCarthy  <kevin@8t8.us>  (7162033d1fb8)

	* crypt-gpgme.c: Fix pgp-gpgme to set revoke/expired/disabled flags.

	The code wasn't settings those flags in get_candidates(). This patch
	adds it to the pgp path. I don't know if these flags apply to SMIME
	so am leaving them out for the smime branch.

	Fix up crypt_select_key() to follow the same logic as
	pgp_select_key().

2015-02-03 15:39 -0800  Kevin McCarthy  <kevin@8t8.us>  (2fd1b9f17b80)

	* contrib/smime.rc, init.h: Change the smime_encrypt_with default to
	aes256.

	Openssl supports -aes256 at least since 2004, and it's a stronger
	algorithm than des3.

	Also:
	- Remove the incorrect documentation comment about defaulting to 3des
	if unset.
	- Change the default set in contrib/smime.rc.

2015-02-04 11:04 -0800  Kevin McCarthy  <kevin@8t8.us>  (d2f5832a9e68)

	* send.c: Protect SmimeDefaultKey for postpone/resume.

	PgpSignAs is saved and restored in ci_send_message(), but
	SmimeDefaultKey was not.

	Also, fix a bug where an empty PgpSignAs was not restored back to
	empty if the postponed email contained a SignAs value.

2015-02-02 13:25 -0800  Kevin McCarthy  <kevin@8t8.us>  (3f4dc0ce66ae)

	* postpone.c: Fix mutt_parse_crypt_hdr() sign_as behavior.

	Currently, if a message is postponed with only the E encryption
	flag, when it is resumed, pgp_sign_as will be overwritten (with an
	empty string).

	This intention of the behavior was probably to restore the exact
	state of pgp_sign_as upon resuming. However, if the message wasn't
	marked for signing, the state of pgp_sign_as is not known. This
	patch changes the mutt_parse_crypt_hdr() to only set an empty
	pgp_sign_as if there is an S flag (and if set_empty_signas is true).

	mutt_edit_headers() also uses the function, but it doesn't want to
	overwrite pgp_sign_as with just an S flag. The set_signas parameter
	is renamed to (a hopefully clearer) "set_empty_signas".

2015-01-31 20:05 -0800  Kevin McCarthy  <kevin@8t8.us>  (1235dd48ef3f)

	* contrib/smime.rc, init.h: Update smime_encrypt_with documentation to
	list all algorithms.

	Thanks to Michael Schwipps for the patch!

2015-01-15 14:18 -0800  Kevin McCarthy  <kevin@8t8.us>  (688d66ae6014)

	* imap/message.c, mailbox.h, mx.c, sendlib.c: Send the IMAP \Draft
	flag when postponing a message.

	This patch adds a mx_open_new_message() flag, M_SET_DRAFT. It also
	adds a MESSAGE->flags.draft flag.

	mutt_write_fcc() passes the M_SET_DRAFT flag to
	mx_open_new_message(), which then sets MESSAGE->flags.draft. Then,
	imap_append_message() is able to see this flag and so adds the
	\Draft flag.

	The imap_append_message() function started to have a bit too many
	flags, so this version of the patch separates out the flag
	generating code into a simpler version.

2015-01-31 11:53 -0800  Brendan Cully  <brendan@kublai.com>  (200185ed86bc)

	* crypt-mod-pgp-gpgme.c: gpgme: typo in previous commit

2015-01-31 11:21 -0800  Brendan Cully  <brendan@kublai.com>  (20e46d7bc453)

	* configure.ac, crypt-gpgme.c, crypt-mod-pgp-gpgme.c: gpgme: guard
	mail-key on presence of gpgme_op_export_keys

	This function is too new to be assumed present.

2015-01-30 14:17 +0100  Vincent Lefevre  <vincent@vinc17.net>  (b804f2daca31)

	* po/fr.po: Updated French translation.

2015-01-29 15:40 -0800  Kevin McCarthy  <kevin@8t8.us>  (282832c0329a)

	* mutt_sasl.c: Clean up sasl warnings.

	These were caused by assigning callback functions to the
	sasl_callback_t.proc member. The callback type doesn't list any
	parameters, because parameters vary by callback. The fix was simply
	assigning a cast.

	Cyrus-sasl2 has a sasl_callback_ft typedef that their sample code
	uses for this purpose, but it is in a different header, saslplug.h,
	and isn't in their 1.5 tree. Since this is probably not portable to
	other implementations, I just added an equivalent cast.

2015-01-27 16:15 -0800  Kevin McCarthy  <kevin@8t8.us>  (73b97b986e0d)

	* configure.ac, mutt_ssl_gnutls.c: Clean up gnutls warnings.

	Most of the warning were caused by deprecated types:
	gnutls_certificate_credentials gnutls_certificate_status
	gnutls_datum gnutls_digest_algorithm gnutls_session
	gnutls_transport_ptr gnutls_x509_crt Even though I believe the
	replacements have been around for a while, the patch adds autoconf
	checks and fallback typedefs.

	One warning was caused by casting an int to a pointer for the second
	parameter to gnutls_transport_set_ptr(). Recent gnutls has a
	replacement gnutls_transport_set_int() macro, but this macro simply
	(eventually) casts the parameter using
	"(gnutls_transport_ptr_t)(long)". So this patch just does the same.

2015-01-25 18:09 -0800  Kevin McCarthy  <kevin@8t8.us>  (df55f14f4585)

	* crypt-gpgme.c, init.h, pgp.c: Remove GPG_AGENT_INFO check for GnuPG
	2.1 compatibility. (closes #3715)

	GnuPG version 2.1 stops exporting the GPG_AGENT_INFO environment
	variable, so mutt can't check for the presence of that to ensure the
	agent is running.

	For GPGME, we can check for the OpenPGP protocol being present. For
	classic pgp, we have to trust the user setting.

	This patch is based on the patches sent by CustaiCo and muffins.
	Thank you both for reporting the problem and creating a patch.

2015-01-27 00:52 +0100  Vincent Lefevre  <vincent@vinc17.net>  (a0a5e505463e)

	* po/fr.po: Updated French translation.

2015-01-26 13:07 +0100  Vincent Lefevre  <vincent@vinc17.net>  (aa67709a73ce)

	* INSTALL, README.SECURITY, README.SSL, TODO, configure.ac,
	curs_lib.c, help.c, imap/message.c, lib.c, mh.c: Corrected various
	spelling mistakes (most of them reported by codespell).

2015-01-23 10:33 -0800  Kevin McCarthy  <kevin@8t8.us>  (ec93761e3e12)

	* crypt-gpgme.c, crypt-mod-pgp-gpgme.c: Implement mail-key, Esc-K, for
	gpgme. (closes #3488)

	This patch implements the make-key-attachment function for gpgme,
	modeled after the pgp version.

	It also adds an optional tempf parameter to
	data_object_to_tempfile() so the function can be reused for make-
	key-attachment.

2015-01-19 15:58 -0800  Kevin McCarthy  <kevin@8t8.us>  (b39219ffe75b)

	* pgpkey.c: pgp_getkeybystr: Pull key matching out of the address
	match loop.

	Since the key is invariant inside the address loop, there is no need
	to match against it with each address.

	All the keys should have at least one address record (see
	bb3b01f41ed2), but in case a record was malformed, add a check for
	that to keep the same logic.

2015-01-21 10:14 +0100  Eike Rathke  <erack@erack.de>  (5d7345b4c516)

	* doc/devel-notes.txt: HEAD is dead, remove wrong instruction from doc
	/devel-notes.txt

	Branch HEAD was closed over a year ago. If one was following the
	instruction to update -C HEAD you'd end up with an empty source tree
	and had to checkout the default branch again.

2015-01-18 17:50 +0100  Eike Rathke  <erack@erack.de>  (6e5a62946141)

	* crypt-gpgme.c: Allow short and long key ID user input in
	crypt_getkeybystr()

	The following did not work, e.g. when leaving a key list, and at the
	"Sign as" or "Encrypt to" prompt attempting to enter a key ID:
	* set pgp_long_ids=no
	  * enter a long key ID, with or without leading 0x
	* set pgp_long_ids=yes
	  * enter a short key ID without leading 0x

	Specifically entering a long key ID should always be possible as
	evil32.com has shown.

	This also cleans up the logic used to determine the matching
	condition, which was quite convoluted.. it even slightly speeds up
	the loop as less string operations are involved in the inner
	condition.

	This only changes how the result obtained from the crypt_* gpgme
	interface is filtered.

2015-01-18 17:45 +0100  Eike Rathke  <erack@erack.de>  (63ad7cf0d0de)

	* pgp.c, pgp.h, pgpkey.c: Allow short and long key ID user input in
	pgp_getkeybystr()

	The following did not work, e.g. when leaving a key list, and at the
	"Sign as" or "Encrypt to" prompt attempting to enter a key ID:
	* set pgp_long_ids=no
	  * enter a long key ID, with or without leading 0x
	* set pgp_long_ids=yes
	  * enter a short key ID without leading 0x

	Specifically entering a long key ID should always be possible as
	evil32.com has shown.

	This also cleans up the logic used to determine the matching
	condition, which was quite convoluted.. it even slightly speeds up
	the loop as less string operations are involved in the inner
	condition.

	This only changes how the result obtained from the pgp_* command
	line interface is filtered.

2015-01-17 14:34 -0800  Kevin McCarthy  <kevin@8t8.us>  (58a9dbfd0d25)

	* crypt-gpgme.c: Fix some context, data, and key memory leaks in
	gpgme.

	The context and data cleanup just involved adding missing
	gpgme_release() and gpgme_data_release() calls in a few places.

	The key usage was a little more involved:
	  * Fix crypt_free_key(). It wasn't freeing the key passed in, and
	didn't work properly if multiple keys were passed in. It also was
	missing a call to gpgme_key_unref().

	 * Add free_recipient_set() to properly unref all the keys before
	freeing the array.

	 * Fix get_candidates() to ref keys added to the crypt_key_t list,
	and unref the keys returned by gpgme_op_keylist_next().

	 * Change usages of gpgme_key_release() to gpgme_key_unref(). The
	former was deprecated in gpgme version 0.4.1 (2003-06-06).

2015-01-17 14:42 -0800  Kevin McCarthy  <kevin@8t8.us>  (cc7903944687)

	* hcache.c: Fix the hcache type punning warning.

	This patch fixes the type punning warning by switching from (safe
	but perhaps not elegant) casting to using a union.

	Thanks to Vincent Lefevre for his input and suggestion to use the
	union as a better solution to the problem!

2015-01-15 13:19 +0100  Vincent Lefevre  <vincent@vinc17.net>  (d732298789f2)

	* curs_lib.c: Also colorize the initial mutt_enter_fname prompt.

	Note: the new prompt obtained after a key is typed was already
	colorized.

2014-08-12 14:04 -0700  Kevin McCarthy  <kevin@8t8.us>  (4ba366bc7c45)

	* doc/manual.xml.head, enter.c, history.c, history.h: Add a scratch
	buffer to the history ring. (closes #3082)

	This patch creates an extra slot in the history ring for a scratch
	buffer (at h->last). If you are editing inside that buffer, it is
	preserved when you scroll up/down through the history. Editing while
	in other places in history are *not* preserved with this patch.

	Another behavior change worth noting with this patch: the position
	in history is now reset to the scratch buffer after each input
	entry. Before, the position would be stay wherever it was - you
	didn't restart at the "bottom" each time.

2013-11-06 13:07 -0800  Kevin McCarthy  <kevin@8t8.us>  (8a2d9d352e2c)

	* globals.h, init.h, mutt.h, send.c: Add option to encrypt postponed
	messages. (closes #3665)

	This patch is based on Christian Brabandt's patch sent to mutt-
	users.

	Add two new configuration variables: $postpone_encrypt and
	$postpone_encrypt_as. When $postpone_encrypt is set and a message is
	marked for encryption, the message will be encrypted using the key
	specified in $postpone_encrypt_as before saving the message.

	In this patch, $postpone_encrypt_as must be specified. I
	experimented with passing safe_strdup( NONULL (PostponeEncryptAs))
	when unspecified, but although gpg.conf has a default-key setting, I
	could not get it to work properly. (pgpclassic gave an error message
	and gpgme sefaulted.)

	Although not necessary, this patch turns off signing during
	encryption of the postponed message (and turns it back on before
	saving), since there is no need to sign the message yet.

2015-01-09 14:22 -0800  Kevin McCarthy  <kevin@8t8.us>  (25430a489665)

	* color.c, contrib/colors.default, contrib/colors.linux, curs_lib.c,
	doc/manual.xml.head, doc/muttrc.man.head, mutt_curses.h: Add color
	type for prompts.

	This adds a new color type, MT_COLOR_PROMPT, that can be used to
	colorize prompts (fields, yes/no, multi_choice).

	Thanks to Ben Boeckel for the patch!

2013-10-29 18:25 -0700  Kevin McCarthy  <kevin@8t8.us>  (789501922727)

	* crypt-gpgme.c, pgp.c: Add gpg signature name. (closes #3478)

	Some mail clients display "noname" for the gpg signature attachment.
	This patch sets the mime name to "signature.asc".

	The patch is based on http://dev.mutt.org/trac/attachment/ticket/347
	8/gpg_signature_name.patch with the changes:
	  - removes the configuration options
	  - removes mime description

2015-01-06 14:38 -0800  Kevin McCarthy  <kevin@8t8.us>  (cd57f8893b43)

	* configure.ac, globals.h: merge stable

2014-12-31 20:35 -0800  Kevin McCarthy  <kevin@8t8.us>  (31ce789af3df)

	* crypt-gpgme.c: Fix segfault of extract-keys (^K) under gpgme.
	(closes #3698)

	This patch is based on the patch by Ben Price, which relocated the
	safe_fclose (&in) after its use by keydata in
	pgp_gpgme_extract_keys. Thank you for the patch!

	In addition, this patch:
	  * removes spurious (debug?) output when the extract keys is finished.
	  * adds a gpgme_data_release() call to free the keydata.

2014-10-10 14:17 +0800  Kevin McCarthy  <kevin@8t8.us>  (e7a77a6bfb84)

	* query.c: Fix a memory leak in mutt_query_complete.

	When a single result was returned, it was written to the buffer and
	returned, but the query result was never freed.

	This patch creates a free_query function and changes the code to use
	that everywhere.

2014-08-14 20:12 -0700  Kevin McCarthy  <kevin@8t8.us>  (c7f116b6dc20)

	* configure.ac: Fix variable name in configure.ac.

	$ac_cv_search_STRINGPREP_CHECK_VERSION should be
	$ac_cv_search_stringprep_check_version, to match the first parameter
	of the AC_SEARCH_LIBS([stringprep_check_version] above.

	Running configure was giving a "test: =: unary operator expected"
	error.

2014-12-28 09:41 -0800  Kevin McCarthy  <kevin@8t8.us>  (8a981dce369e)

	* globals.h: Remove duplicate SmimeCryptAlg declaration in globals.h

	Thank you Elias Diem for the patch.

2015-01-06 14:31 -0800  Kevin McCarthy  <kevin@8t8.us>  (59c2c4be08a7)

	* pgpkey.c: merge stable

2014-12-01 14:19 -0800  Kevin McCarthy  <kevin@8t8.us>  (0aebf1df4359)

	* sendlib.c: Revert write_one_header() to skip space and tab. (closes
	#3716)

	This patch fixes CVE-2014-9116 in the stable branch. It reverts
	write_one_header() to the pre [f251d523ca5a] code for skipping
	whitespace.

	Thanks to Antonio Radici and Tomas Hoger for their analysis and
	patches to mutt, which this patch is based off of.

2015-01-05 18:28 -0800  Kevin McCarthy  <kevin@8t8.us>  (5a86319adad0)

	* pgpkey.c: Fix segv in pgp_getkeybystr(). (closes #3725)

	When searching for keys, and the user supplies "" to match against,
	pgp_getkeybystr will have values: p = ""; l = 0; After returning
	from pgp_select_key(), it will try to assign to p[l-1].

	(As a note, the function is chopping off and restoring the trailing
	"!" character because of ticket #1928.)

2015-01-03 11:33 -0800  Kevin McCarthy  <kevin@8t8.us>  (79ea10b2d81c)

	* commands.c: Change bounce to use mutt_parse_adrlist() for address
	parsing.

	When prompting for recipients, forwarding, replying, and mailing all
	use mutt_parse_adrlist() to parse the addresses. This allows for
	addresses to be separated by spaces.

	Bounce message currently uses rfc822_parse_adrlist(), which doesn't
	allow the spaces. This one-line patch simply changes bounce to
	behave the same as mail, reply, and forwarding for the address
	prompt.

	Thanks to Roger Cornelius for the patch!

2014-12-31 20:35 -0800  Kevin McCarthy  <kevin@8t8.us>  (5530e9fb17d9)

	* crypt-gpgme.c: Fix segfault of extract-keys (^K) under gpgme.
	(closes #3698)

	This patch is based on the patch by Ben Price, which relocated the
	safe_fclose (&in) after its use by keydata in
	pgp_gpgme_extract_keys. Thank you for the patch!

	In addition, this patch:
	  * removes spurious (debug?) output when the extract keys is finished.
	  * adds a gpgme_data_release() call to free the keydata.

2014-08-12 14:33 -0700  Kevin McCarthy  <kevin@8t8.us>  (9a75aa4bd69e)

	* gnupgparse.c, pgpkey.c: Wrap pgp_uid_t->addr in NONULL(). (closes
	#3564)

	The previous patch introduced the possibility for addr to be null.
	Mutt is surprisingly robust against null strings, but there are a
	few places that should be wrapped in NONULL().

2014-08-12 14:33 -0700  Kevin McCarthy  <kevin@8t8.us>  (bb3b01f41ed2)

	* gnupgparse.c: Fix parse_pub_line to allow an empty User-ID field for
	a pub record. (see #3564)

	A key whose primary uid record has an empty User-ID will result in
	the user being unable to use the key to encrypt an email in mutt.
	This is because the mutt functions for key selection iterate through
	the address fields of a key for matching against and for displaying
	to the user.

	This change allows a pgp_uid_t record to be created for a pub record
	whose User-ID field is blank. So the key will have one address
	record, albeit with a null addr field.

2013-11-02 20:12 -0700  Kevin McCarthy  <kevin@8t8.us>  (4909bd9c9149)

	* main.c: Override draft headers with arguments. (closes #3580)

	Currently, if the -H option is used, it is not possible to redefine
	the recipient addresses with positional argument. This patch fixes
	it as well as CC, Bcc, and Subject headers.

	This patch is based on the patch by Petr Písař at http://dev.mutt.or
	g/trac/attachment/ticket/3580/override_draft_headers_with_arguments.
	patch

	This version of the patch merges the To, Cc, and Bcc commandline
	arguments into the template, and fixes a few small problems with the
	previous patch.

	This patch also moves the fin close outside the "if (tempfile)"
	block, since it is opened outside that block.

2014-06-21 13:51 -0700  Kevin McCarthy  <kevin@8t8.us>  (daf61444d454)

	* pgpinvoke.c: Enable %a format string for all pgp command configs.
	(closes #3699)

	Currently, the documentation states that, with the exception of
	pgp_getkeys_command, all the PGP format commands should be available
	to the pgp_*_command configuration variables.

	However, the %a format is actually only enabled for
	pgp_clearsign_command, pgp_encrypt_sign_command, and
	pgp_sign_command.

	Philip Rinn discovered this problem when he was trying to add a
	"--encrypt-to %a" to pgp_encrypt_only_command. Rather than just fix
	the one configuration he was having the problem with, this patch
	enables %a usage for all of them. (With the exception of the
	documented pgp_getkeys_command.)

2013-12-18 19:19 -0800  Kevin McCarthy  <kevin@8t8.us>  (630bbc147022)

	* doc/manual.xml.head: Note correct usage of $edit_headers. (closes
	#3673)

	Ticket 3673 shows that it isn't necessarily obvious a blank line is
	needed between the headers and body of a message when using
	$edit_headers. This patch adds a small note to the documentation,
	indicating the blank line should be preserved between the headers
	and body.

	Thank you Sinan Kaan Yerli for the patch.

2014-08-13 13:46 -0700  Kevin McCarthy  <kevin@8t8.us>  (89b17d3cd510)

	* doc/mutt.man, doc/pgpring.man: Clarify PGPPATH usage in manpages.

	Make more clear that, when used with the original PGP program, mutt
	and pgpring rely on this being set.

2014-10-10 14:17 +0800  Kevin McCarthy  <kevin@8t8.us>  (45fbc40193aa)

	* query.c: Fix a memory leak in mutt_query_complete.

	When a single result was returned, it was written to the buffer and
	returned, but the query result was never freed.

	This patch creates a free_query function and changes the code to use
	that everywhere.

2014-08-21 18:41 -0700  Kevin McCarthy  <kevin@8t8.us>  (b1ef16f25425)

	* init.c: Remove unused variable t in start_debug().

	t was set but never used. This was generating a compiler warning.

2014-08-14 20:12 -0700  Kevin McCarthy  <kevin@8t8.us>  (80186ee6eb57)

	* configure.ac: Fix variable name in configure.ac.

	$ac_cv_search_STRINGPREP_CHECK_VERSION should be
	$ac_cv_search_stringprep_check_version, to match the first parameter
	of the AC_SEARCH_LIBS([stringprep_check_version] above.

	Running configure was giving a "test: =: unary operator expected"
	error.

2014-12-28 09:41 -0800  Kevin McCarthy  <kevin@8t8.us>  (1630cee66057)

	* globals.h: Remove duplicate SmimeCryptAlg declaration in globals.h

	Thank you Elias Diem for the patch.

2014-11-04 23:40 -0600  David Champion  <dgc@uchicago.edu>  (39d3ddb56d34)

	* init.h: Disable SSLv3 by default.

	Since Oct. 14 2014 SSLv3 is no longer considered safe. See POODLE:
	https://en.wikipedia.org/wiki/Transport_Layer_Security#POODLE_attack

2014-10-11 13:20 -0700  Brendan Cully  <brendan@kublai.com>  (3a46874d5845)

	* hcache.c: hcache tcdb debug logging

2014-10-11 11:05 -0700  Brendan Cully  <brendan@kublai.com>  (85393e522337)

	* Makefile.am, doc/Makefile.am, flymake.am, imap/Makefile.am: add
	check-syntax target for flymake

2014-10-11 10:59 -0700  Brendan Cully  <brendan@kublai.com>  (bb7f59864d47)

	* .hgignore: ignore generated pgpewrap/pgpring man pages

2014-10-11 10:58 -0700  Brendan Cully  <brendan@kublai.com>  (0dc2dafab53a)

	* .hgignore: ignore gnu global tags

2014-09-07 12:00 -0700  Brendan Cully  <brendan@kublai.com>  (4a814b05874f)

	* merge stable

2014-09-07 11:04 -0700  Brendan Cully  <brendan@kublai.com>  (1b583341d5ad)

	* mutt_sasl.c: mutt_sasl: fix double negative in iptostring result
	check (fixes #3705)

2014-09-07 10:52 -0700  Brendan Cully  <brendan@kublai.com>  (769905e66205)

	* mutt_sasl.c: mutt_sasl: whitespace only

2014-09-07 10:36 -0700  Brendan Cully  <brendan@kublai.com>  (c81c93e64af8)

	* UPDATING, po/nl.po: merge stable

2014-07-25 20:43 +0200  Vincent Lefevre  <vincent@vinc17.net>  (b8bebc2f9a55)

	* po/fr.po: Updated French translation.

2014-03-13 23:37 +0000  Ivan Vilata i Balaguer  <ivan@selidor.net>  (375ba5ce358c)

	* po/ca.po: Updated Catalan translation.

2014-03-13 17:41 +0000  Vsevolod Volkov  <vvv@mutt.org.ua>  (99dda89b7685)

	* po/uk.po: Updated Ukrainian translation.

2014-03-13 17:41 +0000  Vsevolod Volkov  <vvv@mutt.org.ua>  (061217dd31ef)

	* po/ru.po: Updated Russian translation.

2014-03-13 17:36 +0000  Jonathan Wakely  <bugs@kayari.org>  (fd531fc9188c)

	* doc/mutt.man: fix typo in man page.

2014-03-13 03:56 +0000  Petr Pisar  <petr.pisar@atlas.cz>  (67673770fb96)

	* po/cs.po: Updated Czech translation

2014-03-12 09:44 -0700  Brendan Cully  <brendan@kublai.com>  (d9f45fa9458c)

	* .hgsigs: mutt-1.5.23 signed

2014-03-12 09:28 -0700  Brendan Cully  <brendan@kublai.com>  (4790aa52f0f2)

	* .hgtags: Added tag mutt-1-5-23-rel for changeset b8a63730c848

2014-03-12 09:28 -0700  Brendan Cully  <brendan@kublai.com>  (b8a63730c848)

	* ChangeLog, VERSION, po/bg.po, po/ca.po, po/cs.po, po/da.po,
	po/de.po, po/el.po, po/eo.po, po/es.po, po/et.po, po/eu.po,
	po/fr.po, po/ga.po, po/gl.po, po/hu.po, po/id.po, po/it.po,
	po/ja.po, po/ko.po, po/lt.po, po/nl.po, po/pl.po, po/pt_BR.po,
	po/ru.po, po/sk.po, po/sv.po, po/tr.po, po/uk.po, po/zh_CN.po,
	po/zh_TW.po: automatic post-release commit for mutt-1.5.23

2014-03-12 09:25 -0700  Brendan Cully  <brendan@kublai.com>  (07556816c588)

	* build-release: build-release: make sure version is picked up by
	autoconf

	* mkchangelog.sh: mkchangelog: only show log entries on current branch

	* build-release: No more devel

2014-03-11 10:04 -0700  Michael Elkins  <me@sigpipe.org>  (3c13c4188912)

	* UPDATING: add user visible changes since 1.5.22 release.

	* copy.c: Fix buffer overrun caused by not updating a string length
	after address expansion.

2013-10-24 09:55 -0700  Michael Elkins  <me@sigpipe.org>  (3d5e23a66a1a)

	* init.h: remove trailing period from documentation for
	$pgp_list_secring_command

	* init.h: remove trailing period from documentation for
	$pgp_list_pubring_command

2013-04-26 12:10 -0700  Kevin McCarthy  <kevin@8t8.us>  (914e13a3694d)

	* postpone.c: Fix postpone/resume to not remove a Mail-Followup-To
	header (closes #3070)

	This solution changes mutt_prepare_template() to check whether the
	message_id field is NULL to decide whether to wipe the message-id
	and mail-followup-to headers when instantiating the message.

	If we are resending a message, we don't want the previous message-id
	and mail-followup-to headers. If we are resuming a postponed
	message, however, we want to keep the mail-followup-to header if any
	was set before the postpone. (grafted from
	d7d83298011a6e7aa31bde49e0b6b21209a85fd2)

2013-10-22 15:12 -0500  Aaron Schrab  <aaron@schrab.com>  (4a24e6233a5f)

	* version.sh: version.sh: step back from $() to ``. closes #3661
	(grafted from 01cf5814dfe5e79b65b1d950aab1276d19a9f031)

2013-07-14 19:48 -0700  Kevin McCarthy  <kevin@8t8.us>  (b5c894182719)

	* muttlib.c: Allow filename prompt when saving multiple attachments to
	a directory. (closes #3083)

	Currently, if you specify a directory when saving multiple
	attachments and choose (a)ll, the first attachment is saved without
	confirming the filename. Subsequent attachments prompt for the
	filename.

2013-10-04 18:22 +0000  Michael Elkins  <me@sigpipe.org>  (95a2230ef889)

	* mutt.h, postpone.c, send.c: When recalling a postponed message that
	does not have a x-mutt-fcc header field, generate a default FCC just
	as we do for new messages. If x-mutt-fcc is present but empty, we
	assume that means the user does not want a copy.

	closes #3653

2013-10-23 11:11 -0700  Michael Elkins  <me@sigpipe.org>  (331d48da153b)

	* crypt-gpgme.c: Ensure that at least one signature was generated to
	catch the case where $pgp_sign_as is unset and no default key is
	specified in ~/.gnupg/gpg.conf

	closes #3658

2013-10-06 09:15 -0700  Michael Elkins  <me@sigpipe.org>  (99d913f46eb9)

	* handler.c, smime.c: use LOFF_T as the type for variables used in
	fseeko()

	closes #3487

2013-10-04 18:04 +0000  Michael Elkins  <me@sigpipe.org>  (dd67e8649ea4)

	* crypt-gpgme.c: Display the KeyID when the pubkey is not found in the
	user's keyring during signature verification.

	closes #3654

2013-10-23 11:11 -0700  Michael Elkins  <me@sigpipe.org>  (db3028e34ce0)

	* mutt_ssl_gnutls.c: return 0 if import of cert failed to match other
	error conditions.

2013-10-23 11:11 -0700  Michael Elkins  <me@sigpipe.org>  (4dde4bcda519)

	* mutt_ssl_gnutls.c: only terminate the write-half of the TLS
	connection to avoid hanging if the remote doesn't respond.

	RFC5246 section 7.2.4 states that the initiator of the closure need
	not wait for the remote to response before closing the read-half.

	closes #3633

2013-10-22 21:11 -0700  Brendan Cully  <brendan@kublai.com>  (2ab618f4f6b0)

	* create stable branch

2013-10-21 11:58 -0700  Michael Elkins  <me@sigpipe.org>  (0d9d7c486331)

	* doc/manual.xml.head: add note about use of ! ~Q in send-hook when
	paired with reply-hook.

2013-10-19 11:23 -0700  Michael Elkins  <me@sigpipe.org>  (84acf5f0ce92)

	* crypt-gpgme.c: remove <stdbool.h> and use "1" instead of "true".
	closes #3657

	see #3642 for the change that caused this bug.

2013-10-18 14:12 -0700  Michael Elkins  <me@sigpipe.org>  (b9693e10f431)

	* UPDATING: update UPDATING with 1.5.22 release date

2013-10-17 22:55 -0700  Brendan Cully  <brendan@kublai.com>  (6f5fe49fdf64)

	* .hgsigs: mutt-1.5.22 signed

2013-10-17 22:43 -0700  Brendan Cully  <brendan@kublai.com>  (941ba77040a8)

	* .hgtags: Added tag mutt-1-5-22-rel for changeset 8c5ea668e7e0

2013-10-17 22:43 -0700  Brendan Cully  <brendan@kublai.com>  (8c5ea668e7e0)

	* ChangeLog, VERSION, po/bg.po, po/ca.po, po/cs.po, po/da.po,
	po/de.po, po/el.po, po/eo.po, po/es.po, po/et.po, po/eu.po,
	po/fr.po, po/ga.po, po/gl.po, po/hu.po, po/id.po, po/it.po,
	po/ja.po, po/ko.po, po/lt.po, po/nl.po, po/pl.po, po/pt_BR.po,
	po/ru.po, po/sk.po, po/sv.po, po/tr.po, po/uk.po, po/zh_CN.po,
	po/zh_TW.po: automatic post-release commit for mutt-1.5.22

2013-10-16 16:04 +0000  Michael Elkins  <me@sigpipe.org>  (5648f4b2ed44)

	* rfc822.c: Rework logic to avoid advancing list pointer inside the
	for loop.

	closes #3531

2013-10-15 15:41 +0000  Ivan Vilata i Balaguer  <ivan@selidor.net>  (20954d6af1b1)

	* po/ca.po: updated Catalan translation

2013-10-11 15:51 +0000  Vsevolod Volkov  <vvv@mutt.org.ua>  (d60465c5ee6a)

	* po/uk.po: updated Ukranian translation

2013-10-11 15:49 +0000  Tamotsu TAKAHASHI  <ttakah@lapis.plala.or.jp>  (b9ba481ed72a)

	* po/ja.po: updated Japanese translation

2013-10-07 17:32 +0000  Michael Elkins  <me@sigpipe.org>  (804e46bc366e)

	* doc/pgpewrap.man, doc/pgpring.man: add missing files that were
	supposed to be included with
	[76f8df0ac80396559aa80e7f145be6f235a6db51]

2013-10-07 17:21 +0000  hhorak  <hhorak@redhat.com>  (76f8df0ac803)

	* doc/Makefile.am, doc/PGP-Notes.txt: adds some missing options in doc
	and adds man pages for binaries pgpewrap and pgpring.

	closes #3643

2013-10-07 17:09 +0000  esr  <esr@thyrsus.com>  (8d888e4d4f0b)

	* doc/makedoc.c, doc/muttrc.man.head: Problems with muttrc.5:

	Ambiguous or invalid backslash. This doesn't cause groff a problem.
	but it confuses doclifter and may confuse older troff
	implementations.

	Unknown or invalid macro. That is, one that does not fit in the
	macro set that the man page seems to be using. This is a serious
	error; it often means part of your text is being lost or rendered
	incorrectly.

	Use local definitions of .EX/.EE or .DS/.DE to avoid low-level troff
	requests in the page body. There are plans to add these to groff
	man; in the interim, this patch adds a compatible definition to your
	page.

2013-10-07 16:10 +0000  esr  <esr@thyrsus.com>  (02234de89d2a)

	* doc/mutt.man: Problems with mutt.1:

	Ambiguous or invalid backslash. This doesn't cause groff a problem.
	but it confuses doclifter and may confuse older troff
	implementations.

	Spelling error or typo.

2013-10-06 09:31 -0700  nihilhill  <nihilhill@gmail.com>  (24bb691dcde7)

	* crypt-gpgme.c: include <stdbool.h> for definition 'true'

	closes #3642

2013-10-05 15:57 +0800  Kevin McCarthy  <kevin@8t8.us>  (035306822940)

	* attach.c: Fix segfault when viewing text attachments in compose
	menu. (closes #3644)

	The segfault was introduced in changeset b9f9e3147eb4. Since
	decoding and charset conversion aren't needed for attachments when
	composing a message, this patch reverts to just using
	mutt_save_attachment() to view "raw data" for text attachments in
	the compose/send case.

	This patch is based on Michael Elkins' patch at http://dev.mutt.org/
	trac/attachment/ticket/3644/view_attach_compose_segfault with just a
	missing return value check added.

2013-10-06 14:32 +0000  Aaron Schrab  <aaron+mutt@schrab.com>  (6bcde5f1c7a7)

	* commands.c, hook.c, imap/command.c, imap/imap.c: Ensure that BUFFER
	variables are initialized to prevent later attempts to traverse an
	uninitialized pointer.

2013-10-05 19:25 +0000  Aaron Schrab  <aaron+mutt@schrab.com>  (132861c8b4e9)

	* commands.c, hook.c, imap/command.c, imap/imap.c, imap/message.c,
	init.c, keymap.c, pattern.c, score.c: Consistently use
	mutt_buffer_init function

	Despite the existence of the mutt_buffer_init function, most
	initializations were instead done with memset. Use the specific
	function instead to make it easier if later changes are made to how
	the initialization should be done.

2013-10-04 16:47 +0000  Michael Elkins  <me@sigpipe.org>  (0beba37c336b)

	* crypt-gpgme.c, handler.c, init.c, pop_auth.c: fix more comment typos

2013-07-23 14:07 +0200  Ondřej Bílka  <neleai@seznam.cz>  (bc7e7cf0fed3)

	* compose.c, crypt-gpgme.c, crypt-mod.h, curs_lib.c, date.c,
	doc/makedoc.c, editmsg.c, handler.c, imap/util.c, init.c,
	intl/gettextP.h, intl/plural.c, keymap.c, lib.c, mbox.c, mkdtemp.c,
	mutt.h, mutt_menu.h, mutt_ssl.c, mutt_ssl_gnutls.c, muttlib.c, mx.c,
	parse.c, pattern.c, pop.c, pop_auth.c, pop_lib.c, recvcmd.c,
	regex.c, send.c, signal.c, smime.c, snprintf.c, sort.h, thread.c:
	fix typos in comments

2013-04-16 20:12 -0700  Kevin McCarthy  <kevin@8t8.us>  (d3096e8796e7)

	* pager.c: Don't exit pager if quit=ask is answered "no".

	This patch addresses ticket 2788.

	Currently if you quit ('Q') from inside the pager, with quit=ask-yes
	or quit=ask-no, and you respond "no", mutt leaves you back in the
	index menu.

	This patch changes it so that mutt does not exit the pager.

2013-04-11 02:17 +0000  Michael Elkins  <me@sigpipe.org>  (4c5163272b9c)

	* browser.c, enter.c, imap/message.c, init.c, mbox.c, muttlib.c, mx.c,
	pop.c, query.c, smime.c, system.c: backout c1371176ea45

2013-04-11 01:59 +0000  Michael Elkins  <me@sigpipe.org>  (f99e91980f0f)

	* getdomain.c, init.c: Backed out changeset 1142ed8974fa

2013-04-10 23:40 +0000  Michael Elkins  <me@sigpipe.org>  (1142ed8974fa)

	* getdomain.c, init.c: use gethostname() to determine the system host
	name

	use getaddrinfo() to look up canonical DNS name, and fall back to
	hinting from /etc/resolv.conf

	see #3298

2013-04-10 22:38 +0000  Michael Elkins  <me@sigpipe.org>  (c1371176ea45)

	* browser.c, enter.c, imap/message.c, init.c, mbox.c, muttlib.c, mx.c,
	pop.c, query.c, smime.c, system.c: fix various compiler warnings;
	most were due to unchecked return values from system calls.

2013-03-04 04:14 +0000  is  <is@netbsd.org>  (d498f0e91914)

	* lib.c: use mkdtemp() to create temporary directory rather than
	mktemp() followed by mkdir()

	closes #3637

2013-02-23 03:12 +0000  Michael Elkins  <me@sigpipe.org>  (4c16c0d1ba9e)

	* pop.c, pop_lib.c: use of sscanf() had undefined behavior, replace
	with simple parsing instead

	see #3636

2013-02-22 18:31 +0000  Michael Elkins  <me@sigpipe.org>  (c7eff98bb299)

	* smime.c: increase string size by one byte to accomodate the
	terminating null character in fscanf() since the maximum field width
	does not include it

	closes #3636

	hat tip: Will Fiveash

2013-02-22 16:30 +0000  john beck  <john.beck@oracle.com>  (14596ac2b323)

	* rfc1524.c, sendlib.c: fix potential buffer overflow in off-by-one
	bounds checking error

	closes #3635

2013-02-08 17:06 +0000  Michael Elkins  <me@sigpipe.org>  (302044b4ed3f)

	* curs_lib.c: explicitly call mutt_refresh() prior to endwin() to
	force a screen redraw.

	[4903e80356d3] removed the call, but some environments (screen+xterm
	under SuSE11/12) don't properly flush without it prior to the
	endwin() call

2013-01-31 05:06 +0000  Michael Elkins  <me@sigpipe.org>  (2a1c5d3dd72e)

	* curs_lib.c: do not use mutt_message() to display prompt in
	mutt_yesorno().

	properly calculate screen width of prompt string by using
	mutt_strwidth() rather than strlen()

	use safe_asprintf() return the formatted yes/no string since
	specifying COLS+1 is wrong when dealing with multibyte characters

	closes #3412 closes #3352

2013-01-23 21:52 +0000  Michael Elkins  <me@sigpipe.org>  (b86b154f3988)

	* buffy.c, buffy.h, mh.c, mx.h: add support for $mail_check_recent to
	mh mailbox driver

	closes #3629

2013-01-23 19:52 +0000  Michael Elkins  <me@sigpipe.org>  (4903e80356d3)

	* curs_lib.c: do not explicitly reset the terminal attributes and move
	the cursor in mutt_endwin(). endwin() itself should handle this.

	closes #3627

2013-01-22 02:02 +0000  Michael Elkins  <me@sigpipe.org>  (acc8b2afdf29)

	* configure.ac: remove PKG_CHECK_MODULE() check and always use
	AC_CHECK_HEADERS()

	only check for <idn/idna.h> when <idna.h> isn't found

	closes #3626

2013-01-20 21:45 +0000  Michael Elkins  <me@sigpipe.org>  (98e031cd81d4)

	* configure.ac, main.c, mutt_idna.h: use pkg-config to look for libidn
	if available.

	checking <idn/idna.h> rather than including -I/usr/include/idn for
	Solaris 11.

	closes #3624

2013-01-17 23:04 +0000  Michael Elkins  <me@sigpipe.org>  (7fcc0049f250)

	* attach.c: backout [392e945dfba7]

	closes #3293 see #3234

2013-01-17 23:03 +0000  Michael Elkins  <me@sigpipe.org>  (b9f9e3147eb4)

	* attach.c: when falling back to viewing an attachment as text in the
	internal pager, perform charset conversion

	this change is meant to replace [392e945dfba7]

	see #3234 see #3293

2013-01-17 02:43 +0000  Michael Elkins  <me@sigpipe.org>  (571e945d6544)

	* hcache.c, hcache.h, imap/util.c, mh.c, pop.c: use a separate flag
	for mutt_hcache_store() to signal that the gettimeofday() value
	should be substituted, so that a 0 uidvalidity can be used by the
	imap driver.

	closes #3501

2013-01-17 02:10 +0000  Michael Elkins  <me@sigpipe.org>  (b58cdfacfb89)

	* attach.c, handler.c, protos.h: change semantics of
	mutt_is_autoview() to return 1 if there is a matching mailcap entry
	and either $implicit_autoview is set or the MIME type matches the
	user's auto_view list.

	closes #3496 closes #3426

2013-01-14 20:39 -0800  Michael Elkins  <me@mutt.org>  (1a75c9e477b4)

	* from.c: detect pipermail-style obscured return path in mbox From
	lines

	see #1200

2013-01-14 19:23 -0800  Michael Elkins  <me@mutt.org>  (8c75478735a3)

	* curs_main.c: allow use of sync-mailbox when the current limit has no
	visible messages

	closes #3538

2013-01-14 08:50 -0800  Michael Elkins  <me@sigpipe.org>  (05cd8d0d1450)

	* handler.c: avoid debug warning about trailing whitespace in a base64
	encoded attachment

	closes #3558

2013-01-04 04:05 +0000  Michael Elkins  <me@sigpipe.org>  (90f7869decec)

	* Makefile.am: When "make install" fails to chgrp or chmod the
	mutt_dotlock binary, add the reason why we are doing this so the
	user knows what to look for.

2013-01-03 16:12 -0800  Michael Elkins  <me@sigpipe.org>  (d7d26c40e1e5)

	* pager.c: Fix regression introduced by [10cc06eff52b] where the
	CLEARLINE() removal was not replaced by a move() to position the
	cursor at the correct location to draw the status bar.

	closes #3619

2013-01-03 19:04 +0000  Michael Elkins  <me@sigpipe.org>  (7fe92ce1cfc1)

	* parse.c: Remove unused variable `matched'.

2013-01-03 19:04 +0000  Michael Elkins  <me@sigpipe.org>  (6f4ce8ce80a7)

	* parse.c: Fix memory leak when multiple x-label or supersedes header
	fields exist in the header.

	In order to keep the current behavior where the value of the last
	header field present is the one used, free any previous value.

2013-01-03 08:03 -0800  Michael Elkins  <me@sigpipe.org>  (21457574a9b6)

	* main.c: Backed out changeset bf84f24e512d

2013-01-02 23:43 +0000  Michael Elkins  <me@sigpipe.org>  (bf84f24e512d)

	* main.c: display +/-NCURSES_WIDECHAR when displaying ncurses version
	to show whether we are linked against -lncurses or -lncursesw

2013-01-01 21:39 +0100  Matthias Andree  <matthias.andree@gmx.de>  (ea52317444ef)

	* hcache.c: Drop unneeded variable HEADER_CACHE that causes clang
	warnings.

	The variable was unused and clang warned that it was not emitted to
	the .o file.

2012-12-31 23:29 +0000  Michael Elkins  <me@sigpipe.org>  (32ec63debe52)

	* init.h: fix xml validation error in manual.xml in auto-generated
	content due to missing paragraph mark in the $editor docstring

2012-12-31 15:03 -0800  guns  <self@sungpae.com>  (474e9e809054)

	* rfc822.c: Fix accidental var redeclation with --enable-exact-address

	closes #3615

2012-12-31 14:54 -0800  Michael Elkins  <me@sigpipe.org>  (bf6bf2a80c35)

	* merge

2012-12-31 14:52 -0800  Michael Elkins  <me@sigpipe.org>  (5196c3d6c5d0)

	* curs_lib.c: reset to color normal before clearing to end of line
	when printing a message/error string

	closes #3617

2012-12-31 19:06 +0000  Michael Elkins  <me@sigpipe.org>  (ca67a3dad949)

	* doc/gen-map-doc: update regexp to include const keyword. The auto
	generated documentation of functions was failing due to a change in
	the source code format.

2012-12-30 19:48 -0800  Antonio Radici  <antonio@dyne.org>  (b1b49019fec0)

	* headers.c: Ensure that the in-reply-to header field was actually
	present before deciding it was removed.

	closes #3378

2012-12-30 19:17 -0800  Michael Elkins  <me@sigpipe.org>  (a90f57e0adbd)

	* ChangeLog: update ChangeLog

2012-12-30 19:14 -0800  Michael Elkins  <me@sigpipe.org>  (c03ba94d8750)

	* imap/message.c: add __FREE_CHECKED__

2012-12-30 19:12 -0800  Michael Elkins  <me@sigpipe.org>  (f7247ad288e7)

	* UPDATING: document the TLS changes since 1.5.21

2012-12-30 18:49 -0800  Michael Elkins  <me@sigpipe.org>  (10cc06eff52b)

	* color.c, compose.c, curs_lib.c, curs_main.c, menu.c, mutt_curses.h,
	pager.c, remailer.c: make the SETCOLOR() macro use bkgdset() on
	systems which have it, and attrset() when we don't.

	closes #3005

2012-12-30 09:26 -0800  Michael Elkins  <me@sigpipe.org>  (8c0b9ddee11f)

	* configure.ac: remove m4_translit because it generates a warning with
	newer versions of autoconf when used in AC_INIT. Instead, use tr -d
	to output the version string without a trailing newline.

2012-12-27 21:04 -0800  Michael Elkins  <me@mutt.org>  (b0265d385207)

	* version.sh: restore ability for version.sh to cope with a repository
	directory with a space in it.

2012-12-27 20:33 -0800  Aaron Schrab  <aaron@schrab.com>  (13c9a5d820f2)

	* configure.ac, version.sh: Use the directory where the version.sh
	script is located as the directory where it is run. Since this will
	be run in a separate shell anyway, there's no need to worry about
	changing current directory.

	This eliminates the need for the caller to specify where the source
	directory is located, and doesn't require that the code take special
	care to use the appropriate directory. The fallback method of using
	`cat VERSION` was broken in this respect, it would not work when run
	from a different directory.
	--- configure.ac | 2 +- version.sh | 7 ++++--- 2 files
	changed, 5 insertions(+), 4 deletions(-)

2012-12-27 17:37 -0800  Michael Elkins  <me@sigpipe.org>  (0f281c548d69)

	* configure.ac: use [] around body of AC_CHECK_HEADER to avoid
	problems with older versions of autoconf

2012-12-27 18:56 -0800  Michael Elkins  <me@mutt.org>  (8728418605fd)

	* configure.ac: avoid using m4_esyscmd_s() since it is not available
	in older versions of autoconf. use m4_esyscmd() and m4_translit()
	to whack the newline instead.

	see #3613

2012-12-22 18:00 -0800  Michael Elkins  <me@sigpipe.org>  (de974f67eba3)

	* configure.ac, init.h, mutt_ssl.c: Uses SSLv23_client_method() in
	mutt_ssl_starttls() because TLSv1_2_client_method() does not honor
	the SSL_OP_NO_TLS* flags.

	closes #3612

2012-12-22 15:04 -0800  Michael Elkins  <me@sigpipe.org>  (d07c9ee9a92b)

	* configure.ac: If neither --with-idn nor --without-idn are given, use
	-I/usr/include/idn when checking for the libidn header files, if
	present (needed for Solaris 11).

	Don't bother checking for the idna_* functions if we didn't find
	-lidn

2012-12-21 11:17 +0100  Matthias Andree  <matthias.andree@gmx.de>  (7d55bad3b11f)

	* patchlist.sh: Fix VPATH-based generation of non-hg-mq based
	patchlists.

	Note: Makefile.am runs patchlist.sh with $(srcdir)/PATCHES provided
	on stdin.

2012-12-21 11:07 +0100  Matthias Andree  <matthias.andree@gmx.de>  (759dd53302a0)

	* version.sh: Fix VPATH build outside Mercurial repositories.

2012-12-21 12:37 -0800  Michael Elkins  <me@sigpipe.org>  (494af2a964cb)

	* Makefile.am: add version.sh and check_sec.sh to EXTRA_DIST so they
	are including in the "make dist" output.

2012-12-20 21:13 -0800  Michael Elkins  <me@mutt.org>  (5554d811eb99)

	* imap/util.c: fix forgotten RETSIGTYPE change id [18a724e9eba0]

2012-12-20 20:49 -0800  Michael Elkins  <me@mutt.org>  (18a724e9eba0)

	* configure.ac, sendlib.c, signal.c: remove deprecated check for
	signal() return type

2012-12-20 20:45 -0800  Michael Elkins  <me@mutt.org>  (6de2578088ab)

	* configure.ac: update configure.ac with autoupdate

2012-12-20 20:34 -0800  Michael Elkins  <me@mutt.org>  (fe28a8bdd598)

	* configure.ac: change AM_CONFIG_HEADER to AC_CONFIG_HEADERS and move
	it after the AM_INIT_AUTOMAKE. config.h was not being generated
	from the dist package.

2012-12-20 17:09 -0800  Michael Elkins  <me@sigpipe.org>  (21c085ae6e8f)

	* configure.ac: modernize intialization of configure.ac

2012-12-21 00:38 +0100  Matthias Andree  <matthias.andree@gmx.de>  (0703095bf52d)

	* Makefile.am: Fix 'make distcheck': missing txt2c* and po/mutt.pot
	cleanup

2012-12-20 14:44 -0800  Michael Elkins  <me@sigpipe.org>  (f8774119c433)

	* menu.c: remove redundant #include statements

2012-12-20 14:40 -0800  Michael Elkins  <me@sigpipe.org>  (489031af8fdd)

	* menu.c: remove extern decl for Charset_is_utf8 since menu.c includes
	mbyte.h which has the same decl.

2012-12-20 11:20 -0800  Michael Elkins  <me@mutt.org>  (6674c087fd4f)

	* configure.ac: backout out changeset 36b0cc717ecc

2012-12-19 15:26 -0800  Michael Elkins  <me@sigpipe.org>  (879c9516154c)

	* crypt-gpgme.c: allow for CRLF line endings when comparing for the
	OpenPGP block identifiers

	adapted from http://svnweb.freebsd.org/ports/head/mail/mutt/files
	/patch-pgp?revision=301308&view=markup

2012-12-19 14:52 -0800  Michael Elkins  <me@sigpipe.org>  (41089c2982e3)

	* pager.c: support nbsp in the pager.

	imported from http://svnweb.freebsd.org/ports/head/mail/mutt/files
	/patch-nbsp?revision=301308&view=markup

2012-12-19 14:40 -0800  Michael Elkins  <me@sigpipe.org>  (fd2d94a0eb20)

	* configure.ac: detect newer BDB versions up to 5.2

	imported from http://svnweb.freebsd.org/ports/head/mail/mutt/files
	/patch-bdb?revision=301308&view=markup

2010-07-22 20:06 +0200  Fabian Groffen  <grobian@gentoo.org>  (bc39bac75ea8)

	* regex.c: http://thread.gmane.org/gmane.mail.mutt.devel/15710

	Interix doesn't have btowc, but it does have mbtowc. Linux manpage
	also discourages the use of btowc.

2012-12-19 13:29 -0800  Petr Pisar  <petr.pisar@atlas.cz>  (f7bd9642217f)

	* po/cs.po: updated cs.po

2012-12-19 11:56 -0800  Michael Elkins  <me@sigpipe.org>  (73900ca5db9a)

	* menu.c: use WACS_* macros for printing wide versions of the line
	drawing characters when linking against ncursesw.

	This patch is based on http://prefix.gentooexperimental.org:8000
	/mutt-patches/file/fea851a2808f/solaris-ncurses-chars.patch

2012-12-19 11:08 -0800  Michael Elkins  <me@sigpipe.org>  (36b0cc717ecc)

	* configure.ac: make configure define _POSIX_C_SOURCE, _XOPEN_SOURCE
	and _XOPEN_SOURCE_EXTENDED to comply with POSIX.1-2008 and XSI
	conforming applications.

2012-12-19 06:57 -0800  Vsevolod Volkov  <vvv@mutt.org.ua>  (52219fecdac8)

	* po/ru.po: update ru.po

2012-12-19 06:55 -0800  Vincent Lefevre  <vincent@vinc17.org>  (caf64f14142d)

	* charset.c: remove duplicate const keyword

2012-12-18 20:46 -0800  Michael Elkins  <me@mutt.org>  (940e528ef852)

	* mutt_ssl.c: disable tls v1.1/1.2 in mutt_ssl_starttls() based on
	$ssl_use_tlsv1_*

	see #3571

2012-12-18 20:38 -0800  Michael Elkins  <me@mutt.org>  (6bdd35fb3378)

	* mutt_ssl_gnutls.c: add support for TLSv1.1/1.2 when using GNUTLS.

	see #3571

2012-12-18 19:44 -0800  hncaldwell  <hncaldwell>  (fab920f01ca7)

	* init.h, mutt.h, mutt_ssl.c: add variables for disabling TLSv1.1/1.2
	when compiled against OpenSSL 1.0.1

	see #3571

2012-12-18 13:50 -0800  Michael Elkins  <me@mutt.org>  (f251d523ca5a)

	* headers.c, lib.h, mutt_crypt.h, parse.c, pop_lib.c, postpone.c,
	rfc1524.c, rfc822.c, send.c, sendlib.c, url.c: rename iswsp() to
	is_email_wsp()

	add new inline funtion skip_email_wsp() to be used in lieu of
	SKIPWS() when parsing ASCII protocols rather than user input.

	change use of SKIPWS() to skip_email_wsp() in places where it is
	likely to be a problem.

2012-12-18 02:21 -0800  Michael Elkins  <me@mutt.org>  (897dcc62e4aa)

	* sendlib.c: fix problem where mutt_substrdup() was called with the
	start pointer > end pointer, as a result of using SKIPWS(). This
	occurred because the header field had an empty body, so the trailing
	newline was skipped over. The fix is to just skip over ascii space
	and htab.

	closes #3609

2012-12-18 01:53 -0800  Honza Horak  <hhorak@redhat.com>  (d7f4b2e2b09a)

	* mutt_ssl_gnutls.c: if the peer's x.509 cert is not valid, we need to
	allow the user to inspect it even if the digital signatures are
	valid

	closes #3506

2012-12-17 20:42 -0800  Vincent Lefevre  <vincent@vinc17.org>  (722c47f6ede9)

	* po/fr.po: updated fr.po

2012-12-17 17:09 -0800  Honza Horak  <hhorak@redhat.com>  (ca4747442189)

	* pop.c: fix segfault in pop driver. when rereading the message
	header, the ENVELOPE* struct is freed, but ctx->subj_hash retains a
	pointer to env->real_subj, so the hash table entry must be deleted
	prior to calling mutt_free_envelope()

	http://pkgs.fedoraproject.org/cgit/mutt.git/tree/mutt-1.5.21-pophash
	.patch?h=f18

2012-12-17 16:47 -0800  Petr Pisar  <petr.pisar@atlas.cz>  (9f8e41dd4e1d)

	* crypt-gpgme.c: Fix NULL pointer dereference in notation name

	closes #3574

2012-12-17 10:39 -0800  Michael Elkins  <me@sigpipe.org>  (e6b271ed1d7f)

	* configure.ac, mutt_ssl.c: use TLSv1.2 if available in the system
	OpenSSL when using starttls

2012-12-17 10:09 -0800  Michael Elkins  <me@sigpipe.org>  (d77d81a69999)

	* mutt_ssl.c: use SSL_get_version() to display the actual SSL protocol
	used rather than the fixed string SSL.

2012-12-16 20:23 -0800  Andrew Gaul  <andrew@gaul.org>  (ed06326ae8a8)

	* doc/dotlock.man, doc/makedoc.c, doc/smime_keys.man, po/bg.po,
	po/ca.po, po/cs.po, po/da.po, po/de.po, po/el.po, po/eo.po,
	po/es.po, po/et.po, po/eu.po, po/fr.po, po/ga.po, po/gl.po,
	po/hu.po, po/id.po, po/it.po, po/ja.po, po/ko.po, po/lt.po,
	po/nl.po, po/pl.po, po/pt_BR.po, po/ru.po, po/sk.po, po/sv.po,
	po/tr.po, po/uk.po, po/zh_CN.po, po/zh_TW.po, rfc1524.c: Correct
	typos

2012-12-16 19:33 -0800  Michael Elkins  <me@mutt.org>  (5e745e37fe6e)

	* init.h: update documentation for $pgp_getkeys_command to note that
	%r is replaced with the email address, not the public key ID

	closes #1208

2012-12-16 13:28 -0800  Michael Elkins  <me@mutt.org>  (1cc05de753c2)

	* rfc822.c, rfc822.h: use new function iswsp() in place of isspace()
	when testing for whitespace.

	closes #3608 closes #2956

2012-12-15 07:48 -0800  Michael Elkins  <me@mutt.org>  (8aee8497cc2b)

	* imap/command.c, imap/imap.c, imap/imap_private.h, imap/message.c,
	imap/util.c: make imap_private.h include message.h for
	IMAP_HEADER_DATA definition

	cast &ctx->data to IMAP_HEADER_DATA** to fix compiler warning

	imap_free_header_data should check for *data being NULL, rather than
	"data"

2012-09-09 19:54 -0700  Andrew Gaul  <andrew@gaul.org>  (d39813193f27)

	* imap/imap_private.h, imap/message.c: Make imap_free_header_data
	type-safe

	Also push conditional into function for safety and consistency with
	other free functions.

2012-12-08 12:31 +0100  Matthias Andree  <matthias.andree@gmx.de>  (c4c65eadeb71)

	* Makefile.am: Fix VPATH build by running txt2c.sh from ${srcdir}
	rather than ".".

2012-12-07 09:51 -0800  Michael Elkins  <me@sigpipe.org>  (d626fb87c489)

	* crypt-gpgme.c: invoke gpgme_check_version() as required to
	initialize the library.

	move locale code to initialization function.

	closes #3300

2012-12-06 07:56 -0800  Michael Elkins  <me@mutt.org>  (ed5ad234aeed)

	* init.h: additional documentation for $editor. closes #3602

2012-12-01 14:48 -0800  Michael Elkins  <me@mutt.org>  (dace74dd904a)

	* doc/manual.xml.head: list-reply documentation should mention its
	behavior wrt the List-Post header field.

	closes #3599

2012-12-01 14:32 -0800  Michael Elkins  <me@mutt.org>  (109ebf6d4e53)

	* send.c: don't perform rfc3676 space stuffing when recalling a
	postponed message where it has already been done.

	closes #3600

2012-12-01 14:31 -0800  Michael Elkins  <me@mutt.org>  (2bf065dd23d6)

	* ascii.c: make ascii_strcasecmp properly handle unequal length
	strings with the same prefix

	closes #3601

2012-10-16 18:13 -0500  David Champion  <dgc@uchicago.edu>  (d414971f0c48)

	* .hgignore, Makefile.am, main.c, muttbug.sh.in, txt2c.c, txt2c.sh:
	Add compiler and configure info to mutt -v output (closes #3537)

	Makefile(.am) updated to produce conststrings.c, which contains C
	strings representing:

	* the compiler's own version information;
	* the CFLAGS value from the Make environment
	* the ./configure options

	main.c is updated to print them when running 'mutt -v'.

	txt2c.sh is added to produce conststrings.c. txt2c.sh uses a
	compiled txt2c binary if possible, for complete fidelity to the
	source strings in whatever encoding they may use. If txt2c is not
	available (could not be compiled, or was not compiled natively) it
	falls back on a shell function to approximate the output using sed
	and tr.

2012-07-22 11:15 -0700  Brendan Cully  <brendan@kublai.com>  (70810a88ce9f)

	* muttlib.c: mutt_buffer_init: just memset the buffer (closes #3588)

	This was meant to be part of the previous commit.

2012-07-21 19:51 -0700  Brendan Cully  <brendan@kublai.com>  (99dbd23ce78f)

	* imap/imap.c, imap/util.c, mbyte.c, muttlib.c, parse.c, protos.h:
	Split mutt_buffer_new out of mutt_buffer_init.

	Currently, no callers were providing a non-NULL buffer to
	mutt_buffer_init, and splitting it will allow more sane semantics
	for buffer allocation, initialization, and destruction in a later
	patch.

2012-07-20 12:32 -0700  Brendan Cully  <brendan@kublai.com>  (6d6df167185c)

	* commands.c, hook.c, init.c, pattern.c: Do not use stack-allocated
	space for BUFFERs

	It will cause mutt_buffer_* to segfault if it needs to grow the
	space. Thanks to Steve Losh for discovering the issue. I have done
	some simple grepping to find other cases, but some may remain.

2012-07-08 22:40 -0700  Dan Fandrich  <dan@coneharvesters.com>  (2f2ebc24920d)

	* send.c: Set text_flowed after send-hook has been applied (closes
	#3550)

2012-07-08 22:27 -0700  Brendan Cully  <brendan@kublai.com>  (5bf02605d988)

	* mutt_ssl_gnutls.c: silence some style warnings

2012-07-08 17:34 -0700  Antonio Radici  <antonio@dyne.org>  (33415ca7d976)

	* copy.c, crypt.c, edit.c, enter.c, init.c: Fix some spelling errors
	(closes #3493)

2012-07-08 17:25 -0700  Brendan Cully  <brendan@kublai.com>  (243710db60e0)

	* mutt_ssl_gnutls.c: gnutls:tls_compare_certificates: check strstr for
	failure (closes #3547)

	A malformed certificate file could cause strstr to return an
	unhandled NULL. Thanks to hhorak for the proposed patch. This one is
	similar but avoids using memmem for the first time (I am not sure
	about its portability).

2012-07-07 21:57 -0700  Antonio Radici  <antonio@dyne.org>  (8fabaffc2c00)

	* init.c: check_charset: check for NULL before calling strtok_r
	(closes #3326)

	Otherwise, if strtok_r cannot handle NULL an empty *charset setting
	will segfault

2012-07-07 15:50 -0700  Brendan Cully  <brendan@kublai.com>  (c6a44f4f6a99)

	* imap/auth_sasl.c: Do not use SASL for login unless AUTH=LOGIN is
	advertised (closes #3556)

2012-05-25 22:30 +0200  Marco Paolone  <marcopaolone@gmail.com>  (e452440f92a4)

	* po/it.po: Update Italian translation

2012-05-24 22:02 -0700  Brendan Cully  <brendan@kublai.com>  (0488deb39a35)

	* configure.ac: Remove AM_C_PROTOTYPES from configure.ac (closes
	#3579)

	I doubt we have any users of that macro nowadays. It will be
	interesting to hear about it if we do.

2012-05-23 23:29 -0400  Brendan Cully  <brendan@kublai.com>  (0fb6d7579fd1)

	* account.h: Support passwords of up to 127 characters.

	I received a report on IRC of a failure due to a 64-byte password.

2012-04-29 22:15 -0700  Brendan Cully  <brendan@kublai.com>  (41a8d7dceb6c)

	* mutt_ssl_gnutls.c: gnutls: catch gnutls_init failures

	I haven't actually experienced these, but it seems like a good idea.

2012-04-29 22:14 -0700  Brendan Cully  <brendan@kublai.com>  (aadaeb69cbd0)

	* mutt_sasl.c: give user time to read SASL init error message

2011-12-20 22:24 -0800  TAKAHASHI Tamotsu  <ttakah@lapis.plala.or.jp>  (c26dbc7021f4)

	* po/ja.po: Updated Japanese translation

2011-12-03 11:13 -0800  Dan Fandrich  <dan@coneharvesters.com>  (9e756d1adb76)

	* addrbook.c, browser.c, charset.c, color.c, compose.c, crypt-gpgme.c,
	curs_lib.c, curs_main.c, date.c, enter.c, functions.h, globals.h,
	handler.c, help.c, imap/auth.c, imap/command.c, imap/message.c,
	imap/utf7.c, imap/util.c, init.c, init.h, keymap.c, keymap.h, lib.c,
	mapping.h, mime.h, mutt_ssl.c, pager.c, parse.c, pattern.c,
	pgpkey.c, pgpmicalg.c, pop_auth.c, postpone.c, protos.h, query.c,
	recvattach.c, remailer.c, rfc2047.c, rfc822.c, rfc822.h, sendlib.c,
	url.c: Declare many structures const (closes #3552)

	Many structs used in mutt are actually constant but are defined
	without the 'const' keyword. This can slow initialization (slightly)
	in some environments due to extra copying and increases the amount
	of writable RAM required at run-time, which can be significant on
	non-MMU systems. Using const can also increase the opportunities for
	compiler optimization.

	The attached patch marks many such structures as const. On my test
	x86 build, this reduces the size of .data by over 50%.

2011-12-03 11:07 -0800  Dan Fandrich  <dan@coneharvesters.com>  (1ed2657f6e24)

	* ascii.c: Inline some small, often-used functions (closes #3551)

	When I first sent this patch to the mailing list in 2008, my
	benchmarking found a reduction in startup time of 15%.

2011-11-26 20:41 -0800  Vincent Lefevre  <vincent@vinc17.net>  (d7b14ea9f708)

	* po/fr.po: Updated French translation

2011-11-28 09:46 -0800  Michael Elkins  <me@mutt.org>  (6f65f6d7d4c9)

	* enter.c: make kill-eow and kill-word consistent in considering words
	to consist only of alphanumeric characters. closes #3549.

2011-11-25 12:52 -0800  Michael Elkins  <me@mutt.org>  (ab1b84289213)

	* sendlib.c: Check that $sendmail is set to avoid potential segfault.
	Closes #3548.

2011-07-13 11:05 -0500  David Champion  <dgc@uchicago.edu>  (b01d63af6fea)

	* hcache.c: Invalidate header caches when spam rules change. closes
	#3473

	User 'exg' on #mutt reported a problem when using header cache with
	IMAP and spam rules. Spam tags are retrieved from cache and not
	updated when spam rules change.

	1. Enable header caching in muttrc 2. Set spam rules in muttrc 3.
	Use IMAP (or POP or Maildir). Your spam rules store spam tags into
	your message headers, and these get cached. 4. Quit mutt 5. Change
	your spam rules in muttrc 6. Relaunch mutt 7. Because of header
	caching, the rfc822 headers are not reparsed, and spam rules are
	not reapplied. User has outdated spam tags.

	Spam rules are applied during rfc822 header parsing because it's the
	only time we get a full and unadulterated view of all headers. Once
	header parse is done we have only processed headers and 'user
	headers' (X-headers). We might do spam rule matching against the
	struct HEADER copy of headers, except that:

	a. the header might not be in HEADER if it's non-standard and not an
	X-header; b. spam rules are regular expressions matching any
	arbitrary header line, and we would need to map these regexps to
	the header used to create the HEADER fields. This would change
	the syntax and behavior of spam rules dramatically.

	One solution, perhaps stopgap, is to invalidate the header cache
	when spam rules change. That's what this patch does. It alters the
	hcache versioning algorithm so that in addition to using the
	compiled-in checksum of mutt's structures definitions, we also mix
	in the user's runtime spam rules. Any time spam rules change the
	hcachever hash value changes, causing the hcache to be rewritten.

2011-07-01 18:21 -0700  Brendan Cully  <brendan@kublai.com>  (54a454492bd0)

	* ChangeLog: Update ChangeLog

2011-07-01 17:23 -0700  Brendan Cully  <brendan@kublai.com>  (94eee9410f7a)

	* version.sh: version.sh: fix(?) failure due to bizarre sh quoting
	rules

	I have not checked POSIX, and sh quoting always makes my head hurt,
	but this seems to suffice for my sh (actually bash in sh mode) when
	HGROOT contains a space.

2011-05-23 13:22 +0200  Olaf Hering  <olaf@aepfle.de>  (81a7c41040bf)

	* browser.c, browser.h: folder_file: change type of new from short to
	int

	As requested by Rocco Rutte in bug #2421 increase the type to int.

	Signed-off-by: Olaf Hering <olaf@aepfle.de>

	* pgppubring.c: fix gcc 4.6 warning -Wunused-but-set-variable in
	pgppubring.c

	pgppubring.c: In function 'pgp_parse_pgp3_sig': pgppubring.c:424:17:
	warning: variable 'hashalg' set but not used [-Wunused-but-set-
	variable] pgppubring.c:423:17: warning: variable 'pkalg' set but not
	used [-Wunused-but-set-variable]

	Signed-off-by: Olaf Hering <olaf@aepfle.de>

2011-06-29 12:01 -0500  David Champion  <dgc@uchicago.edu>  (8b5e41c6a517)

	* version.sh: version.sh: 1003.1 "-k" instead of obsolete "+" syntax
	(closes: #3528)

	* configure.ac, version.sh: version.sh: support building outside of
	source directory

	Reported by Emanuele Giaquinta <e.giaquinta@glauco.it>. Thanks also
	to Michael Elkins <me@sigpipe.org>.

2011-06-25 20:07 -0700  Brendan Cully  <brendan@kublai.com>  (b477d7c5733e)

	* imap/command.c: Parentheses suggested

	* imap/command.c: Do not subscribe to \noselect mailboxes. Closes
	#3445

2011-06-25 15:42 -0700  Honza Horak  <hhorak@redhat.com>  (0e4f1782ea2e)

	* imap/message.c: Avoid creating sparse ctx array when fetch responses
	are ignored. Closes #3288.

2011-06-25 15:23 -0700  Brendan Cully  <brendan@kublai.com>  (53dcb3a21da4)

	* compose.c, muttlib.c: Silence some eclipse warnings

2011-06-20 16:39 -0700  Michael Elkins  <me@mutt.org>  (b574d6f9f532)

	* sendlib.c: rfc2047 encode recipient list in resent-to header field.
	closes #3512

	* rfc822.c: copy idn status when duplicating address object

2011-06-20 16:07 -0700  antonio  <antonio@dyne.org>  (1bb9002567c4)

	* doc/manual.xml.head: fix regexp example in documentation

2011-06-18 21:29 -0700  antonio  <antonio@dyne.org>  (b9856206eee4)

	* mutt_ssl_gnutls.c: Remove the deprecated
	gnutls_certificate_verify_peers() in favour of the new
	gnutls_certificate_veirfy_peers2()

	Reported on http://bugs.debian.org/624085

	closes #3516

2011-06-18 21:07 -0700  Michael Elkins  <me@mutt.org>  (beebe6a4d25d)

	* imap/auth_login.c: clear logging in message when login succeeded.
	closes #3524

2011-05-23 12:59 +0200  Olaf Hering  <olaf@aepfle.de>  (8570f8a10572)

	* smime.c: fix gcc 4.6 warning -Wunused-but-set-variable in smime.c

	smime.c: In function 'smime_handle_entity': smime.c:1663:8: warning:
	variable 'last_pos' set but not used [-Wunused-but-set-variable]

	Signed-off-by: Olaf Hering <olaf@aepfle.de>

	* pgp.c: fix gcc 4.6 warning -Wunused-but-set-variable in pgp.c

	pgp.c: In function 'pgp_application_pgp_handler': pgp.c:254:8:
	warning: variable 'start_pos' set but not used [-Wunused-but-set-
	variable]

	Signed-off-by: Olaf Hering <olaf@aepfle.de>

	* crypt-gpgme.c: fix gcc 4.6 warning -Wunused-but-set-variable in
	crypt-gpgme.c

	crypt-gpgme.c: In function 'show_one_sig_status': crypt-
	gpgme.c:1311:21: warning: variable 'uid' set but not used [-Wunused-
	but-set-variable] crypt-gpgme.c: In function
	'pgp_gpgme_application_handler': crypt-gpgme.c:2285:27: warning:
	variable 'anywarn' set but not used [-Wunused-but-set-variable]
	crypt-gpgme.c:2159:8: warning: variable 'start_pos' set but not used
	[-Wunused-but-set-variable] crypt-gpgme.c: In function
	'crypt_getkeybystr': crypt-gpgme.c:4094:7: warning: variable 'match'
	set but not used [-Wunused-but-set-variable]

	Signed-off-by: Olaf Hering <olaf@aepfle.de>

	* rfc1524.c: fix gcc 4.6 warning -Wunused-but-set-variable in
	rfc1524.c

	rfc1524.c: In function 'rfc1524_expand_filename': rfc1524.c:453:20:
	warning: variable 'r' set but not used [-Wunused-but-set-variable]

	Signed-off-by: Olaf Hering <olaf@aepfle.de>

	* compose.c: fix gcc 4.6 warning -Wunused-but-set-variable in
	compose.c

	compose.c: In function 'redraw_crypt_lines': compose.c:113:7:
	warning: variable 'off' set but not used [-Wunused-but-set-variable]

	Signed-off-by: Olaf Hering <olaf@aepfle.de>

	* imap/imap.c: fix gcc 4.6 warning -Wunused-but-set-variable in imap.c

	imap.c: In function 'imap_open_mailbox': imap.c:558:15: warning:
	variable 'conn' set but not used [-Wunused-but-set-variable] imap.c:
	In function 'imap_open_mailbox_append': imap.c:777:15: warning:
	variable 'conn' set but not used [-Wunused-but-set-variable] imap.c:
	In function 'imap_subscribe': imap.c:1816:15: warning: variable
	'conn' set but not used [-Wunused-but-set-variable] imap.c: In
	function 'imap_complete': imap.c:1944:15: warning: variable 'conn'
	set but not used [-Wunused-but-set-variable]

	Signed-off-by: Olaf Hering <olaf@aepfle.de>

2011-05-22 22:13 -0700  Brendan Cully  <brendan@kublai.com>  (1fc2afbf9e3a)

	* keymap.c, mbox.c: Fix some minor warnings

2011-03-30 07:52 -0700  Michael Elkins  <me@mutt.org>  (f7160c94ff70)

	* keymap.c: fix bug where SIGWICH is ignored when $imap_keepalive <
	$timeout

	closes #3507

2011-03-07 10:17 -0600  David Champion  <dgc@uchicago.edu>  (8d0281f79b21)

	* configure.ac, dotlock.c, mutt.h, version.sh: Extra information in
	mutt version string, redux.

	Restores [f1b4d1d17200] functionality with a slight change to keep
	'make dist' working (see backout in [6b38124a5b81]).

	Automake is too much voodoo for me at this time, so I let it keep
	VERSION. mutt.h defined MUTT_VERSION as VERSION and the code used
	that, so I removed MUTT_VERSION from mutt.h and put it into config.h
	via configure.ac. A couple of tweaks were needed elsewhere. This
	restores the fancy-versioning feature within mutt and keeps 'make
	dist' happy.

2011-03-06 07:31 -0800  Brendan Cully  <brendan@kublai.com>  (6b38124a5b81)

	* configure.ac, version.sh: Back out f1b4d1d17200. It is nice, but it
	breaks make dist.

2011-01-03 13:19 -0600  David Champion  <dgc@uchicago.edu>  (b107737c415c)

	* patchlist.sh: Include mq-based patches in the mutt patch list.

	This augments the contents of the PATCHES file, so that mq-based
	builds do not need to maintain that file.

	* configure.ac, version.sh: Include extra information in mutt version
	string for developer builds.

	When a build is based on an hg clone, include extra information
	about the changeset node, distance from a tagged release, and mq
	applied patch count.

	For example, after this patch is applied my mutt build identifies
	itself (in mutt -v and in <show-version>) as:

	Mutt 1.5.21+26,mq+22 (7edc2073390d) (2010-09-15)

	I have applied 26 changesets applied since 1.5.21 was tagged, 22 of
	which are in my mq patch series. A 1.5.21 release build that is not
	mercurial-based would still appear simply as "1.5.21".

2011-02-21 23:12 -0800  Brendan Cully  <brendan@kublai.com>  (047bd501d6db)

	* UPDATING, init.h: Lower $imap_keepalive default to 300
	seconds

2010-12-30 10:09 -0800  Brendan Cully  <brendan@kublai.com>  (f01b306ebe0e)

	* sendlib.c: Handle missing : in write_one_header debug statement.
	Closes #3483

2010-10-13 07:38 -0700  Ralf Wildenhues  <wildenhues@ins.uni-bonn.de>  (57568da7d9aa)

	* thread.c: fix a minor logic error in thread.c, and a dead code line

2010-10-11 07:56 -0700  Michael Elkins  <me@mutt.org>  (033acdc0a947)

	* pager.c: Backed out changeset 11399121296a

2010-10-07 14:43 -0700  Michael Elkins  <me@mutt.org>  (11399121296a)

	* pager.c: support non-breakable space character in the pager

2010-10-01 07:14 -0700  Michael Elkins  <me@mutt.org>  (1a4c43138685)

	* muttlib.c: fix segfault when $message_cachedir is set and opening a
	POP3 mailbox.

	fixes #3457

2010-09-30 18:11 -0700  Roman Kagan  <rkagan@mail.ru>  (c10f8863e979)

	* crypt-gpgme.c: use gpgme_strerror() in lieu of gpg_strerror()

2010-09-29 14:17 -0700  Michael Elkins  <me@mutt.org>  (a23835db228d)

	* globals.h, handler.c, init.h, mutt.h, rfc3676.c: Add $reflow_text
	boolean, and $reflow_wrap variables to control display of
	format=flowed text parts.

	* rfc3676.c: fix typoh in comment

	* rfc3676.c: fix handling of format=flowed when $wrap is 0.

2010-09-23 11:06 -0700  Michael Elkins  <me@mutt.org>  (f2452f1f1fef)

	* rfc2047.c: RFC2047 encode/decode the group name in an address list.
	closes #3317

2010-09-23 06:56 -0700  Ivan Vilata i Balaguer  <ivan@selidor.net>  (51ee8e8a56bb)

	* po/ca.po: updated Catalan translation

2010-09-20 14:04 +0100  Emanuele Giaquinta  <e.giaquinta@glauco.it>  (d2f10c550d90)

	* mbox.c: Fix typo

2010-09-16 07:19 -0700  Vsevolod Volkov  <vvv@mutt.org.ua>  (0ca7ed91fe7f)

	* po/ru.po: update ru.po for 1.5.21

2010-09-15 11:47 -0700  me  <me@sigpipe.org>  (59aad6c21703)

	* regex.c: fix compile error with --with-regex and --without-wc-funcs

2010-09-15 10:53 -0700  Brendan Cully  <brendan@kublai.com>  (bd0afbb35c65)

	* UPDATING: Belatedly update UPDATING

2010-09-15 10:21 -0700  Brendan Cully  <brendan@kublai.com>  (b42be44bb41a)

	* .hgsigs: mutt-1.5.21 signed

2010-09-15 10:10 -0700  Brendan Cully  <brendan@kublai.com>  (9c7bd63635de)

	* .hgtags: Added tag mutt-1-5-21-rel for changeset 25a7f8f7d50d

2010-09-15 10:10 -0700  Brendan Cully  <brendan@kublai.com>  (25a7f8f7d50d)

	* VERSION, po/bg.po, po/ca.po, po/cs.po, po/da.po,
	po/de.po, po/el.po, po/eo.po, po/es.po, po/et.po, po/eu.po,
	po/fr.po, po/ga.po, po/gl.po, po/hu.po, po/id.po, po/it.po,
	po/ja.po, po/ko.po, po/lt.po, po/nl.po, po/pl.po, po/pt_BR.po,
	po/ru.po, po/sk.po, po/sv.po, po/tr.po, po/uk.po, po/zh_CN.po,
	po/zh_TW.po: automatic post-release commit for mutt-1.5.21

2010-09-15 10:05 -0700  Michael Elkins  <me@mutt.org>  (54e3139a0362)

	* safe_asprintf.c: suppress check_sec errors

2010-09-13 17:25 -0700  Michael Elkins  <me@mutt.org>  (20b2d496349f)

	* init.h: make $mail_check_recent set by default

2010-09-13 19:00 +0100  Emanuele Giaquinta  <e.giaquinta@glauco.it>  (fea3860ff672)

	* imap/command.c: Restore the previous behaviour of checking for new
	messages in imap folders when mail_check_recent is set.

2010-09-12 19:54 -0700  Michael Elkins  <me@mutt.org>  (a51df78218e8)

	* buffy.c, buffy.h, imap/command.c, init.h, mbox.c, mutt.h: add
	$mail_check_recent boolean to control whether Mutt will notify about
	all new mail, or just new mail received since the last visit to a
	mailbox

	closes #3271

	partly addresses #3310

	* smime.c: fix crash when index contains 0 keys

2010-09-11 07:34 -0700  Michael Elkins  <me@mutt.org>  (0f962f1a6bbb)

	* send.c: Allow setting message security in send2-hook

	This patch delays checking the message security options until after
	the user has an initial chance to edit the message. This allows the
	security options to be set in a send2-hook when using $edit_headers.
	Without this patch, the user has no way of automatically setting
	security based on recipients since the to/cc prompts are bypassed.

	The other change in behavior is if the user happened to use a
	send2-hook to see if the message had security applied *prior* to
	editing the message, that no longer works.

	* keymap.c, keymap.h, main.c: support for ncurses extension allowing
	binding to function keys with modifiers

	* keymap.c: allow octal codes with more than three digits

	* crypt-gpgme.c, mime.h, pgp.c, recvattach.c, sendlib.c: add DISPNONE
	to mean no preferred Content-Disposition; make pgp-signature parts
	DISPNONE for multipart/signed

	* recvcmd.c: fix problem with reply-hook not working when a
	message/rfc822 attachment is selected

	* rfc2047.c: more lenient RFC2047 decoding: accept illegal spaces and
	bare question marks in encoded words

	* curs_main.c, mx.c: fix crash when new mail is received during IMAP
	IDLE

	closes #3335

2010-08-25 00:30 +0100  Emanuele Giaquinta  <e.giaquinta@glauco.it>  (5302767aa6aa)

	* rfc2047.c: Use mutt_substrdup in rfc2047_decode_word

2010-08-24 16:40 -0700  Michael Elkins  <me@mutt.org>  (92b02f77e780)

	* rfc2047.c: detect failure to decode word and copy raw string
	instead; avoids calling strlen() on uninitialized memory

	closes #2923

2010-08-24 18:39 +0100  Emanuele Giaquinta  <e.giaquinta@glauco.it>  (ebd4beafe5eb)

	* mutt_ssl.c: Fix typo.

	* browser.c, hook.c, init.c, menu.c, mutt_ssl_gnutls.c, pager.c: Do
	not call regfree if regcomp fails. The content of the regex_t
	structure is undefined in this case.

	* curs_lib.c, mutt_ssl_gnutls.c: use REGCOMP() macro

2010-08-24 10:03 -0700  Michael Elkins  <me@mutt.org>  (5d59c8b737ba)

	* init.c: add REG_ICASE accidentally removed in changeset 1a35f096c8cb

	* muttlib.c: do not print debug message on ENOENT

2010-08-14 09:18 -0700  Michael Elkins  <me@mutt.org>  (04fd8ddea579)

	* url.c: avoid c99 syntax for backwards compat

2010-08-06 21:52 +0200  Matthias Andree  <matthias.andree@gmx.de>  (24a7b1aa2e55)

	* buffy.c: Fix comparison signedness warnings.

2010-08-12 16:04 -0700  Michael Elkins  <me@mutt.org>  (ced5d3dca974)

	* imap/util.c: Fix bug in imap_keepalive() which erroneously free
	Context when the IMAP connection is shut down by the server.

	Closes #3410

	* url.c: url_parse_mailto should return 0 on success

	fix memory leak errors when unable to parse mailto: URL

	closes #3441

	* mh.c: always update message body size when parsing a maildir message

	* safe_asprintf.c: call va_end() even when vasprintf returns <0

2010-08-09 20:48 -0700  Michael Elkins  <me@mutt.org>  (6572e8bcd723)

	* Makefile.am, imap/message.c, lib.c, lib.h, safe_asprintf.c: rename
	mutt_sprintf() to safe_asprintf() to match the GNU extension that
	performs a similar task

2010-08-09 10:27 -0700  Vincent Lefevre  <vincent@vinc17.org>  (e86ee9991dc3)

	* postpone.c: In postpone.c, function mutt_num_postponed, the old
	{{{OldPostponed}}} is never freed.

	closes #3442

2010-08-09 09:38 -0700  Michael Elkins  <me@mutt.org>  (8051fc8b631c)

	* send.c: clear the real name when $reverse_realname is unset and a
	match is hit so that $realname can be set in a reply- or send-hook

	closes #3427

	* doc/manual.xml.head: fix example of mailto: use on the command line

	* pager.c: fix buffer underrun when processing ANSI escape sequences

	closes #3371

2010-08-08 12:29 -0700  Michael Elkins  <me@mutt.org>  (4dcf19c58139)

	* doc/manual.xml.head, doc/mutt.man: document support for mailto: URLs
	on the command line

	closes #3400

	* imap/message.c: avoid error when the user has requested many extra
	headers via IMAP

	closes #3435

	* lib.c, lib.h: add a malloc+sprintf combo function

2010-08-08 10:21 -0700  Fabian Groffen  <grobian@gentoo.org>  (d4d703e21cdd)

	* pattern.c: fix crash in limit when user enters invalid regexp

	closes #3417

2010-08-07 06:44 -0700  Michael Elkins  <me@mutt.org>  (cc881d855f05)

	* mutt_ssl.c: Fix comparison signedness warnings

	* pop_lib.c: add comment about safety of cast

2010-08-06 21:58 +0200  Matthias Andree  <matthias.andree@gmx.de>  (55f50b2db1f8)

	* pop_lib.c: Fix comparison signedness warning.

	* status.c: Fix signedness warning.

	* .hgignore: Ignore backup files ending in a tilde character.

	* url.c: Fix comparison signedness warnings.

	* gnupgparse.c, pop_auth.c: Fix comparison signedness warnings.

	* lib.h: Resolve if/else empty body ambiguity/warnings when compiling
	without DEBUG.

2010-08-06 17:08 -0700  Michael Elkins  <me@mutt.org>  (5b15d4d96277)

	* configure.ac, init.c, protos.h: detect availablity of 'long long'

	cast time_t to 'long long' prior to bitshifting since it can be a
	float value according to POSIX.1-2008

	closes #3439

2010-08-06 21:22 +0200  Matthias Andree  <matthias.andree@gmx.de>  (bf13863e682e)

	* md5.c: Drop declaration for unused argv/argc parameters.

	Fixes GCC warning with -Wextra.

2010-08-06 13:11 -0700  Michael Elkins  <me@mutt.org>  (998ca956b41b)

	* init.c, muttlib.c: use a 64-bit random value in temporary filenames.

	closes #3158

	* browser.c: avoid using C99 bool

	* browser.c, init.h: add %D format string to $folder_format to expand
	the time based on $date_format.

	properly set the locale for LC_TIME prior to calling strftime()
	closes #1734 closes #3406

	* mutt_ssl.c: fix compiler warning about wrong type for
	SslSessionCerts

2010-08-06 09:58 +0200  Matthias Andree  <matthias.andree@gmx.de>  (473fbe29f626)

	* mutt_ssl.c: Unbreak X.509 SubjAltName checks,

	regression in 6016:dc09812e63a3 that calls strlen on an SSL sk
	rather than its string payload.

	closes #3426

2010-08-06 07:12 -0700  Michael Elkins  <me@mutt.org>  (4ae33a8a1391)

	* configure.ac: properly set _XOPEN_SOURCE to 600 (POSIX.1-2004) when
	detecting th wc*() functions

	closes #3341

2010-08-05 21:57 -0700  Michael Elkins  <me@mutt.org>  (bc5fb152e2ba)

	* mbox.c: when parsing From_ lines in mmdf/mbox, the TZ should be
	computed based on the time in the string rather than the current
	time, otherwise DST issues cause the computed time to be wrong.

	closes #2177

	* thread.c: explanatory comments

2010-08-05 17:03 -0700  andreas  <andreas.amann@tyndall.ie>  (0666d9588eac)

	* curs_main.c, functions.h: do not leave pager when changing sort
	order.

	closes #2143

2010-08-05 16:47 -0700  Michael Elkins  <me@mutt.org>  (57d4b3839172)

	* curs_main.c: do not leave pager when using read-thread and read-
	subthread

	closes #2137

2010-08-04 17:04 -0700  Petr Písař  <petr.pisar@atlas.cz>  (59ca5d7b1656)

	* ChangeLog, po/cs.po: Updated Czech translation

2010-08-04 06:37 -0700  Vincent Lefevre  <vincent@vinc17.org>  (a7f05f29d9bc)

	* po/fr.po: updated French translation

2010-08-03 10:10 -0700  Michael Elkins  <me@mutt.org>  (2c42f4760c8f)

	* browser.c: add locale.h for compililng with -std=c99

	* main.c: adjust help for -a to make it clearer that -- is required
	terminator

2010-07-31 08:21 -0700  Michael Elkins  <me@mutt.org>  (7cd85c18bfaf)

	* muttlib.c: Fix buffer underflow in expansion of format pipes. Add
	better error detection.

	Closes #3432.

2010-07-18 14:24 -0700  Michael Elkins  <me@mutt.org>  (1a35f096c8cb)

	* init.c: use REGCOMP() macro

2010-07-18 22:09 +0100  Emanuele Giaquinta  <e.giaquinta@glauco.it>  (d0e0d174d620)

	* init.c: Skip 'attachments' directive if minor type is not a valid
	regexp

2010-07-09 11:07 -0700  Joel Dahl  <joel@FreeBSD.org>  (6b13e8319c1f)

	* po/sv.po: fix misspelling in Swedish translation

2010-05-18 08:39 -0700  Michael Elkins  <me@sigpipe.org>  (29e37994a536)

	* send.c: Consider any negative return value from send_message() to be
	an error and allow the user to resend.

	Closes #3411.

2010-04-24 16:10 -0700  Brendan Cully  <brendan@kublai.com>  (4cd2daafd03b)

	* mutt_ssl.c: openssl: only call SSL_shutdown during clean
	shutdown (closes #3407)

2010-04-22 09:14 -0700  Vincent Lefevre  <vincent@vinc17.net>  (6ebdfd09abc1)

	* po/fr.po: updated French translation

2010-04-14 15:47 -0700  Michael Elkins  <me@mutt.org>  (15b9d6f3284f)

	* pgp.c: remove toggle and replace with format in pgp-menu

2010-04-12 15:13 -0500  David Champion  <dgc@uchicago.edu>  (41a46373ddd9)

	* compose.c: Improve clarity/uniformity in compose menu's crypto
	display

	Incorporates feedback on "Security: None" key hints.

2010-04-13 06:49 -0700  Michael Elkins  <me@mutt.org>  (4d798ee2898e)

	* muttlib.c: fix bug handling wide pad char in soft-fill mode

2010-04-11 20:00 -0700  Michael Elkins  <me@mutt.org>  (2cd62f40d840)

	* compose.c: increase size of buffer used for displaying addresses in
	the compose menu to avoid truncating on widescreen displays

	* curs_lib.c: clear prompt when user cancels with ^G from a yes/no
	prompt

	* muttlib.c: Fix bug in soft-fill (%*) in $index_format not accounting
	for 'set arrow_cursor'

	* pgp.c: Remove the (i) option from the PGP-menu when encryption or
	signing is not yet selected. The toggle between PGP/MIME and
	Traditional doesn't make sense unless some type of security has been
	requested.

	Closes #3402.

2010-04-06 09:47 -0700  Michael Elkins  <me@mutt.org>  (889aa698cc49)

	* configure.ac, muttlib.c: fix for compiling Mutt with clang: check
	for wchar_h prior to wctype_h in check for wc funcs

2010-04-05 11:12 -0700  Michael Elkins  <me@mutt.org>  (844174efa648)

	* doc/manual.xml.head: [doc] Remove bogus -group parameter from
	unlists and unsubscribe commands; add links to address group section
	for context.

2010-04-03 20:34 -0700  Michael Elkins  <me@mutt.org>  (cf97505addf8)

	* init.c: prevent user from setting $charset to an empty string since
	other code requires it to be set to a valid string

	closes #3326

	* pager.c: allow regexps to match on continuation header lines in
	'color header' commands.

	closes #3373

	* pattern.c: Fix crash on invalid regexp in search string due to
	uninitialized BUFFER variable.

	Closes #3401

2010-04-01 10:10 -0700  Simon Ruderich  <simon@ruderich.org>  (b9baa0234846)

	* attach.c, commands.c, filter.c, muttlib.c, send.c: fix comment typos

2010-04-01 09:59 -0700  Michael Elkins  <me@mutt.org>  (96ed7cdacdc6)

	* init.h: Improve documentation for $query_command to note that Mutt
	automatically adds quotes according to shell quoting rules (thx:
	Simon Ruderich).

	* doc/manual.xml.head: Clarify the documentation on what the line-
	editor is (thx: Simon Ruderich)

2010-03-31 08:50 -0700  Michael Elkins  <me@mutt.org>  (7e9e31b1bd7b)

	* muttlib.c: avoid buffer overflow when expanding the format string
	associated with a 'spam' command.

	closes #3397

2010-03-23 16:03 -0700  Michael Elkins  <me@mutt.org>  (fe29d691deff)

	* doc/muttrc.man.head: remove errant commands in secton on setting
	alternates

2010-03-22 22:16 -0700  Brendan Cully  <brendan@kublai.com>  (69e9a1a0ba2f)

	* sendlib.c: Fix a format string warning

2010-03-22 20:02 -0700  Marcel Telka  <marcel@telka.sk>  (f544730656c1)

	* compose.c: redraw entire screen when exiting editor after re-editing
	the message body in the send menu.

	closes #3393.

2010-03-21 09:52 -0700  Michael Elkins  <me@mutt.org>  (0a29e3f4f4b9)

	* sendlib.c: Do not assume whitespace follows the colon in a header
	field.

	Closes #3385.

2010-03-08 15:13 -0800  Brendan Cully  <brendan@kublai.com>  (ad6d799951cb)

	* configure.ac: Comment about search libsasl for sasl2 functions

2010-03-08 14:04 -0600  Will Fiveash  <Will.Fiveash@Sun.COM>  (b92b9c6a1c85)

	* configure.ac: OpenSolaris sasl fix for configure.ac

2010-03-08 15:00 -0800  Brendan Cully  <brendan@kublai.com>  (05cec973f0d9)

	* pattern.c: When regexp compilation fails, report actual pattern
	along with error.

	* muttlib.c: mutt_buffer_printf: NULL dptr means use data

	* pattern.c: If regcomp fails, assume rx has not been allocated. Fixes
	a core dump for save-hook '~f foo\.bar@(something|other)\.com' =foo.

2010-03-02 11:31 -0800  TAKAHASHI Tamotsu  <ttakah@lapis.plala.or.jp>  (fec2720ff6ef)

	* rfc822.c: Fix #2014. Thanks to Vincent Lefevre for help
	with this one.

2010-03-02 11:16 -0800  Brendan Cully  <brendan@kublai.com>  (41cf44ddbb4c)

	* copy.c: Fix thinko in [cc02f079b1b9]

2010-03-01 22:40 -0800  Brendan Cully  <brendan@kublai.com>  (cc02f079b1b9)

	* copy.c: Guard dequote with NULL check on personal field

	* copy.c, rfc822.c, rfc822.h: Another attempt to dequote
	RFC2047-encoded address comments (see #2014)

	* rfc822.c: Backed out changeset 2a4ca6917fd0. It is incompatible with
	$assumed_charset (see #2014).

2010-02-28 23:03 -0800  Brendan Cully  <brendan@kublai.com>  (2a4ca6917fd0)

	* rfc822.c: RFC-2047 decode address text before dequoting it (see
	#2014)

	* doc/manual.xml.head: Fix next-unread-mailbox name in
	documentation. Closes #3319.

2010-02-28 17:23 -0800  Antonio Radici  <antonio@dyne.org>  (25459cbb132a)

	* po/de.po: Fix German translation of "No undeleted messages." (closes
	#3372)

	* pop_lib.c: pop: allow user-specified port to override
	default in URL. Closes #3322.

2010-02-28 17:00 -0800  ludwig  <ludwig@fh-worms.de>  (2c78b28027cc)

	* crypt-gpgme.c: GPGME: Sender verification should be canse-
	insensitive for domain names. Closes #2180

2010-02-26 18:18 -0800  Brendan Cully  <brendan@kublai.com>  (40eca68c394a)

	* UPDATING, init.h: Make $thorough_search default to yes
	(closes #3386)

2010-02-23 12:42 -0800  Brendan Cully  <brendan@kublai.com>  (57124ea5592e)

	* commands.c: Don't use freed ctx.path when updating utime of target
	mailbox in save-message. Thanks to Sean Boudreau for the bug report.

2010-02-22 23:01 -0800  Vincent Lefevre  <vincent@vinc17.net>  (f17302c10229)

	* po/fr.po: Updated French translation.

2010-02-21 13:16 -0800  Brendan Cully  <brendan@kublai.com>  (a6fddecdc5f5)

	* curs_lib.c: Make mutt_yesorno use mutt_message to print query.
	Closes #3352.

2010-02-20 21:56 -0800  Gregory Shapiro  <dev.mutt.org@g.gshapiro.net>  (f723e07c8e6d)

	* OPS, UPDATING, curs_main.c, functions.h: Add imap-logout-
	all to log out of all IMAP connections. Closes #2880.

2010-02-17 00:47 -0800  Simon Ruderich  <simon@ruderich.org>  (260d39279161)

	* doc/manual.xml.head: Document 'n' and 'o' flags in index

	* doc/devel-notes.txt, doc/muttrc.man.head, init.h,
	rfc1524.c: Spelling fixes

2010-02-10 23:29 -0800  Brendan Cully  <brendan@kublai.com>  (b7ec848af36b)

	* doc/manual.xml.head: Fix a typo (closes #3379)

2010-02-01 23:40 -0800  Antonio Radici  <antonio@dyne.org>  (e9965b78e92d)

	* po/sv.po: The Swedish translation has a suboptimal
	translation of the word "Bad" in several places. The proposed patch
	substitutes Dålig (which implies bad "as in quality", and not bad
	"as in error") for Felaktig (erroneous).

	Closes #3370.

	* init.h: Small fix to the muttrc manpage. Closes #3374

2010-01-13 19:12 +0100  Matthias Andree  <matthias.andree@gmx.de>  (e2c60de29015)

	* configure.ac: Fix hcache build on systems with $(EXEEXT), include it
	in mutt_md5.

2009-12-29 00:33 -0500  Brendan Cully  <brendan@kublai.com>  (31881f38ca1e)

	* curs_lib.c: Hack mutt_wstr_trunc to treat M_TREE characters as 1
	cell. Closes #3364.

2009-12-28 22:13 -0500  Brendan Cully  <brendan@kublai.com>  (359de549b2d1)

	* doc/manual.xml.head: Remove spurious quotes from query_command
	example. Closes #3365.

2009-12-14 10:24 -0800  Brendan Cully  <brendan@kublai.com>  (736b6af3c5f1)

	* rfc1524.c: Fix off-by-one errors in mailcap parser.
	Closes #3362

2009-12-10 22:52 -0800  Daniel Jacobowitz  <dan@debian.org>  (b7d2cb7c7ce1)

	* hcache.c: Do not store header color in hcache. If the color
	directive is removed from muttrc, the cached value from the last
	directive would otherwise still be in effect.

2009-12-07 23:08 -0800  Patrick Welche  <prlw1@cam.ac.uk>  (1cf34ea1f128)

	* mutt_ssl.c: STACK* is not defined with newer SSL, use
	STACK_OF instead. Closes #3356.

2009-12-07 22:46 -0800  Peter Rosin  <peda@lysator.liu.se>  (fc9563de3dcb)

	* snprintf.c: Output %p as unsigned in the bundled snprintf

2009-11-14 14:31 -0800  Brendan Cully  <brendan@kublai.com>  (6928f522ac48)

	* curs_main.c: Back out e67f4c347bb4.

	I could not reproduce the problem, and the change makes it
	impossible to change to a real folder when no folder is currently
	open.

2009-10-28 23:03 -0700  Brendan Cully  <brendan@kublai.com>  (89fb586edda2)

	* sendlib.c: Unfold headers to wrap length in pager, when weed is set.

	From Rocco's patch queue.

2009-09-22 23:29 -0700  Antonio Radici  <antonio@dyne.org>  (5037c59a589e)

	* po/it.po: Correct Italian translation of y/n/a prompt.
	Closes #3336

2009-08-27 22:10 -0700  Petr Písař  <petr.pisar@atlas.cz>  (605559e4f88f)

	* po/cs.po: Updated Czech translation.

2009-08-20 11:34 +0200  René Clerc  <rene@clerc.nl>  (6b48ff4e69a3)

	* doc/manual.xml.head: No-brain documentation typo fix

2009-08-20 11:33 +0200  Rocco Rutte  <pdmef@gmx.net>  (e196cfc00105)

	* doc/manual.xml.head: Backed out changeset c9dd93b09ce7

2009-08-20 11:25 +0200  René Clerc  <rene@clerc.nl>  (c9dd93b09ce7)

	* doc/manual.xml.head: No-brain documentation typo fix Hi Rocco,

	Attached a patch for the documentation that fixes a small typo I
	stumbled upon. If you'd rather have me opening a trac ticket,
	please say so; since this is such a no-brainer I figured I'd e-mail
	you directly.

2009-08-17 17:07 +0200  Rocco Rutte  <pdmef@gmx.net>  (d0fce0eec0b3)

	* doc/manual.xml.head, doc/muttrc.man.head, init.h: Doc: fix more
	typos

	* doc/Makefile.am, doc/mutt.pwl: Doc: fix aspell calls, add
	custom mutt-only wordlist

	* curs_main.c: Require already opened folder when using templates for
	change-folder.

	For example, start with -y and type a wrong IMAP password so that no
	mailbox is open. Trying to change folders resulted in a crash.

2009-08-14 21:29 +0200  Rocco Rutte  <pdmef@gmx.net>  (6a08a5244d60)

	* pattern.c: Clear last search pattern if it's invalid.
	Closes #3315.

	We keep both, the string version and compiled version around for
	search-next; however, in case of parsing errors we dropped only the
	compiled version and not the string one making the code attempting
	to perform a search using a NULL pattern.

	* pattern.c: Bail on missing pattern modifiers at end of pattern.
	Closes #3314.

2009-08-13 23:49 +0200  Rocco Rutte  <pdmef@gmx.net>  (f8d50e968853)

	* doc/Muttrc.head, doc/manual.xml.head, init.h: Docs: fix
	typos/style

2009-08-11 12:22 -0700  Tomas Hoger  <thoger@redhat.com>  (dc09812e63a3)

	* mutt_ssl.c: Catch SSL null prefix attach (openssl)

2009-08-09 14:45 -0700  Brendan Cully  <brendan@kublai.com>  (002b4676d502)

	* buffy.c: Add buffy_new and buffy_free abstractions.

2009-08-09 14:53 +0200  Christian Ebert  <blacktrash@gmx.net>  (0153dbc12dc4)

	* doc/manual.xml.head: manual: fix wrong spell checker assumptions

2009-08-09 14:35 +0200  Rocco Rutte  <pdmef@gmx.net>  (59b4c73e7254)

	* doc/manual.xml.head: Manual: Fix typos, consequently use
	en_US spelling

2009-08-08 22:50 -0700  Brendan Cully  <brendan@kublai.com>  (d4ea7f571f10)

	* buffy.c: Split out mailbox-specific code in mutt_buffy_check

	* buffy.c, muttlib.c, mx.c, mx.h, status.c: Unconditionally define
	M_IMAP, M_POP. These aren't bloat, and not having them creates a lot
	of #ifdef clutter.

	* curs_lib.c: Abort prompt on ^C, as was the case prior to
	12a6de725483

2009-08-04 10:47 -0700  Vincent Lefevre  <vincent@vinc17.org>  (15a695678b7b)

	* po/fr.po: Updated French translation.

2009-08-04 12:34 +0200  Rocco Rutte  <pdmef@gmx.net>  (25c2d70f2f00)

	* doc/manual.xml.head: Manual: Add some words of warning to really
	remove IRT header when intended

	* doc/manual.xml.head: Manual: Put mailbox shortcuts into
	table for readability

	* doc/manual.xml.head: Manual: Fix docs for push/exec

2009-08-04 12:08 +0200  Johan D  <djo33@free.fr>  (14bb498c6a1c)

	* mh.c: Fix MH parsing, fixes [0698e8195545]. Closes #3312

2009-08-01 15:16 +0200  Rocco Rutte  <pdmef@gmx.net>  (29727d19634a)

	* doc/manual.xml.head: Manual: use full names for &eacute; and
	&egrave; entities. Closes #3286.

	This is necessary because we want to install a us-ascii manual.txt
	that would contain only "e" instead of accented characters.

2009-07-30 17:56 +0200  Rocco Rutte  <pdmef@gmx.net>  (4a572310c3b5)

	* main.c: Fix mutt -h output for -a/-- options

2009-07-29 13:26 -0700  Brendan Cully  <brendan@kublai.com>  (a2a4286491b4)

	* hcache.c, hcache.h, imap/util.c: Harmonize hcache uidvalidity size
	to unsigned int (per IMAP RFC). Closes #3296.

2009-07-28 23:16 +0200  Rocco Rutte  <pdmef@gmx.net>  (153eac9e03e7)

	* Makefile.am: Add group.h to distribution

	* group.c, group.h, init.c, rfc822.c: Fix some issues with
	ungroup [...] *

2009-07-27 21:14 -0700  Kees Cook  <kees@outflux.net>  (2fc9348684fe)

	* mh.c: Properly propagate mh_read_sequences result. Closes #3308.

2009-07-27 20:49 -0700  Brendan Cully  <brendan@kublai.com>  (5c076ed18883)

	* configure.ac: Do not overwrite docdir unless --with-
	docdir was explicitly given. This allows --docdir from autoconf
	2.60+ to work, though if given --with-docdir will silently override
	--docdir. Closes #3282.

2009-07-24 14:30 +0200  Rocco Rutte  <pdmef@gmx.net>  (86e066a206ac)

	* po/de.po: Update German translation

	* init.c: Fix check_sec.sh warning

2009-07-23 23:36 -0400  Aron Griffis  <agriffis@n01se.net>  (0ee27568ad09)

	* init.c: fix :reset to work with empty strings

	Signed-off-by: Aron Griffis <agriffis@n01se.net>

2009-07-23 23:32 -0700  Vincent Lefevre  <vincent@vinc17.org>  (223020f50cb7)

	* po/fr.po: Updated French translation.

2009-07-23 23:51 +0200  Matthias Andree  <matthias.andree@gmx.de>  (1e77b368ef55)

	* charset.h, rfc2047.c: Use proper prototype for
	mutt_get_default_charset(), fix fallout.

	* bcache.c, charset.c: Fix two warnings "the address of 'foo' will
	always evaluate as 'true'".

2009-07-23 17:28 +0200  Rocco Rutte  <pdmef@gmx.net>  (1597c2074a52)

	* doc/manual.xml.head: Manual: better document what address
	groups are (for)

	* group.c, group.h, init.c, init.h, pattern.c, protos.h, rfc822.c,
	rfc822.h: Implement ungroup command. Closes #3304.

	* init.c, mutt.h, muttlib.c: Move remove_from_rx_list() to muttlib.c,
	name it mutt_remove_from_rx_list()

2009-07-22 15:25 +0200  Fabian Groffen  <grobian@gentoo.org>  (d41e043fa775)

	* keymap.c: Use CRYPT_BACKEND_GPGME instead of non-existent
	HAVE_GPGME

2009-07-22 14:43 +0200  kees  <kees@outflux.net>  (848f08512bf3)

	* hcache.c, rfc822.h: Properly restore addresses from hcache using
	rfc822_new_address(). Closes #3302.

	* mh.c: Don't leak mhs flags in mh_buffy(). Closes #3303.

2009-07-17 17:57 -0400  Aron Griffis  <agriffis@n01se.net>  (a3c4b605cfad)

	* UPDATING: add batch mode send-hooks note to UPDATING

2009-07-14 20:25 -0700  Aron Griffis  <agriffis@n01se.net>  (084fb086a0e7)

	* send.c: Make send-hooks work for batch mode. Closes
	#3219.

	Handle SENDBATCH inline with the normal sending code, instead of
	handling it separately. This allows send-hooks to run, along with
	removing a number of unnecessarily lines of code.

2009-07-11 14:52 +0200  Rocco Rutte  <pdmef@gmx.net>  (6f942afe60b5)

	* charset.c, mbyte.c: Recognize charset extensions, see #3150.

	With utf-8//TRANSLIT, we internally didn't recognize it as utf-8.
	This leads to badly broken behaviour if --without-wc-funcs is used
	for some reason. In that case, if we have utf-8 as charset, we
	implement our own wide char functions; for all other charsets, we
	use the system single-byte locale functions. And using these with
	utf-8 is broken.

	* curs_lib.c: Render blanks to spaces in index, fixes
	[298194c414f0]

	wcwidth(<tab>) returns -1 so 'foo<tab>bar' was rendered to 'foobar',
	and now to 'foo bar'. Closes #3270 again.

2009-07-08 13:37 +0200  Rocco Rutte  <pdmef@gmx.net>  (f22b71d8005a)

	* mbyte.c: Fix compiler warning

2009-07-07 15:03 +0200  Rocco Rutte  <pdmef@gmx.net>  (d5e03a46518c)

	* TODO: Update TODO

2009-07-07 10:49 +0200  Matthias Andree  <matthias.andree@gmx.de>  (cc4d6044b31e)

	* INSTALL: GNU-make based VPATH builds work.

2009-07-07 13:16 +0200  Rocco Rutte  <pdmef@gmx.net>  (f161c2f00d84)

	* UPDATING, bcache.c, doc/manual.xml.head, hcache.c,
	muttlib.c, protos.h: Make hcache+bcache paths always UTF-8. Closes
	#3284.

	* UPDATING, globals.h, init.h, sendlib.c: Add $wrap_headers. Closes
	#3135

	* doc/manual.xml.head: Manual: mention terminal setup for
	charsets, more unicode pros.

	Closes #3292.

2009-07-06 15:28 +0200  Rocco Rutte  <pdmef@gmx.net>  (ccab6c56b557)

	* doc/manual.xml.head: Manual: Add a note about when/why to use utf-8

2009-07-05 18:36 -0700  Brendan Cully  <brendan@kublai.com>  (118b8fef8aae)

	* buffy.c, buffy.h, mx.c: Suppress new mail notification
	from mailbox just left. Closes #3290.

2009-07-02 20:42 +0200  Rocco Rutte  <pdmef@gmx.net>  (042f2ce0b870)

	* doc/manual.xml.head: Manual: minor fixes

	* doc/manual.xml.head, doc/mutt.css: Manual: Render
	comments in examples a lighter for readability

	* doc/manual.xml.head, doc/manual.xml.tail: Manual: Reformat
	paragraphs, fix &tilde; -> ~ breakage

	* doc/manual.xml.head: Manual: rework MIME chapter a bit

	* doc/gen-map-doc, doc/manual.xml.tail, functions.h: Manual: Generate
	more pretty titles/ids for key binding tables

	* doc/manual.xml.head: Manual: fix supported version
	numbers for mixmaster

2009-07-02 00:06 -0700  Brendan Cully  <brendan@kublai.com>  (029ba140fb48)

	* curs_main.c: Handle keepalive failure when changing folders. There
	are probably many other places where this kind of thing could happen
	though. See #3028.

2009-07-01 18:13 -0700  Rocco Rutte  <pdmef@gmx.net>  (f6c6066a5925)

	* account.c, mutt_sasl.c, smtp.c: Make getuser/pass abort
	if input is required in batch mode. Replaces [0a3de4d9a009]. See
	#3289.

	* doc/manual.xml.head: Manual: Add detailed section on charset
	handling

	* smtp.c: SMTP: use $smtp_pass in batch mode. Closes #3289.

	mutt_account_getpass() copying the password from $smtp_pass into the
	account structure is only called from the SASL callback we only use
	if we're sure we don't need curses (i.e. have the pass already).

2009-06-30 17:32 +0200  Rocco Rutte  <pdmef@gmx.net>  (f4baa2f1251a)

	* pgpewrap.c: Add missing config.h include to pgpewrap.c

	It technically doesn't need it, but pgpewrap should be rebuilt after
	configure ran, too.

	* doc/Makefile.am: Manual: Run lynx with --display_charset
	=us-ascii, see #3286.

2009-06-29 18:20 +0000  Rocco Rutte  <pdmef@gmx.net>  (03c65df651e0)

	* UPDATING, doc/manual.xml.head: Manual: Move new mail detection into
	its own section

	This also updates some parts of 
Download .txt
gitextract_w375h4b7/

├── .gitignore
├── .hgignore
├── .hgsigs
├── .hgtags
├── ABOUT-NLS
├── BEWARE
├── COPYRIGHT
├── ChangeLog
├── GPL
├── INSTALL
├── Makefile.am
├── NEWS
├── OPS
├── OPS.CRYPT
├── OPS.MIX
├── OPS.NOTMUCH
├── OPS.PGP
├── OPS.SIDEBAR
├── OPS.SMIME
├── PATCHES
├── README
├── README.SECURITY
├── README.SSL
├── README.cond-date
├── README.index-color
├── README.nested-if
├── README.notmuch
├── README.progress
├── README.quasi-delete
├── README.sidebar
├── README.status-color
├── README.tls-sni
├── TODO
├── UPDATING
├── UPDATING.kz
├── VERSION
├── VERSION.kz
├── _regex.h
├── account.c
├── account.h
├── addrbook.c
├── alias.c
├── ascii.c
├── ascii.h
├── attach.c
├── attach.h
├── base64.c
├── bcache.c
├── bcache.h
├── browser.c
├── browser.h
├── buffy.c
├── buffy.h
├── build-release
├── charset.c
├── charset.h
├── check_sec.sh
├── color.c
├── commands.c
├── complete.c
├── compose.c
├── configure.ac
├── contrib/
│   ├── Makefile.am
│   ├── Mush.rc
│   ├── Pine.rc
│   ├── Tin.rc
│   ├── ca-bundle.crt
│   ├── colors.default
│   ├── colors.linux
│   ├── gpg.rc
│   ├── iconv/
│   │   ├── README
│   │   ├── iconv.aix-3.2.5.rc
│   │   ├── iconv.aix-4.1.5.rc
│   │   ├── iconv.aix-4.2.0.rc
│   │   ├── iconv.aix-4.3.2.rc
│   │   ├── iconv.freebsd-3.3.rc
│   │   ├── iconv.glibc-2.1.3.rc
│   │   ├── iconv.glibc-2.1.90.rc
│   │   ├── iconv.hpux-10.01.rc
│   │   ├── iconv.hpux-10.20.rc
│   │   ├── iconv.hpux-11.00.rc
│   │   ├── iconv.irix-6.5.rc
│   │   ├── iconv.osf1-4.0a.rc
│   │   ├── iconv.osf1-4.0d.rc
│   │   ├── iconv.solaris-2.4.rc
│   │   ├── iconv.solaris-2.5.1.rc
│   │   ├── iconv.solaris-2.6-cjk.rc
│   │   ├── iconv.solaris-2.6.rc
│   │   ├── iconv.solaris-2.7.rc
│   │   └── make.sh
│   ├── language.txt
│   ├── language50.txt
│   ├── mutt_xtitle
│   ├── patch.slang-1.2.2.keypad.1
│   ├── pgp2.rc
│   ├── pgp5.rc
│   ├── pgp6.rc
│   ├── sample.mailcap
│   ├── sample.muttrc
│   ├── sample.muttrc-tlr
│   ├── smime.rc
│   └── smime_keys_test.pl
├── copy.c
├── copy.h
├── crypt-gpgme.c
├── crypt-gpgme.h
├── crypt-mod-pgp-classic.c
├── crypt-mod-pgp-gpgme.c
├── crypt-mod-smime-classic.c
├── crypt-mod-smime-gpgme.c
├── crypt-mod.c
├── crypt-mod.h
├── crypt.c
├── cryptglue.c
├── crypthash.h
├── curs_lib.c
├── curs_main.c
├── date.c
├── doc/
│   ├── Makefile.am
│   ├── Muttrc.head
│   ├── PGP-Notes.txt
│   ├── TODO
│   ├── applying-patches.txt
│   ├── chunk.xsl
│   ├── devel-notes.txt
│   ├── dotlock.man
│   ├── gen-map-doc
│   ├── html.xsl
│   ├── instdoc.sh.in
│   ├── makedoc-defs.h
│   ├── makedoc.c
│   ├── manual.xml.head
│   ├── manual.xml.tail
│   ├── mbox.man
│   ├── mmdf.man
│   ├── mutt.css
│   ├── mutt.man
│   ├── mutt.pwl
│   ├── mutt.xsl
│   ├── muttbug.man
│   ├── muttrc.cond-date
│   ├── muttrc.index-color
│   ├── muttrc.man.head
│   ├── muttrc.man.tail
│   ├── muttrc.nested-if
│   ├── muttrc.progress
│   ├── muttrc.quasi-delete
│   ├── muttrc.sidebar
│   ├── muttrc.status-color
│   ├── muttrc.tls-sni
│   ├── patch-notes.txt
│   ├── pgpewrap.man
│   ├── pgpring.man
│   ├── smime-notes.txt
│   ├── smime_keys.man
│   ├── vimrc.index-color
│   ├── vimrc.progress
│   ├── vimrc.quasi-delete
│   └── vimrc.sidebar
├── dotlock.c
├── dotlock.h
├── edit.c
├── editmsg.c
├── enter.c
├── extlib.c
├── filter.c
├── flags.c
├── flymake.am
├── from.c
├── functions.h
├── gen_defs
├── getdomain.c
├── globals.h
├── gnupgparse.c
├── group.c
├── group.h
├── handler.c
├── hash.c
├── hash.h
├── hcache.c
├── hcache.h
├── hcachever.sh.in
├── hdrline.c
├── headers.c
├── help.c
├── hg-changelog-map
├── hg-commit
├── history.c
├── history.h
├── hook.c
├── imap/
│   ├── Makefile.am
│   ├── README
│   ├── TODO
│   ├── auth.c
│   ├── auth.h
│   ├── auth_anon.c
│   ├── auth_cram.c
│   ├── auth_gss.c
│   ├── auth_login.c
│   ├── auth_sasl.c
│   ├── browse.c
│   ├── command.c
│   ├── imap.c
│   ├── imap.h
│   ├── imap_private.h
│   ├── message.c
│   ├── message.h
│   ├── utf7.c
│   └── util.c
├── init.c
├── init.h
├── intl/
│   ├── COPYING.LIB-2
│   ├── COPYING.LIB-2.1
│   ├── ChangeLog
│   ├── VERSION
│   ├── bindtextdom.c
│   ├── cat-compat.c
│   ├── config.charset
│   ├── dcgettext.c
│   ├── dcigettext.c
│   ├── dcngettext.c
│   ├── dgettext.c
│   ├── dngettext.c
│   ├── explodename.c
│   ├── finddomain.c
│   ├── gettext.c
│   ├── gettext.h
│   ├── gettextP.h
│   ├── hash-string.h
│   ├── intl-compat.c
│   ├── l10nflist.c
│   ├── libgettext.h
│   ├── libgnuintl.h
│   ├── libintl.glibc
│   ├── linux-msg.sed
│   ├── loadinfo.h
│   ├── loadmsgcat.c
│   ├── localcharset.c
│   ├── locale.alias
│   ├── localealias.c
│   ├── ngettext.c
│   ├── plural.c
│   ├── plural.y
│   ├── po2tbl.sed.in
│   ├── ref-add.sin
│   ├── ref-del.sin
│   ├── textdomain.c
│   └── xopen-msg.sed
├── keymap.c
├── keymap.h
├── lib.c
├── lib.h
├── m4/
│   ├── Makefile.am
│   ├── README
│   ├── codeset.m4
│   ├── curslib.m4
│   ├── funcdecl.m4
│   ├── funcs.m4
│   ├── gettext.m4
│   ├── glibc21.m4
│   ├── gpgme.m4
│   ├── gssapi.m4
│   ├── iconv.m4
│   ├── lcmessage.m4
│   ├── progtest.m4
│   └── types.m4
├── mailbox.h
├── main.c
├── mapping.h
├── mbox.c
├── mbyte.c
├── mbyte.h
├── md5.c
├── md5.h
├── menu.c
├── mh.c
├── mime.h
├── mime.types
├── mkchangelog.sh
├── mkdtemp.c
├── mutt.h
├── mutt_crypt.h
├── mutt_curses.h
├── mutt_idna.c
├── mutt_idna.h
├── mutt_menu.h
├── mutt_notmuch.c
├── mutt_notmuch.h
├── mutt_regex.h
├── mutt_sasl.c
├── mutt_sasl.h
├── mutt_socket.c
├── mutt_socket.h
├── mutt_ssl.c
├── mutt_ssl.h
├── mutt_ssl_gnutls.c
├── mutt_tunnel.c
├── mutt_tunnel.h
├── muttbug
├── muttbug.sh.in
├── muttlib.c
├── mx.c
├── mx.h
├── pager.c
├── pager.h
├── parse.c
├── patchlist.sh
├── pattern.c
├── pgp.c
├── pgp.h
├── pgpewrap.c
├── pgpinvoke.c
├── pgpkey.c
├── pgplib.c
├── pgplib.h
├── pgpmicalg.c
├── pgppacket.c
├── pgppacket.h
├── pgppubring.c
├── po/
│   ├── Makefile.in.in
│   ├── POTFILES.in
│   ├── bg.po
│   ├── ca.po
│   ├── cs.po
│   ├── da.po
│   ├── de.po
│   ├── el.po
│   ├── eo.po
│   ├── es.po
│   ├── et.po
│   ├── eu.po
│   ├── fr.po
│   ├── ga.po
│   ├── gl.po
│   ├── hu.po
│   ├── id.po
│   ├── it.po
│   ├── ja.po
│   ├── ko.po
│   ├── lt.po
│   ├── nl.po
│   ├── pl.po
│   ├── pt_BR.po
│   ├── ru.po
│   ├── sk.po
│   ├── sv.po
│   ├── tr.po
│   ├── uk.po
│   ├── zh_CN.po
│   └── zh_TW.po
├── pop.c
├── pop.h
├── pop_auth.c
├── pop_lib.c
├── postpone.c
├── prepare
├── protos.h
├── query.c
├── recvattach.c
├── recvcmd.c
├── regex.c
├── remailer.c
├── remailer.h
├── resize.c
├── rfc1524.c
├── rfc1524.h
├── rfc2047.c
├── rfc2047.h
├── rfc2231.c
├── rfc2231.h
├── rfc3676.c
├── rfc3676.h
├── rfc822.c
├── rfc822.h
├── safe_asprintf.c
├── score.c
├── send.c
├── sendlib.c
├── setenv.c
├── sha1.c
├── sha1.h
├── sidebar.c
├── sidebar.h
├── signal.c
├── smime.c
├── smime.h
├── smime_keys.pl
├── smtp.c
├── snprintf.c
├── sort.c
├── sort.h
├── stamp-h.in
├── status.c
├── strcasecmp.c
├── strcasestr.c
├── strdup.c
├── strndup.c
├── strnlen.c
├── strsep.c
├── strtok_r.c
├── system.c
├── thread.c
├── txt2c.c
├── txt2c.sh
├── url.c
├── url.h
├── utf8.c
├── version.sh
├── wcscasecmp.c
└── wcwidth.c
Download .txt
SYMBOL INDEX (2344 symbols across 177 files)

FILE: _regex.h
  type s_reg_t (line 44) | typedef long int s_reg_t;
  type active_reg_t (line 45) | typedef unsigned long int active_reg_t;
  type reg_syntax_t (line 52) | typedef unsigned long int reg_syntax_t;
  type reg_errcode_t (line 283) | typedef enum
  type re_pattern_buffer (line 319) | struct re_pattern_buffer
  type regex_t (line 387) | typedef struct re_pattern_buffer regex_t;
  type regoff_t (line 390) | typedef int regoff_t;
  type re_registers (line 395) | struct re_registers
  type regmatch_t (line 414) | typedef struct
  type re_pattern_buffer (line 453) | struct re_pattern_buffer
  type re_pattern_buffer (line 462) | struct re_pattern_buffer
  type re_pattern_buffer (line 469) | struct re_pattern_buffer
  type re_pattern_buffer (line 477) | struct re_pattern_buffer
  type re_pattern_buffer (line 483) | struct re_pattern_buffer
  type re_pattern_buffer (line 501) | struct re_pattern_buffer

FILE: account.c
  function mutt_account_match (line 30) | int mutt_account_match (const ACCOUNT* a1, const ACCOUNT* a2)
  function mutt_account_fromurl (line 65) | int mutt_account_fromurl (ACCOUNT* account, ciss_url_t* url)
  function mutt_account_tourl (line 96) | void mutt_account_tourl (ACCOUNT* account, ciss_url_t* url)
  function mutt_account_getuser (line 143) | int mutt_account_getuser (ACCOUNT* account)
  function mutt_account_getlogin (line 174) | int mutt_account_getlogin (ACCOUNT* account)
  function mutt_account_getpass (line 202) | int mutt_account_getpass (ACCOUNT* account)
  function mutt_account_unsetpass (line 237) | void mutt_account_unsetpass (ACCOUNT* account)

FILE: account.h
  type ACCOUNT (line 42) | typedef struct

FILE: addrbook.c
  type mapping_t (line 36) | struct mapping_t
  function alias_entry (line 81) | static void alias_entry (char *s, size_t slen, MUTTMENU *m, int num)
  function alias_tag (line 86) | static int alias_tag (MUTTMENU *menu, int n, int m)
  function alias_SortAlias (line 96) | static int alias_SortAlias (const void *a, const void *b)
  function alias_SortAddress (line 105) | static int alias_SortAddress (const void *a, const void *b)
  function mutt_alias_menu (line 131) | void mutt_alias_menu (char *buf, size_t buflen, ALIAS *aliases)

FILE: alias.c
  function ADDRESS (line 32) | ADDRESS *mutt_lookup_alias (const char *s)
  function ADDRESS (line 42) | static ADDRESS *mutt_expand_aliases_r (ADDRESS *a, LIST **expn)
  function ADDRESS (line 127) | ADDRESS *mutt_expand_aliases (ADDRESS *a)
  function mutt_expand_aliases_env (line 137) | void mutt_expand_aliases_env (ENVELOPE *env)
  function write_safe_address (line 169) | static void write_safe_address (FILE *fp, char *s)
  function ADDRESS (line 181) | ADDRESS *mutt_get_address (ENVELOPE *env, char **pfxp)
  function recode_buf (line 215) | static void recode_buf (char *buf, size_t buflen)
  function mutt_create_alias (line 229) | void mutt_create_alias (ENVELOPE *cur, ADDRESS *iadr)
  function mutt_check_alias_name (line 404) | int mutt_check_alias_name (const char *s, char *dest, size_t destlen)
  function ADDRESS (line 447) | ADDRESS *alias_reverse_lookup (ADDRESS *a)
  function mutt_alias_add_reverse (line 455) | void mutt_alias_add_reverse (ALIAS *t)
  function mutt_alias_delete_reverse (line 468) | void mutt_alias_delete_reverse (ALIAS *t)
  function mutt_alias_complete (line 487) | int mutt_alias_complete (char *s, size_t buflen)
  function string_is_address (line 592) | static int string_is_address(const char *str, const char *u, const char *d)
  function mutt_addr_is_user (line 604) | int mutt_addr_is_user (ADDRESS *addr)

FILE: ascii.c
  function ascii_isupper (line 37) | inline int ascii_isupper (int c)
  function ascii_islower (line 42) | inline int ascii_islower (int c)
  function ascii_toupper (line 47) | inline int ascii_toupper (int c)
  function ascii_tolower (line 55) | inline int ascii_tolower (int c)
  function ascii_strcasecmp (line 63) | int ascii_strcasecmp (const char *a, const char *b)
  function ascii_strncasecmp (line 88) | int ascii_strncasecmp (const char *a, const char *b, int n)

FILE: attach.c
  function mutt_get_tmp_attachment (line 46) | int mutt_get_tmp_attachment (BODY *a)
  function mutt_compose_attachment (line 87) | int mutt_compose_attachment (BODY *a)
  function mutt_edit_attachment (line 222) | int mutt_edit_attachment (BODY *a)
  function mutt_check_lookup_list (line 296) | void mutt_check_lookup_list (BODY *b, char *type, int len)
  function mutt_view_attachment (line 332) | int mutt_view_attachment (FILE *fp, BODY *a, int flag, HEADER *hdr,
  function mutt_pipe_attachment (line 601) | int mutt_pipe_attachment (FILE *fp, BODY *b, const char *path, char *out...
  function FILE (line 691) | static FILE *
  function mutt_save_attachment (line 703) | int mutt_save_attachment (FILE *fp, BODY *m, char *path, int flags, HEAD...
  function mutt_decode_save_attachment (line 813) | int mutt_decode_save_attachment (FILE *fp, BODY *m, char *path,
  function mutt_print_attachment (line 905) | int mutt_print_attachment (FILE *fp, BODY *a)

FILE: attach.h
  type ATTACHPTR (line 26) | typedef struct attachptr

FILE: base64.c
  function mutt_to_base64 (line 52) | void mutt_to_base64 (unsigned char *out, const unsigned char *in, size_t...
  function mutt_from_base64 (line 84) | int mutt_from_base64 (char *out, const char *in)

FILE: bcache.c
  type body_cache (line 36) | struct body_cache {
  function bcache_path (line 41) | static int bcache_path(ACCOUNT *account, const char *mailbox,
  function body_cache_t (line 82) | body_cache_t *mutt_bcache_open (ACCOUNT *account, const char *mailbox)
  function mutt_bcache_close (line 103) | void mutt_bcache_close (body_cache_t **bcache)
  function FILE (line 110) | FILE* mutt_bcache_get(body_cache_t *bcache, const char *id)
  function FILE (line 129) | FILE* mutt_bcache_put(body_cache_t *bcache, const char *id, int tmp)
  function mutt_bcache_commit (line 166) | int mutt_bcache_commit(body_cache_t* bcache, const char* id)
  function mutt_bcache_move (line 175) | int mutt_bcache_move(body_cache_t* bcache, const char* id, const char* n...
  function mutt_bcache_del (line 191) | int mutt_bcache_del(body_cache_t *bcache, const char *id)
  function mutt_bcache_exists (line 207) | int mutt_bcache_exists(body_cache_t *bcache, const char *id)
  function mutt_bcache_list (line 230) | int mutt_bcache_list(body_cache_t *bcache,

FILE: bcache.h
  type body_cache (line 26) | struct body_cache
  type body_cache_t (line 27) | typedef struct body_cache body_cache_t;

FILE: browser.c
  type mapping_t (line 49) | struct mapping_t
  type FOLDER (line 57) | typedef struct folder_t
  function destroy_state (line 67) | static void destroy_state (struct browser_state *state)
  function browser_compare_subject (line 83) | static int browser_compare_subject (const void *a, const void *b)
  function browser_compare_desc (line 93) | static int browser_compare_desc (const void *a, const void *b)
  function browser_compare_date (line 103) | static int browser_compare_date (const void *a, const void *b)
  function browser_compare_size (line 113) | static int browser_compare_size (const void *a, const void *b)
  function browser_compare_count (line 123) | static int browser_compare_count (const void *a, const void *b)
  function browser_compare_count_new (line 133) | static int browser_compare_count_new (const void *a, const void *b)
  function browser_sort (line 143) | static void browser_sort (struct browser_state *state)
  function link_is_dir (line 174) | static int link_is_dir (const char *folder, const char *path)
  type passwd (line 196) | struct passwd
  type group (line 197) | struct group
  function else (line 276) | else if (folder->ff->imap)
  function else (line 299) | else
  function add_folder (line 397) | static void add_folder (MUTTMENU *m, struct browser_state *state,
  function init_state (line 432) | static void init_state (struct browser_state *state, MUTTMENU *menu)
  function examine_directory (line 444) | static int examine_directory (MUTTMENU *menu, struct browser_state *state,
  function examine_vfolders (line 515) | static int examine_vfolders (MUTTMENU *menu, struct browser_state *state)
  function examine_mailboxes (line 541) | static int examine_mailboxes (MUTTMENU *menu, struct browser_state *state)
  function select_file_search (line 605) | static int select_file_search (MUTTMENU *menu, regex_t *re, int n)
  function select_vfolder_search (line 611) | static int select_vfolder_search (MUTTMENU *menu, regex_t *re, int n)
  function folder_entry (line 617) | static void folder_entry (char *s, size_t slen, MUTTMENU *menu, int num)
  function vfolder_entry (line 629) | static void vfolder_entry (char *s, size_t slen, MUTTMENU *menu, int num)
  function init_menu (line 641) | static void init_menu (struct browser_state *state, MUTTMENU *menu, char...
  function file_tag (line 675) | static int file_tag (MUTTMENU *menu, int n, int m)
  function _mutt_select_file (line 691) | void _mutt_select_file (char *f, size_t flen, int flags, char ***files, ...

FILE: browser.h
  type folder_file (line 22) | struct folder_file
  type browser_state (line 45) | struct browser_state
  type mailbox_state (line 59) | struct mailbox_state

FILE: buffy.c
  function fseek_last_message (line 61) | static int fseek_last_message (FILE * f)
  function test_last_status_new (line 107) | static int test_last_status_new (FILE * f)
  function test_new_folder (line 127) | static int test_new_folder (const char *path)
  function mutt_buffy_cleanup (line 147) | void mutt_buffy_cleanup (const char *buf, struct stat *st)
  function BUFFY (line 172) | BUFFY *mutt_find_mailbox (const char *path)
  function mutt_update_mailbox (line 190) | void mutt_update_mailbox (BUFFY * b)
  function BUFFY (line 204) | static BUFFY *buffy_new (const char *path)
  function buffy_free (line 224) | static void buffy_free (BUFFY **mailbox)
  function mutt_parse_mailboxes (line 231) | int mutt_parse_mailboxes (BUFFER *path, BUFFER *s, unsigned long data, B...
  function buffy_maildir_dir_hasnew (line 325) | static int buffy_maildir_dir_hasnew(BUFFY* mailbox, const char *dir_name)
  function mutt_parse_virtual_mailboxes (line 387) | int mutt_parse_virtual_mailboxes (BUFFER *path, BUFFER *s, unsigned long...
  function buffy_maildir_hasnew (line 435) | static int buffy_maildir_hasnew (BUFFY* mailbox)
  function buffy_maildir_update_dir (line 463) | static void
  function buffy_maildir_update (line 510) | void
  function buffy_mbox_hasnew (line 535) | static int buffy_mbox_hasnew (BUFFY* mailbox, struct stat *sb)
  function buffy_mbox_update (line 579) | void
  function buffy_check (line 604) | static void buffy_check(BUFFY *tmp, struct stat *contex_sb)
  function mutt_buffy_check (line 698) | int mutt_buffy_check (int force)
  function mutt_buffy_list (line 761) | int mutt_buffy_list (void)
  function mutt_buffy_setnotified (line 814) | void mutt_buffy_setnotified (const char *path)
  function mutt_buffy_notify (line 826) | int mutt_buffy_notify (void)
  function mutt_buffy (line 841) | void mutt_buffy (char *s, size_t slen)
  function mutt_buffy_vfolder (line 872) | void mutt_buffy_vfolder (char *s, size_t slen)
  function BUFFY (line 901) | static BUFFY* buffy_get (const char *path)

FILE: buffy.h
  type BUFFY (line 26) | typedef struct buffy_t
  type stat (line 68) | struct stat

FILE: charset.c
  function mutt_set_langinfo_charset (line 220) | void mutt_set_langinfo_charset (void)
  function mutt_set_langinfo_charset (line 235) | void mutt_set_langinfo_charset (void)
  function mutt_canonical_charset (line 244) | void mutt_canonical_charset (char *dest, size_t dlen, const char *name)
  function mutt_chscmp (line 294) | int mutt_chscmp (const char *s, const char *chs)
  function iconv_t (line 330) | iconv_t iconv_open (const char *tocode, const char *fromcode)
  function iconv (line 335) | size_t iconv (iconv_t cd, ICONV_CONST char **inbuf, size_t *inbytesleft,
  function iconv_close (line 341) | int iconv_close (iconv_t cd)
  function iconv_t (line 363) | iconv_t mutt_iconv_open (const char *tocode, const char *fromcode, int f...
  function mutt_iconv (line 402) | size_t mutt_iconv (iconv_t cd, ICONV_CONST char **inbuf, size_t *inbytes...
  function mutt_convert_string (line 475) | int mutt_convert_string (char **ps, const char *from, const char *to, in...
  type fgetconv_s (line 526) | struct fgetconv_s
  type fgetconv_not (line 539) | struct fgetconv_not
  function FGETCONV (line 549) | FGETCONV *fgetconv_open (FILE *file, const char *from, const char *to, i...
  function fgetconv (line 594) | int fgetconv (FGETCONV *_fc)
  function fgetconv_close (line 647) | void fgetconv_close (FGETCONV **_fc)
  function mutt_check_charset (line 656) | int mutt_check_charset (const char *s, int strict)

FILE: color.c
  type COLOR_LIST (line 53) | typedef struct color_list
  type mapping_t (line 65) | struct mapping_t
  type mapping_t (line 83) | struct mapping_t
  function COLOR_LINE (line 130) | static COLOR_LINE *mutt_new_color_line (void)
  function mutt_free_color_line (line 139) | static void mutt_free_color_line(COLOR_LINE **l,
  function ci_start_color (line 164) | void ci_start_color (void)
  function mutt_alloc_color (line 230) | int mutt_alloc_color (int fg, int bg)
  function mutt_free_color (line 295) | void mutt_free_color (int fg, int bg)
  function parse_color_name (line 339) | static int
  function mutt_parse_uncolor (line 404) | int mutt_parse_uncolor (BUFFER *buf, BUFFER *s, unsigned long data,
  function mutt_parse_unmono (line 412) | int mutt_parse_unmono (BUFFER *buf, BUFFER *s, unsigned long data,
  function mutt_do_uncolor (line 421) | static void
  function add_pattern (line 547) | static int
  function parse_object (line 637) | static int
  function parse_color_pair (line 679) | static int
  function parse_attr_spec (line 709) | static int
  function fgbgattr_to_color (line 745) | static int fgbgattr_to_color(int fg, int bg, int attr)
  function _mutt_parse_color (line 759) | static int
  function mutt_parse_color (line 906) | int mutt_parse_color(BUFFER *buff, BUFFER *s, unsigned long data, BUFFER...
  function mutt_parse_mono (line 918) | int mutt_parse_mono(BUFFER *buff, BUFFER *s, unsigned long data, BUFFER ...

FILE: commands.c
  function mutt_display_message (line 63) | int mutt_display_message (HEADER *cur)
  function ci_bounce_message (line 247) | void ci_bounce_message (HEADER *h, int *redraw)
  function pipe_set_flags (line 345) | static void pipe_set_flags (int decode, int print, int *cmflags, int *ch...
  function pipe_msg (line 364) | static void pipe_msg (HEADER *h, FILE *fp, int decode, int print)
  function _mutt_pipe_message (line 387) | static int _mutt_pipe_message (HEADER *h, char *cmd,
  function mutt_pipe_message (line 494) | void mutt_pipe_message (HEADER *h)
  function mutt_print_message (line 511) | void mutt_print_message (HEADER *h)
  function mutt_select_sort (line 537) | int mutt_select_sort (int reverse)
  function mutt_shell_escape (line 596) | void mutt_shell_escape (void)
  function mutt_enter_command (line 617) | void mutt_enter_command (void)
  function mutt_display_address (line 646) | void mutt_display_address (ENVELOPE *env)
  function set_copy_flags (line 668) | static void set_copy_flags (HEADER *hdr, int decode, int decrypt, int *c...
  function _mutt_save_message (line 710) | int _mutt_save_message (HEADER *h, CONTEXT *ctx, int delete, int decode,...
  function mutt_save_message (line 734) | int mutt_save_message (HEADER *h, int delete,
  function mutt_version (line 896) | void mutt_version (void)
  function mutt_edit_content_type (line 901) | void mutt_edit_content_type (HEADER *h, BODY *b, FILE *fp)
  function _mutt_check_traditional_pgp (line 995) | static int _mutt_check_traditional_pgp (HEADER *h, int *redraw)
  function mutt_check_traditional_pgp (line 1017) | int mutt_check_traditional_pgp (HEADER *h, int *redraw)

FILE: complete.c
  function mutt_complete (line 40) | int mutt_complete (char *s, size_t slen)

FILE: compose.c
  type mapping_t (line 91) | struct mapping_t
  function snd_entry (line 103) | static void snd_entry (char *b, size_t blen, MUTTMENU *menu, int num)
  function redraw_crypt_lines (line 114) | static void redraw_crypt_lines (HEADER *msg)
  function redraw_mix_line (line 176) | static void redraw_mix_line (LIST *chain)
  function check_attachments (line 208) | static int
  function draw_envelope_addr (line 242) | static void draw_envelope_addr (int line, ADDRESS *addr)
  function draw_envelope (line 252) | static void draw_envelope (HEADER *msg, char *fcc)
  function edit_address_list (line 281) | static int edit_address_list (int line, ADDRESS **addr)
  function delete_attachment (line 317) | static int delete_attachment (MUTTMENU *menu, short *idxlen, int x)
  function update_idx (line 353) | static void update_idx (MUTTMENU *menu, ATTACHPTR **idx, short idxlen)
  function cum_attachs_size (line 375) | static unsigned long cum_attachs_size (MUTTMENU *menu)
  function compose_status_line (line 477) | static void compose_status_line (char *buf, size_t buflen, size_t col, M...
  function mutt_compose_menu (line 491) | int mutt_compose_menu (HEADER *msg,   /* structure for new message */

FILE: copy.c
  function mutt_copy_hdr (line 49) | int
  function mutt_copy_header (line 347) | int
  function count_delete_lines (line 444) | static int count_delete_lines (FILE *fp, BODY *b, LOFF_T *length, size_t...
  function _mutt_copy_message (line 493) | int
  function mutt_copy_message (line 693) | int
  function _mutt_append_message (line 723) | int
  function mutt_append_message (line 753) | int
  function copy_delete_attach (line 774) | static int copy_delete_attach (BODY *b, FILE *fpin, FILE *fpout, char *d...
  function format_address_header (line 826) | static void format_address_header (char **h, ADDRESS *a)
  function address_header_decode (line 885) | static int address_header_decode (char **h)

FILE: crypt-gpgme.c
  type crypt_cache (line 91) | struct crypt_cache
  type dn_array_s (line 98) | struct dn_array_s
  type crypt_key_t (line 106) | typedef struct crypt_keyinfo
  type crypt_entry_t (line 116) | typedef struct crypt_entry
  type crypt_cache (line 123) | struct crypt_cache
  function digit_or_letter (line 133) | static int
  function print_utf8 (line 144) | static void
  function crypt_flags (line 265) | static char crypt_flags (int flags)
  function crypt_key_t (line 280) | static crypt_key_t *crypt_copy_key (crypt_key_t *key)
  function crypt_free_key (line 297) | static void crypt_free_key (crypt_key_t **keylist)
  function crypt_key_is_valid (line 315) | static int crypt_key_is_valid (crypt_key_t *k)
  function crypt_id_is_strong (line 323) | static int crypt_id_is_strong (crypt_key_t *key)
  function crypt_id_is_valid (line 349) | static int crypt_id_is_valid (crypt_key_t *key)
  function crypt_id_matches_addr (line 356) | static int crypt_id_matches_addr (ADDRESS *addr, ADDRESS *u_addr,
  function gpgme_ctx_t (line 385) | static gpgme_ctx_t create_gpgme_context (int for_smime)
  function gpgme_data_t (line 415) | static gpgme_data_t create_gpgme_data (void)
  function gpgme_data_t (line 434) | static gpgme_data_t body_to_data_object (BODY *a, int convert)
  function gpgme_data_t (line 499) | static gpgme_data_t file_to_data_object (FILE *fp, long offset, long len...
  function data_object_to_stream (line 515) | static int data_object_to_stream (gpgme_data_t data, FILE *fp)
  function free_recipient_set (line 611) | static void free_recipient_set (gpgme_key_t **p_rset)
  function gpgme_key_t (line 635) | static gpgme_key_t *create_recipient_set (const char *keylist,
  function set_signer (line 706) | static int set_signer (gpgme_ctx_t ctx, int for_smime)
  function gpgme_error_t (line 752) | static gpgme_error_t
  function get_micalg (line 837) | static int get_micalg (gpgme_ctx_t ctx, int use_smime, char *buf, size_t...
  function print_time (line 868) | static void print_time(time_t t, STATE *s)
  function BODY (line 889) | static BODY *sign_message (BODY *a, int use_smime)
  function BODY (line 1010) | BODY *pgp_gpgme_sign_message (BODY *a)
  function BODY (line 1015) | BODY *smime_gpgme_sign_message (BODY *a)
  function BODY (line 1026) | BODY *pgp_gpgme_encrypt_message (BODY *a, char *keylist, int sign)
  function BODY (line 1087) | BODY *smime_gpgme_build_smime_entity (BODY *a, char *keylist)
  function show_sig_summary (line 1136) | static int show_sig_summary (unsigned long sum,
  function show_fingerprint (line 1259) | static void show_fingerprint (gpgme_key_t key, STATE *state)
  function show_one_sig_validity (line 1311) | static void show_one_sig_validity (gpgme_ctx_t ctx, int idx, STATE *s)
  function print_smime_keyinfo (line 1347) | static void print_smime_keyinfo (const char* msg, gpgme_signature_t sig,
  function show_one_sig_status (line 1402) | static int show_one_sig_status (gpgme_ctx_t ctx, int idx, STATE *s)
  function verify_one (line 1516) | static int verify_one (BODY *sigbdy, STATE *s,
  function pgp_gpgme_verify_one (line 1643) | int pgp_gpgme_verify_one (BODY *sigbdy, STATE *s, const char *tempfile)
  function smime_gpgme_verify_one (line 1648) | int smime_gpgme_verify_one (BODY *sigbdy, STATE *s, const char *tempfile)
  function BODY (line 1663) | static BODY *decrypt_part (BODY *a, STATE *s, FILE *fpout, int is_smime,
  function pgp_gpgme_decrypt_mime (line 1804) | int pgp_gpgme_decrypt_mime (FILE *fpin, FILE **fpout, BODY *b, BODY **cur)
  function smime_gpgme_decrypt_mime (line 1890) | int smime_gpgme_decrypt_mime (FILE *fpin, FILE **fpout, BODY *b, BODY **...
  function pgp_gpgme_extract_keys (line 2011) | static int pgp_gpgme_extract_keys (gpgme_data_t keydata, FILE** fp, int ...
  function line_compare (line 2134) | static int line_compare(const char *a, size_t n, const char *b)
  function pgp_check_traditional_one_body (line 2155) | static int pgp_check_traditional_one_body (FILE *fp, BODY *b, int tagged...
  function pgp_gpgme_check_traditional (line 2214) | int pgp_gpgme_check_traditional (FILE *fp, BODY *b, int tagged_only)
  function pgp_gpgme_invoke_import (line 2233) | void pgp_gpgme_invoke_import (const char *fname)
  function copy_clearsigned (line 2280) | static void copy_clearsigned (gpgme_data_t data, STATE *s, char *charset)
  function pgp_gpgme_application_handler (line 2335) | int pgp_gpgme_application_handler (BODY *m, STATE *s)
  function pgp_gpgme_encrypted_handler (line 2583) | int pgp_gpgme_encrypted_handler (BODY *a, STATE *s)
  function smime_gpgme_application_handler (line 2655) | int smime_gpgme_application_handler (BODY *a, STATE *s)
  type tm (line 2779) | struct tm
  function crypt_entry (line 2951) | static void crypt_entry (char *s, size_t l, MUTTMENU * menu, int num)
  function _crypt_compare_address (line 2964) | static int _crypt_compare_address (const void *a, const void *b)
  function crypt_compare_address (line 2976) | static int crypt_compare_address (const void *a, const void *b)
  function _crypt_compare_keyid (line 2984) | static int _crypt_compare_keyid (const void *a, const void *b)
  function crypt_compare_keyid (line 2996) | static int crypt_compare_keyid (const void *a, const void *b)
  function _crypt_compare_date (line 3003) | static int _crypt_compare_date (const void *a, const void *b)
  function crypt_compare_date (line 3022) | static int crypt_compare_date (const void *a, const void *b)
  function _crypt_compare_trust (line 3030) | static int _crypt_compare_trust (const void *a, const void *b)
  function crypt_compare_trust (line 3067) | static int crypt_compare_trust (const void *a, const void *b)
  function print_dn_part (line 3075) | static int
  function print_dn_parts (line 3094) | static void
  type dn_array_s (line 3133) | struct dn_array_s
  type dn_array_s (line 3223) | struct dn_array_s
  type dn_array_s (line 3226) | struct dn_array_s
  type dn_array_s (line 3241) | struct dn_array_s
  function parse_and_print_user_id (line 3285) | static void
  type key_cap_t (line 3319) | typedef enum
  function key_check_cap (line 3327) | static unsigned int
  function print_key_info (line 3360) | static void print_key_info (gpgme_key_t key, FILE *fp)
  function crypt_key_t (line 3752) | static crypt_key_t *get_candidates (LIST * hints, unsigned int app, int ...
  function LIST (line 3925) | static LIST *crypt_add_string_to_hints (LIST *hints, const char *str)
  function crypt_key_t (line 3947) | static crypt_key_t *crypt_select_key (crypt_key_t *keys,
  function crypt_key_t (line 4146) | static crypt_key_t *crypt_getkeybyaddr (ADDRESS * a, short abilities,
  function crypt_key_t (line 4301) | static crypt_key_t *crypt_getkeybystr (char *p, short abilities,
  function crypt_key_t (line 4367) | static crypt_key_t *crypt_ask_for_key (char *tag,
  function BODY (line 4588) | BODY *pgp_gpgme_make_key_attachment (char *tempf)
  function init_common (line 4656) | static void init_common(void)
  function init_pgp (line 4672) | static void init_pgp (void)
  function init_smime (line 4680) | static void init_smime (void)
  function pgp_gpgme_init (line 4688) | void pgp_gpgme_init (void)
  function smime_gpgme_init (line 4694) | void smime_gpgme_init (void)
  function gpgme_send_menu (line 4700) | static int gpgme_send_menu (HEADER *msg, int *redraw, int is_smime)
  function pgp_gpgme_send_menu (line 4852) | int pgp_gpgme_send_menu (HEADER *msg, int *redraw)
  function smime_gpgme_send_menu (line 4857) | int smime_gpgme_send_menu (HEADER *msg, int *redraw)
  function verify_sender (line 4862) | static int verify_sender (HEADER *h, gpgme_protocol_t protocol)
  function smime_gpgme_verify_sender (line 4943) | int smime_gpgme_verify_sender (HEADER *h)
  function gpgme_set_sender (line 4948) | void gpgme_set_sender (const char *sender)

FILE: crypt-mod-pgp-classic.c
  function crypt_mod_pgp_void_passphrase (line 30) | static void crypt_mod_pgp_void_passphrase (void)
  function crypt_mod_pgp_valid_passphrase (line 35) | static int crypt_mod_pgp_valid_passphrase (void)
  function crypt_mod_pgp_decrypt_mime (line 40) | static int crypt_mod_pgp_decrypt_mime (FILE *a, FILE **b, BODY *c, BODY ...
  function crypt_mod_pgp_application_handler (line 44) | static int crypt_mod_pgp_application_handler (BODY *m, STATE *s)
  function BODY (line 54) | static BODY *crypt_mod_pgp_sign_message (BODY *a)
  function crypt_mod_pgp_verify_one (line 59) | static int crypt_mod_pgp_verify_one (BODY *sigbdy, STATE *s, const char ...
  function crypt_mod_pgp_send_menu (line 64) | static int crypt_mod_pgp_send_menu (HEADER *msg, int *redraw)
  function BODY (line 69) | static BODY *crypt_mod_pgp_encrypt_message (BODY *a, char *keylist, int ...
  function BODY (line 74) | static BODY *crypt_mod_pgp_make_key_attachment (char *tempf)
  function crypt_mod_pgp_check_traditional (line 79) | static int crypt_mod_pgp_check_traditional (FILE *fp, BODY *b, int tagge...
  function BODY (line 84) | static BODY *crypt_mod_pgp_traditional_encryptsign (BODY *a, int flags, ...
  function crypt_mod_pgp_encrypted_handler (line 89) | static int crypt_mod_pgp_encrypted_handler (BODY *m, STATE *s)
  function crypt_mod_pgp_invoke_getkeys (line 94) | static void crypt_mod_pgp_invoke_getkeys (ADDRESS *addr)
  function crypt_mod_pgp_invoke_import (line 99) | static void crypt_mod_pgp_invoke_import (const char *fname)
  function crypt_mod_pgp_extract_keys_from_attachment_list (line 104) | static void crypt_mod_pgp_extract_keys_from_attachment_list (FILE *fp, i...
  type crypt_module_specs (line 109) | struct crypt_module_specs

FILE: crypt-mod-pgp-gpgme.c
  function crypt_mod_pgp_init (line 32) | static void crypt_mod_pgp_init (void)
  function crypt_mod_pgp_void_passphrase (line 37) | static void crypt_mod_pgp_void_passphrase (void)
  function crypt_mod_pgp_valid_passphrase (line 42) | static int crypt_mod_pgp_valid_passphrase (void)
  function crypt_mod_pgp_decrypt_mime (line 48) | static int crypt_mod_pgp_decrypt_mime (FILE *a, FILE **b, BODY *c, BODY ...
  function crypt_mod_pgp_application_handler (line 53) | static int crypt_mod_pgp_application_handler (BODY *m, STATE *s)
  function crypt_mod_pgp_encrypted_handler (line 58) | static int crypt_mod_pgp_encrypted_handler (BODY *m, STATE *s)
  function crypt_mod_pgp_check_traditional (line 63) | static int crypt_mod_pgp_check_traditional (FILE *fp, BODY *b, int tagge...
  function crypt_mod_pgp_invoke_import (line 68) | static void crypt_mod_pgp_invoke_import (const char *fname)
  function BODY (line 78) | static BODY *crypt_mod_pgp_sign_message (BODY *a)
  function crypt_mod_pgp_verify_one (line 83) | static int crypt_mod_pgp_verify_one (BODY *sigbdy, STATE *s, const char ...
  function crypt_mod_pgp_send_menu (line 88) | static int crypt_mod_pgp_send_menu (HEADER *msg, int *redraw)
  function BODY (line 93) | static BODY *crypt_mod_pgp_encrypt_message (BODY *a, char *keylist, int ...
  function BODY (line 99) | static BODY *crypt_mod_pgp_make_key_attachment (char *tempf)
  function crypt_mod_pgp_set_sender (line 105) | static void crypt_mod_pgp_set_sender (const char *sender)
  type crypt_module_specs (line 110) | struct crypt_module_specs

FILE: crypt-mod-smime-classic.c
  function crypt_mod_smime_void_passphrase (line 30) | static void crypt_mod_smime_void_passphrase (void)
  function crypt_mod_smime_valid_passphrase (line 35) | static int crypt_mod_smime_valid_passphrase (void)
  function crypt_mod_smime_decrypt_mime (line 40) | static int crypt_mod_smime_decrypt_mime (FILE *a, FILE **b, BODY *c, BOD...
  function crypt_mod_smime_application_handler (line 44) | static int crypt_mod_smime_application_handler (BODY *m, STATE *s)
  function BODY (line 54) | static BODY *crypt_mod_smime_sign_message (BODY *a)
  function crypt_mod_smime_verify_one (line 59) | static int crypt_mod_smime_verify_one (BODY *sigbdy, STATE *s, const cha...
  function crypt_mod_smime_send_menu (line 64) | static int crypt_mod_smime_send_menu (HEADER *msg, int *redraw)
  function crypt_mod_smime_getkeys (line 69) | static void crypt_mod_smime_getkeys (ENVELOPE *env)
  function crypt_mod_smime_verify_sender (line 74) | static int crypt_mod_smime_verify_sender (HEADER *h)
  function BODY (line 79) | static BODY *crypt_mod_smime_build_smime_entity (BODY *a, char *certlist)
  function crypt_mod_smime_invoke_import (line 84) | static void crypt_mod_smime_invoke_import (char *infile, char *mailbox)
  type crypt_module_specs (line 90) | struct crypt_module_specs

FILE: crypt-mod-smime-gpgme.c
  function crypt_mod_smime_init (line 32) | static void crypt_mod_smime_init (void)
  function crypt_mod_smime_void_passphrase (line 37) | static void crypt_mod_smime_void_passphrase (void)
  function crypt_mod_smime_valid_passphrase (line 42) | static int crypt_mod_smime_valid_passphrase (void)
  function crypt_mod_smime_decrypt_mime (line 48) | static int crypt_mod_smime_decrypt_mime (FILE *a, FILE **b, BODY *c, BOD...
  function crypt_mod_smime_application_handler (line 53) | static int crypt_mod_smime_application_handler (BODY *m, STATE *s)
  function BODY (line 63) | static BODY *crypt_mod_smime_sign_message (BODY *a)
  function crypt_mod_smime_verify_one (line 68) | static int crypt_mod_smime_verify_one (BODY *sigbdy, STATE *s, const cha...
  function crypt_mod_smime_send_menu (line 73) | static int crypt_mod_smime_send_menu (HEADER *msg, int *redraw)
  function BODY (line 78) | static BODY *crypt_mod_smime_build_smime_entity (BODY *a, char *certlist)
  function crypt_mod_smime_verify_sender (line 83) | static int crypt_mod_smime_verify_sender (HEADER *h)
  type crypt_module_specs (line 88) | struct crypt_module_specs

FILE: crypt-mod.c
  type crypt_module (line 26) | struct crypt_module
  type crypt_module (line 28) | struct crypt_module
  function crypto_module_register (line 37) | void crypto_module_register (crypt_module_specs_t specs)
  function crypt_module_specs_t (line 50) | crypt_module_specs_t crypto_module_lookup (int identifier)

FILE: crypt-mod.h
  type BODY (line 43) | typedef BODY *(*crypt_func_pgp_traditional_encryptsign_t) (BODY *a, int ...
  type BODY (line 45) | typedef BODY *(*crypt_func_pgp_make_key_attachment_t) (char *tempf);
  type BODY (line 47) | typedef BODY *(*crypt_func_sign_message_t) (BODY *a);
  type BODY (line 48) | typedef BODY *(*crypt_func_pgp_encrypt_message_t) (BODY *a, char *keylist,
  type BODY (line 62) | typedef BODY *(*crypt_func_smime_build_smime_entity_t) (BODY *a,
  type crypt_module_functions_t (line 74) | typedef struct crypt_module_functions
  type crypt_module_specs (line 111) | struct crypt_module_specs

FILE: crypt.c
  function crypt_current_time (line 56) | void crypt_current_time(STATE *s, char *app_name)
  function crypt_forget_passphrase (line 80) | void crypt_forget_passphrase (void)
  function disable_coredumps (line 95) | static void disable_coredumps (void)
  function crypt_valid_passphrase (line 110) | int crypt_valid_passphrase(int flags)
  function mutt_protect (line 129) | int mutt_protect (HEADER *msg, char *keylist)
  function mutt_is_multipart_signed (line 289) | int mutt_is_multipart_signed (BODY *b)
  function mutt_is_multipart_encrypted (line 318) | int mutt_is_multipart_encrypted (BODY *b)
  function mutt_is_valid_multipart_pgp_encrypted (line 337) | int mutt_is_valid_multipart_pgp_encrypted (BODY *b)
  function mutt_is_malformed_multipart_pgp_encrypted (line 365) | int mutt_is_malformed_multipart_pgp_encrypted (BODY *b)
  function mutt_is_application_pgp (line 398) | int mutt_is_application_pgp (BODY *m)
  function mutt_is_application_smime (line 442) | int mutt_is_application_smime (BODY *m)
  function crypt_query (line 513) | int crypt_query (BODY *m)
  function crypt_write_signed (line 577) | int crypt_write_signed(BODY *a, STATE *s, const char *tempfile)
  function convert_to_7bit (line 623) | void convert_to_7bit (BODY *a)
  function crypt_extract_keys_from_messages (line 661) | void crypt_extract_keys_from_messages (HEADER * h)
  function crypt_get_keys (line 785) | int crypt_get_keys (HEADER *msg, char **keylist, int oppenc_mode)
  function crypt_opportunistic_encrypt (line 844) | void crypt_opportunistic_encrypt(HEADER *msg)
  function crypt_fetch_signatures (line 868) | static void crypt_fetch_signatures (BODY ***signatures, BODY *a, int *n)
  function mutt_signed_handler (line 892) | int mutt_signed_handler (BODY *a, STATE *s)
  function crypt_is_numerical_keyid (line 1103) | short crypt_is_numerical_keyid (const char *s)

FILE: cryptglue.c
  type crypt_module_specs (line 47) | struct crypt_module_specs
  type crypt_module_specs (line 51) | struct crypt_module_specs
  type crypt_module_specs (line 55) | struct crypt_module_specs
  type crypt_module_specs (line 56) | struct crypt_module_specs
  function crypt_init (line 59) | void crypt_init (void)
  function crypt_invoke_message (line 107) | void crypt_invoke_message (int type)
  function crypt_pgp_void_passphrase (line 125) | void crypt_pgp_void_passphrase (void)
  function crypt_pgp_valid_passphrase (line 131) | int crypt_pgp_valid_passphrase (void)
  function crypt_pgp_decrypt_mime (line 141) | int crypt_pgp_decrypt_mime (FILE *a, FILE **b, BODY *c, BODY **d)
  function crypt_pgp_application_pgp_handler (line 150) | int crypt_pgp_application_pgp_handler (BODY *m, STATE *s)
  function crypt_pgp_encrypted_handler (line 159) | int crypt_pgp_encrypted_handler (BODY *a, STATE *s)
  function crypt_pgp_invoke_getkeys (line 168) | void crypt_pgp_invoke_getkeys (ADDRESS *addr)
  function crypt_pgp_check_traditional (line 175) | int crypt_pgp_check_traditional (FILE *fp, BODY *b, int tagged_only)
  function BODY (line 184) | BODY *crypt_pgp_traditional_encryptsign (BODY *a, int flags, char *keylist)
  function BODY (line 193) | BODY *crypt_pgp_make_key_attachment (char *tempf)
  function BODY (line 214) | BODY *crypt_pgp_sign_message (BODY *a)
  function BODY (line 224) | BODY *crypt_pgp_encrypt_message (BODY *a, char *keylist, int sign)
  function crypt_pgp_invoke_import (line 233) | void crypt_pgp_invoke_import (const char *fname)
  function crypt_pgp_verify_one (line 240) | int crypt_pgp_verify_one (BODY *sigbdy, STATE *s, const char *tempf)
  function crypt_pgp_send_menu (line 249) | int crypt_pgp_send_menu (HEADER *msg, int *redraw)
  function crypt_pgp_extract_keys_from_attachment_list (line 259) | void crypt_pgp_extract_keys_from_attachment_list (FILE *fp, int tag, BOD...
  function crypt_pgp_set_sender (line 265) | void crypt_pgp_set_sender (const char *sender)
  function crypt_smime_void_passphrase (line 282) | void crypt_smime_void_passphrase (void)
  function crypt_smime_valid_passphrase (line 288) | int crypt_smime_valid_passphrase (void)
  function crypt_smime_decrypt_mime (line 297) | int crypt_smime_decrypt_mime (FILE *a, FILE **b, BODY *c, BODY **d)
  function crypt_smime_application_smime_handler (line 306) | int crypt_smime_application_smime_handler (BODY *m, STATE *s)
  function crypt_smime_encrypted_handler (line 315) | void crypt_smime_encrypted_handler (BODY *a, STATE *s)
  function crypt_smime_getkeys (line 322) | void crypt_smime_getkeys (ENVELOPE *env)
  function crypt_smime_verify_sender (line 329) | int crypt_smime_verify_sender(HEADER *h)
  function BODY (line 350) | BODY *crypt_smime_sign_message (BODY *a)
  function BODY (line 359) | BODY *crypt_smime_build_smime_entity (BODY *a, char *certlist)
  function crypt_smime_invoke_import (line 368) | void crypt_smime_invoke_import (char *infile, char *mailbox)
  function crypt_smime_verify_one (line 375) | int crypt_smime_verify_one (BODY *sigbdy, STATE *s, const char *tempf)
  function crypt_smime_send_menu (line 383) | int crypt_smime_send_menu (HEADER *msg, int *redraw)
  function crypt_smime_set_sender (line 391) | void crypt_smime_set_sender (const char *sender)

FILE: curs_lib.c
  function mutt_refresh (line 70) | void mutt_refresh (void)
  function mutt_need_hard_redraw (line 88) | void mutt_need_hard_redraw (void)
  function event_t (line 95) | event_t mutt_getch (void)
  function _mutt_get_field (line 150) | int _mutt_get_field (const char *field, char *buf, size_t buflen, int co...
  function mutt_get_field_unbuffered (line 174) | int mutt_get_field_unbuffered (char *msg, char *buf, size_t buflen, int ...
  function mutt_clear_error (line 185) | void mutt_clear_error (void)
  function mutt_edit_file (line 192) | void mutt_edit_file (const char *editor, const char *data)
  function mutt_query_exit (line 316) | void mutt_query_exit (void)
  function curses_message (line 332) | static void curses_message (int error, const char *fmt, va_list ap)
  function mutt_curses_error (line 359) | void mutt_curses_error (const char *fmt, ...)
  function mutt_curses_message (line 368) | void mutt_curses_message (const char *fmt, ...)
  function mutt_progress_init (line 377) | void mutt_progress_init (progress_t* progress, const char *msg,
  function message_bar (line 421) | static void
  function mutt_progress_update (line 465) | void mutt_progress_update (progress_t* progress, long pos, int percent)
  function mutt_show_error (line 533) | void mutt_show_error (void)
  function mutt_endwin (line 544) | void mutt_endwin (const char *msg)
  function mutt_perror (line 566) | void mutt_perror (const char *s)
  function mutt_any_key_to_continue (line 575) | int mutt_any_key_to_continue (const char *s)
  function mutt_do_pager (line 603) | int mutt_do_pager (const char *banner,
  function _mutt_enter_fname (line 631) | int _mutt_enter_fname (const char *prompt, char *buf, size_t blen,
  function mutt_unget_event (line 682) | void mutt_unget_event (int ch, int op)
  function mutt_unget_string (line 695) | void mutt_unget_string (char *s)
  function mutt_push_macro_event (line 709) | void mutt_push_macro_event (int ch, int op)
  function mutt_flush_macro_to_endcond (line 722) | void mutt_flush_macro_to_endcond (void)
  function mutt_flushinp (line 732) | void mutt_flushinp (void)
  function mutt_curs_set (line 745) | void mutt_curs_set (int cursor)
  function mutt_multi_choice (line 761) | int mutt_multi_choice (char *prompt, char *letters)
  function mutt_addwch (line 807) | int mutt_addwch (wchar_t wc)
  function mutt_format_string (line 829) | void mutt_format_string (char *dest, size_t destlen,
  function mutt_format_s_x (line 935) | static void mutt_format_s_x (char *dest,
  function mutt_format_s (line 963) | void mutt_format_s (char *dest,
  function mutt_format_s_tree (line 971) | void mutt_format_s_tree (char *dest,
  function mutt_paddstr (line 984) | void mutt_paddstr (int n, const char *s)
  function mutt_wstr_trunc (line 1019) | size_t mutt_wstr_trunc (const char *src, size_t maxlen, size_t maxwid, s...
  function mutt_charlen (line 1066) | int mutt_charlen (const char *s, int *width)
  function mutt_strwidth (line 1088) | int mutt_strwidth (const char *s)

FILE: curs_main.c
  function mutt_ts_capability (line 126) | short mutt_ts_capability(void)
  function mutt_ts_status (line 182) | void mutt_ts_status(char *str)
  function mutt_ts_icon (line 190) | void mutt_ts_icon(char *str)
  function index_make_entry (line 200) | void index_make_entry (char *s, size_t l, MUTTMENU *menu, int num)
  function index_color (line 262) | int index_color (int index_no)
  function ci_next_undeleted (line 273) | static int ci_next_undeleted (int msgno)
  function ci_previous_undeleted (line 283) | static int ci_previous_undeleted (int msgno)
  function ci_first_message (line 296) | static int ci_first_message (void)
  function mx_toggle_write (line 331) | static int mx_toggle_write (CONTEXT *ctx)
  function update_index (line 356) | static void update_index (MUTTMENU *menu, CONTEXT *ctx, int check,
  function resort_index (line 464) | static void resort_index (MUTTMENU *menu)
  function mutt_draw_statusline (line 494) | void
  function main_change_folder (line 597) | static int main_change_folder(MUTTMENU *menu, int op, char *buf, size_t ...
  type mapping_t (line 661) | struct mapping_t
  function mutt_index_menu (line 676) | int mutt_index_menu (void)
  function mutt_set_header_color (line 2690) | void mutt_set_header_color (CONTEXT *ctx, HEADER *curhdr)

FILE: date.c
  function time_t (line 28) | static time_t compute_tz (time_t g, struct tm *utc)
  function time_t (line 52) | time_t mutt_local_tz (time_t t)
  function time_t (line 68) | time_t mutt_mktime (struct tm *t, int local)
  function isLeapYearFeb (line 109) | static int isLeapYearFeb (struct tm *tm)
  function mutt_normalize_time (line 119) | void mutt_normalize_time (struct tm *tm)

FILE: doc/makedoc.c
  type output_formats_t (line 64) | enum output_formats_t
  type output_formats_t (line 105) | enum output_formats_t
  function main (line 124) | int main (int argc, char *argv[])
  function makedoc (line 182) | static void makedoc (FILE *in, FILE *out)
  function buff2type (line 386) | static int buff2type (const char *s)
  function handle_confline (line 401) | static void handle_confline (char *s, FILE *out)
  function pretty_default (line 476) | static void pretty_default (char *t, size_t l, const char *s, int type)
  function char_to_escape (line 530) | static void char_to_escape (char *dest, unsigned int c)
  function conf_char_to_escape (line 541) | static void conf_char_to_escape (unsigned int c , FILE *out)
  function conf_print_strval (line 548) | static void conf_print_strval (const char *v, FILE *out)
  function man_print_strval (line 564) | static void man_print_strval (const char *v, FILE *out)
  function sgml_print_strval (line 586) | static void sgml_print_strval (const char *v, FILE *out)
  function sgml_fputc (line 601) | static int sgml_fputc (int c, FILE *out)
  function sgml_fputs (line 613) | static int sgml_fputs (const char *s, FILE *out)
  function sgml_id_fputs (line 623) | static int sgml_id_fputs (const char *s, FILE* out)
  function print_confline (line 646) | static void print_confline (const char *varname, int type, const char *v...
  function flush_doc (line 769) | static int flush_doc (int docstat, FILE *out)
  function print_it (line 802) | static int print_it (int special, char *str, FILE *out, int docstat)
  function print_ref (line 1247) | void print_ref (FILE *out, int output_dollar, const char *ref)
  function commit_buff (line 1273) | static int commit_buff (char *buff, char **d, FILE *out, int docstat)
  function handle_docline (line 1285) | static int handle_docline (char *l, FILE *out, int docstat)

FILE: dotlock.c
  type stat (line 110) | struct stat
  type stat (line 110) | struct stat
  function main (line 137) | int main (int argc, char **argv)
  function dotlock_init_privs (line 198) | static int
  function dotlock_invoke (line 223) | int dotlock_invoke (const char *path, int fd, int flags, int retry)
  function dotlock_dispatch (line 249) | static int dotlock_dispatch (const char *f, int fd)
  function BEGIN_PRIVILEGED (line 291) | static void
  function END_PRIVILEGED (line 315) | static void
  function usage (line 339) | static void
  function dotlock_check_stats (line 411) | static int
  function dotlock_prepare (line 438) | static int
  function dotlock_expand_link (line 501) | static void
  function dotlock_deference_symlink (line 534) | static int
  function dotlock_lock (line 586) | static int
  function dotlock_unlock (line 693) | static int
  function dotlock_unlink (line 714) | static int
  function dotlock_try (line 739) | static int

FILE: edit.c
  type stat (line 101) | struct stat
  function be_barf_file (line 122) | static int be_barf_file (const char *path, char **buf, int buflen)
  function be_free_memory (line 139) | static void be_free_memory (char **buf, int buflen)
  function be_print_header (line 193) | static void be_print_header (ENVELOPE *env)
  function be_edit_header (line 233) | static void be_edit_header (ENVELOPE *e, int force)
  function mutt_builtin_editor (line 315) | int mutt_builtin_editor (const char *path, HEADER *msg, HEADER *cur)

FILE: editmsg.c
  function edit_one_message (line 46) | static int edit_one_message (CONTEXT *ctx, HEADER *cur)
  function mutt_edit_message (line 215) | int mutt_edit_message (CONTEXT *ctx, HEADER *hdr)

FILE: enter.c
  function my_wcwidth (line 39) | static int my_wcwidth (wchar_t wc)
  function my_wcswidth (line 54) | static int my_wcswidth (const wchar_t *s, size_t n)
  function my_addwch (line 62) | static int my_addwch (wchar_t wc)
  function width_ceiling (line 74) | static size_t width_ceiling (const wchar_t *s, size_t n, int w1)
  function my_wcstombs (line 84) | static void my_wcstombs (char *dest, size_t dlen, const wchar_t *src, si...
  function my_mbstowcs (line 123) | static size_t my_mbstowcs (wchar_t **pwbuf, size_t *pwbuflen, size_t i, ...
  function replace_part (line 165) | static void replace_part (ENTER_STATE *state, size_t from, char *buf)
  function is_shell_char (line 200) | static inline int is_shell_char(wchar_t ch)
  function mutt_enter_string (line 213) | int  mutt_enter_string(char *buf, size_t buflen, int y, int x, int flags)
  function _mutt_enter_string (line 222) | int _mutt_enter_string (char *buf, size_t buflen, int y, int x,
  function mutt_free_enter_state (line 779) | void mutt_free_enter_state (ENTER_STATE **esp)

FILE: extlib.c
  function mutt_exit (line 39) | void mutt_exit (int code)

FILE: filter.c
  function pid_t (line 32) | pid_t
  function pid_t (line 169) | pid_t mutt_create_filter (const char *s, FILE **in, FILE **out, FILE **err)
  function mutt_wait_filter (line 174) | int mutt_wait_filter (pid_t pid)

FILE: flags.c
  function _mutt_set_flag (line 32) | void _mutt_set_flag (CONTEXT *ctx, HEADER *h, int flag, int bf, int upd_...
  function mutt_tag_set_flag (line 275) | void mutt_tag_set_flag (int flag, int bf)
  function mutt_thread_set_flag (line 283) | int mutt_thread_set_flag (HEADER *hdr, int flag, int bf, int subthread)
  function mutt_change_flag (line 327) | int mutt_change_flag (HEADER *h, int bf)

FILE: from.c
  function mutt_check_month (line 36) | int mutt_check_month (const char *s)
  function is_day_name (line 46) | static int is_day_name (const char *s)
  function is_from (line 64) | int is_from (const char *s, char *path, size_t pathlen, time_t *tp)

FILE: functions.h
  type binding_t (line 41) | struct binding_t
  type binding_t (line 85) | struct binding_t
  type binding_t (line 194) | struct binding_t
  type binding_t (line 318) | struct binding_t
  type binding_t (line 344) | struct binding_t
  type binding_t (line 394) | struct binding_t
  type binding_t (line 400) | struct binding_t
  type binding_t (line 408) | struct binding_t
  type binding_t (line 431) | struct binding_t
  type binding_t (line 439) | struct binding_t
  type binding_t (line 467) | struct binding_t
  type binding_t (line 477) | struct binding_t
  type binding_t (line 488) | struct binding_t

FILE: getdomain.c
  function getdnsdomainname (line 32) | int getdnsdomainname (char *d, size_t len)

FILE: gnupgparse.c
  function fix_uid (line 76) | static void fix_uid (char *uid)
  function pgp_key_t (line 119) | static pgp_key_t parse_pub_line (char *buf, int *is_subkey, pgp_key_t k)
  function pgp_key_t (line 384) | pgp_key_t pgp_get_candidates (pgp_ring_t keyring, LIST * hints)

FILE: group.c
  function group_t (line 38) | group_t *mutt_pattern_group (const char *k)
  function mutt_group_remove (line 56) | static void mutt_group_remove (group_t *g)
  function mutt_group_context_clear (line 67) | int mutt_group_context_clear (group_context_t **ctx)
  function empty_group (line 79) | static int empty_group (group_t *g)
  function mutt_group_context_add (line 86) | void mutt_group_context_add (group_context_t **ctx, group_t *group)
  function mutt_group_context_destroy (line 98) | void mutt_group_context_destroy (group_context_t **ctx)
  function mutt_group_add_adrlist (line 108) | void mutt_group_add_adrlist (group_t *g, ADDRESS *a)
  function mutt_group_remove_adrlist (line 125) | static int mutt_group_remove_adrlist (group_t *g, ADDRESS *a)
  function mutt_group_add_rx (line 140) | static int mutt_group_add_rx (group_t *g, const char *s, int flags, BUFF...
  function mutt_group_remove_rx (line 145) | static int mutt_group_remove_rx (group_t *g, const char *s)
  function mutt_group_context_add_adrlist (line 150) | void mutt_group_context_add_adrlist (group_context_t *ctx, ADDRESS *a)
  function mutt_group_context_remove_adrlist (line 156) | int mutt_group_context_remove_adrlist (group_context_t *ctx, ADDRESS * a)
  function mutt_group_context_add_rx (line 170) | int mutt_group_context_add_rx (group_context_t *ctx, const char *s, int ...
  function mutt_group_context_remove_rx (line 180) | int mutt_group_context_remove_rx (group_context_t *ctx, const char *s)
  function mutt_group_match (line 194) | int mutt_group_match (group_t *g, const char *s)

FILE: handler.c
  function state_prefix_put (line 68) | static void state_prefix_put (const char *d, size_t dlen, STATE *s)
  function mutt_convert_to_state (line 77) | static void mutt_convert_to_state(iconv_t cd, char *bufi, size_t *l, STA...
  function mutt_decode_xbit (line 116) | static void mutt_decode_xbit (STATE *s, long len, int istext, iconv_t cd)
  function qp_decode_triple (line 153) | static int qp_decode_triple (char *s, char *d)
  function qp_decode_line (line 172) | static void qp_decode_line (char *dest, char *src, size_t *l,
  function mutt_decode_quoted (line 232) | static void mutt_decode_quoted (STATE *s, long len, int istext, iconv_t cd)
  function mutt_decode_base64 (line 286) | void mutt_decode_base64 (STATE *s, long len, int istext, iconv_t cd)
  function decode_byte (line 370) | static unsigned char decode_byte (char ch)
  function mutt_decode_uuencoded (line 377) | static void mutt_decode_uuencoded (STATE *s, long len, int istext, iconv...
  type enriched_state (line 460) | struct enriched_state
  function enriched_wrap (line 479) | static void enriched_wrap (struct enriched_state *stte)
  function enriched_flush (line 589) | static void enriched_flush (struct enriched_state *stte, int wrap)
  function enriched_putwc (line 616) | static void enriched_putwc (wchar_t c, struct enriched_state *stte)
  function enriched_puts (line 683) | static void enriched_puts (const char *s, struct enriched_state *stte)
  function enriched_set_flags (line 700) | static void enriched_set_flags (const wchar_t *tag, struct enriched_stat...
  function text_enriched_handler (line 780) | static int text_enriched_handler (BODY *a, STATE *s)
  function is_mmnoask (line 907) | static int is_mmnoask (const char *buf)
  function mutt_is_autoview (line 955) | static int mutt_is_autoview (BODY *b)
  function alternative_handler (line 998) | static int alternative_handler (BODY *a, STATE *s)
  function message_handler (line 1149) | static int message_handler (BODY *a, STATE *s)
  function mutt_can_decode (line 1190) | int mutt_can_decode (BODY *a)
  function multipart_handler (line 1227) | static int multipart_handler (BODY *a, STATE *s)
  function autoview_handler (line 1300) | static int autoview_handler (BODY *a, STATE *s)
  function external_body_handler (line 1433) | static int external_body_handler (BODY *b, STATE *s)
  function mutt_decode_attachment (line 1529) | void mutt_decode_attachment (BODY *b, STATE *s)
  function text_plain_handler (line 1570) | static int text_plain_handler (BODY *b, STATE *s)
  function run_decode_and_handler (line 1593) | static int run_decode_and_handler (BODY *b, STATE *s, handler_t handler,...
  function valid_pgp_encrypted_handler (line 1691) | static int valid_pgp_encrypted_handler (BODY *b, STATE *s)
  function malformed_pgp_encrypted_handler (line 1703) | static int malformed_pgp_encrypted_handler (BODY *b, STATE *s)
  function mutt_body_handler (line 1716) | int mutt_body_handler (BODY *b, STATE *s)

FILE: hash.c
  function hash_string (line 32) | static unsigned int hash_string (const unsigned char *s, unsigned int n)
  function hash_case_string (line 43) | static unsigned int hash_case_string (const unsigned char *s, unsigned i...
  function HASH (line 54) | HASH *hash_create (int nelem, int lower)
  function hash_insert (line 79) | int hash_insert (HASH * table, const char *key, void *data, int allow_dup)
  type hash_elem (line 121) | struct hash_elem
  function hash_delete_hash (line 130) | void hash_delete_hash (HASH * table, int hash, const char *key, const vo...
  function hash_destroy (line 159) | void hash_destroy (HASH **ptr, void (*destroy) (void *))

FILE: hash.h
  type hash_elem (line 22) | struct hash_elem
  type HASH (line 29) | typedef struct

FILE: hcache.c
  type header_cache (line 53) | struct header_cache
  type header_cache (line 60) | struct header_cache
  type header_cache (line 67) | struct header_cache
  type header_cache (line 74) | struct header_cache
  type validate (line 88) | typedef union
  function lazy_realloc (line 103) | static void
  function restore_int (line 124) | static void
  function is_ascii (line 131) | static inline int is_ascii (const char *p, size_t len) {
  function restore_char (line 178) | static void
  function restore_address (line 228) | static void
  function restore_list (line 271) | static void
  function restore_buffer (line 308) | static void
  function restore_parameter (line 351) | static void
  function restore_body (line 402) | static void
  function restore_envelope (line 453) | static void
  function crc_matches (line 488) | static int
  type stat (line 508) | struct stat
  type timeval (line 618) | struct timeval
  type timeval (line 620) | struct timeval
  function HEADER (line 664) | HEADER *
  function mutt_hcache_store (line 781) | int
  function mutt_hcache_store_raw (line 802) | int
  type stat (line 859) | struct stat
  function hcache_open_qdbm (line 877) | static int
  function mutt_hcache_close (line 892) | void
  function mutt_hcache_delete (line 903) | int
  function hcache_open_tc (line 922) | static int
  function mutt_hcache_close (line 943) | void
  function mutt_hcache_delete (line 961) | int
  function hcache_open_gdbm (line 980) | static int
  function mutt_hcache_close (line 1000) | void
  function mutt_hcache_delete (line 1011) | int
  function mutt_hcache_dbt_init (line 1031) | static void
  function mutt_hcache_dbt_empty_init (line 1040) | static void
  function hcache_open_db4 (line 1048) | static int
  function mutt_hcache_close (line 1107) | void
  function mutt_hcache_delete (line 1122) | int
  function header_cache_t (line 1139) | header_cache_t *

FILE: hcache.h
  type header_cache (line 24) | struct header_cache
  type header_cache_t (line 25) | typedef struct header_cache header_cache_t;
  type mutt_hcache_store_flags_t (line 37) | typedef enum {

FILE: hdrline.c
  function mutt_is_mail_list (line 43) | int mutt_is_mail_list (ADDRESS *addr)
  function mutt_is_subscribed_list (line 50) | int mutt_is_subscribed_list (ADDRESS *addr)
  function check_for_mailing_list (line 62) | static int
  function check_for_mailing_list_addr (line 81) | static int
  function first_mailing_list (line 97) | static int first_mailing_list (char *buf, size_t buflen, ADDRESS *a)
  function add_index_color (line 117) | static size_t
  function make_from (line 142) | static void make_from (ENVELOPE *hdr, char *buf, size_t len, int do_lists)
  function make_from_addr (line 168) | static void make_from_addr (ENVELOPE *hdr, char *buf, size_t len, int do...
  function user_in_addr (line 192) | static int user_in_addr (ADDRESS *a)
  function mutt_user_is_recipient (line 208) | int mutt_user_is_recipient (HEADER *h)
  type hdr_format_info (line 284) | struct hdr_format_info
  type hdr_format_info (line 284) | struct hdr_format_info
  type tm (line 374) | struct tm
  function _mutt_make_string (line 970) | void
  function mutt_make_string_info (line 982) | void

FILE: headers.c
  function mutt_edit_headers (line 31) | void mutt_edit_headers (const char *editor,

FILE: help.c
  type binding_t (line 34) | struct binding_t
  type binding_t (line 37) | struct binding_t
  function mutt_make_help (line 57) | void mutt_make_help (char *d, size_t dlen, const char *txt, int menu, in...
  type mapping_t (line 69) | struct mapping_t
  function print_macro (line 91) | static int print_macro (FILE *f, int maxwidth, const char **macro)
  function get_wrapped_width (line 150) | static int get_wrapped_width (const char *t, size_t wid)
  function pad (line 182) | static int pad (FILE *f, int col, int i)
  function format_line (line 196) | static void format_line (FILE *f, int ismacro,
  function dump_menu (line 282) | static void dump_menu (FILE *f, int menu)
  function is_bound (line 312) | static int is_bound (struct keymap_t *map, int op)
  function dump_unbound (line 320) | static void dump_unbound (FILE *f,
  function mutt_help (line 335) | void mutt_help (int menu)

FILE: history.c
  type history (line 26) | struct history
  type history (line 35) | struct history
  function init_history (line 40) | static void init_history (struct history *h)
  function mutt_read_histfile (line 61) | void mutt_read_histfile (void)
  function shrink_histfile (line 97) | static void shrink_histfile (void)
  function save_history (line 168) | static void save_history (history_class_t hclass, const char *s)
  function mutt_init_history (line 209) | void mutt_init_history(void)
  function mutt_history_add (line 222) | void mutt_history_add (history_class_t hclass, const char *s, int save)
  type history (line 254) | struct history
  type history (line 272) | struct history
  function mutt_reset_history_state (line 289) | void mutt_reset_history_state (history_class_t hclass)
  function mutt_history_at_scratch (line 299) | int mutt_history_at_scratch (history_class_t hclass)
  function mutt_history_save_scratch (line 309) | void mutt_history_save_scratch (history_class_t hclass, const char *s)

FILE: history.h
  type history_class (line 22) | enum history_class
  type history_class_t (line 37) | typedef enum history_class history_class_t;

FILE: hook.c
  type HOOK (line 33) | typedef struct hook
  function mutt_parse_hook (line 46) | int mutt_parse_hook (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER ...
  function delete_hook (line 218) | static void delete_hook (HOOK *h)
  function delete_hooks (line 231) | static void delete_hooks (int type)
  function mutt_parse_unhook (line 257) | int mutt_parse_unhook (BUFFER *buf, BUFFER *s, unsigned long data, BUFFE...
  function mutt_folder_hook (line 295) | void mutt_folder_hook (char *path)
  function mutt_message_hook (line 347) | void mutt_message_hook (CONTEXT *ctx, HEADER *hdr, int type)
  function mutt_addr_hook (line 382) | static int
  function mutt_default_save (line 404) | void mutt_default_save (char *path, size_t pathlen, HEADER *hdr)
  function mutt_select_fcc (line 432) | void mutt_select_fcc (char *path, size_t pathlen, HEADER *hdr)
  function LIST (line 468) | static LIST *_mutt_list_hook (const char *match, int hook)
  function LIST (line 492) | LIST *mutt_crypt_hook (ADDRESS *adr)
  function mutt_account_hook (line 498) | void mutt_account_hook (const char* url)

FILE: imap/auth.c
  function imap_authenticate (line 51) | int imap_authenticate (IMAP_DATA* idata)

FILE: imap/auth.h
  type imap_auth_res_t (line 25) | typedef enum
  type imap_auth_t (line 33) | typedef struct

FILE: imap/auth_anon.c
  function imap_auth_res_t (line 30) | imap_auth_res_t imap_auth_anon (IMAP_DATA* idata, const char* method)

FILE: imap/auth_cram.c
  function imap_auth_res_t (line 38) | imap_auth_res_t imap_auth_cram_md5 (IMAP_DATA* idata, const char* method)
  function hmac_md5 (line 134) | static void hmac_md5 (const char* password, char* challenge,

FILE: imap/auth_gss.c
  function print_gss_error (line 44) | static void print_gss_error(OM_uint32 err_maj, OM_uint32 err_min)
  function imap_auth_res_t (line 82) | imap_auth_res_t imap_auth_gss (IMAP_DATA* idata, const char* method)

FILE: imap/auth_login.c
  function imap_auth_res_t (line 30) | imap_auth_res_t imap_auth_login (IMAP_DATA* idata, const char* method)

FILE: imap/auth_sasl.c
  function imap_auth_res_t (line 34) | imap_auth_res_t imap_auth_sasl (IMAP_DATA* idata, const char* method)

FILE: imap/browse.c
  type browser_state (line 34) | struct browser_state
  type browser_state (line 36) | struct browser_state
  type folder_file (line 37) | struct folder_file
  type folder_file (line 37) | struct folder_file
  function imap_browse (line 41) | int imap_browse (char* path, struct browser_state* state)
  function imap_mailbox_state (line 211) | int imap_mailbox_state (const char* path, struct mailbox_state* state)
  function imap_mailbox_create (line 248) | int imap_mailbox_create (const char* folder)
  function imap_mailbox_rename (line 302) | int imap_mailbox_rename(const char* mailbox)
  function browse_add_list_result (line 362) | static int browse_add_list_result (IMAP_DATA* idata, const char* cmd,
  function imap_add_folder (line 408) | static void imap_add_folder (char delim, char *folder, int noselect,
  function compare_names (line 468) | static int compare_names(struct folder_file *a, struct folder_file *b)

FILE: imap/command.c
  function imap_cmd_start (line 76) | int imap_cmd_start (IMAP_DATA* idata, const char* cmdstr)
  function imap_cmd_step (line 85) | int imap_cmd_step (IMAP_DATA* idata)
  function imap_code (line 189) | int imap_code (const char *s)
  function imap_exec (line 232) | int imap_exec (IMAP_DATA* idata, const char* cmdstr, int flags)
  function imap_cmd_finish (line 268) | void imap_cmd_finish (IMAP_DATA* idata)
  function imap_cmd_idle (line 311) | int imap_cmd_idle (IMAP_DATA* idata)
  function cmd_queue_full (line 337) | static int cmd_queue_full (IMAP_DATA* idata)
  function IMAP_COMMAND (line 347) | static IMAP_COMMAND* cmd_new (IMAP_DATA* idata)
  function cmd_queue (line 370) | static int cmd_queue (IMAP_DATA* idata, const char* cmdstr)
  function cmd_start (line 394) | static int cmd_start (IMAP_DATA* idata, const char* cmdstr, int flags)
  function cmd_status (line 425) | static int cmd_status (const char *s)
  function cmd_handle_fatal (line 438) | static void cmd_handle_fatal (IMAP_DATA* idata)
  function cmd_handle_untagged (line 456) | static int cmd_handle_untagged (IMAP_DATA* idata)
  function cmd_parse_capability (line 560) | static void cmd_parse_capability (IMAP_DATA* idata, char* s)
  function cmd_parse_expunge (line 589) | static void cmd_parse_expunge (IMAP_DATA* idata, const char* s)
  function cmd_parse_fetch (line 619) | static void cmd_parse_fetch (IMAP_DATA* idata, char* s)
  function cmd_parse_list (line 675) | static void cmd_parse_list (IMAP_DATA* idata, char* s)
  function cmd_parse_lsub (line 746) | static void cmd_parse_lsub (IMAP_DATA* idata, char* s)
  function cmd_parse_myrights (line 794) | static void cmd_parse_myrights (IMAP_DATA* idata, const char* s)
  function uid2msgno (line 859) | static int uid2msgno (IMAP_DATA* idata, unsigned int uid)
  function cmd_parse_search (line 874) | static void cmd_parse_search (IMAP_DATA* idata, const char* s)
  function cmd_parse_status (line 893) | static void cmd_parse_status (IMAP_DATA* idata, char* s)
  function cmd_parse_enabled (line 1039) | static void cmd_parse_enabled (IMAP_DATA* idata, const char* s)

FILE: imap/imap.c
  function imap_access (line 58) | int imap_access (const char* path, int flags)
  function imap_create_mailbox (line 116) | int imap_create_mailbox (IMAP_DATA* idata, char* mailbox)
  function imap_rename_mailbox (line 132) | int imap_rename_mailbox (IMAP_DATA* idata, IMAP_MBOX* mx, const char* ne...
  function imap_delete_mailbox (line 149) | int imap_delete_mailbox (CONTEXT* ctx, IMAP_MBOX mx)
  function imap_logout_all (line 176) | void imap_logout_all (void)
  function imap_read_literal (line 202) | int imap_read_literal (FILE* fp, IMAP_DATA* idata, long bytes, progress_...
  function imap_expunge_mailbox (line 249) | void imap_expunge_mailbox (IMAP_DATA* idata)
  function imap_check_capabilities (line 298) | static int imap_check_capabilities (IMAP_DATA* idata)
  function IMAP_DATA (line 320) | IMAP_DATA* imap_conn_find (const ACCOUNT* account, int flags)
  function imap_open_connection (line 404) | int imap_open_connection (IMAP_DATA* idata)
  function imap_close_connection (line 489) | void imap_close_connection(IMAP_DATA* idata)
  function imap_open_mailbox (line 557) | int imap_open_mailbox (CONTEXT* ctx)
  function imap_open_mailbox_append (line 773) | int imap_open_mailbox_append (CONTEXT *ctx)
  function imap_logout (line 819) | void imap_logout (IMAP_DATA** idata)
  function imap_set_flag (line 834) | static void imap_set_flag (IMAP_DATA* idata, int aclbit, int flag,
  function imap_has_flag (line 844) | int imap_has_flag (LIST* flag_list, const char* flag)
  function imap_make_msg_set (line 866) | static int imap_make_msg_set (IMAP_DATA* idata, BUFFER* buf, int flag,
  function imap_exec_msgset (line 957) | int imap_exec_msgset (IMAP_DATA* idata, const char* pre, const char* post,
  function compare_flags (line 1023) | static int compare_flags (HEADER* h)
  function imap_sync_message (line 1042) | int imap_sync_message (IMAP_DATA *idata, HEADER *hdr, BUFFER *cmd,
  function sync_helper (line 1119) | static int sync_helper (IMAP_DATA* idata, int right, int flag, const cha...
  function imap_sync_mailbox (line 1152) | int imap_sync_mailbox (CONTEXT* ctx, int expunge, int* index_hint)
  function imap_close_mailbox (line 1345) | int imap_close_mailbox (CONTEXT* ctx)
  function imap_check_mailbox (line 1400) | int imap_check_mailbox (CONTEXT *ctx, int *index_hint, int force)
  function imap_get_mailbox (line 1455) | static int imap_get_mailbox (const char* path, IMAP_DATA** hidata, char*...
  function imap_buffy_check (line 1482) | int imap_buffy_check (int force)
  function imap_status (line 1570) | int imap_status (char* path, int queue)
  function IMAP_STATUS (line 1614) | IMAP_STATUS* imap_mboxcache_get (IMAP_DATA* idata, const char* mbox, int...
  function imap_mboxcache_free (line 1673) | void imap_mboxcache_free (IMAP_DATA* idata)
  function do_search (line 1690) | static int do_search (const pattern_t* search, int allpats)
  function imap_compile_search (line 1720) | static int imap_compile_search (const pattern_t* pat, BUFFER* buf)
  function imap_search (line 1803) | int imap_search (CONTEXT* ctx, const pattern_t* pat)
  function imap_subscribe (line 1832) | int imap_subscribe (char *path, int subscribe)
  function longest_common_prefix (line 1892) | static int
  function imap_complete_hosts (line 1906) | static int
  function imap_complete (line 1959) | int imap_complete(char* dest, size_t dlen, char* path) {

FILE: imap/imap.h
  type IMAP_MBOX (line 28) | typedef struct
  type browser_state (line 52) | struct browser_state
  type mailbox_state (line 53) | struct mailbox_state

FILE: imap/imap_private.h
  type IMAP_CACHE (line 128) | typedef struct
  type IMAP_STATUS (line 134) | typedef struct
  type IMAP_LIST (line 145) | typedef struct
  type IMAP_COMMAND (line 156) | typedef struct
  type IMAP_COMMAND_TYPE (line 162) | typedef enum
  type IMAP_DATA (line 169) | typedef struct

FILE: imap/message.c
  function imap_read_headers (line 60) | int imap_read_headers (IMAP_DATA* idata, int msgbegin, int msgend)
  function imap_fetch_message (line 394) | int imap_fetch_message (MESSAGE *msg, CONTEXT *ctx, int msgno)
  function imap_append_message (line 598) | int imap_append_message (CONTEXT *ctx, MESSAGE *msg)
  function imap_copy_messages (line 740) | int imap_copy_messages (CONTEXT* ctx, HEADER* h, char* dest, int delete)
  function body_cache_t (line 913) | static body_cache_t *msg_cache_open (IMAP_DATA *idata)
  function FILE (line 925) | static FILE* msg_cache_get (IMAP_DATA* idata, HEADER* h)
  function FILE (line 937) | static FILE* msg_cache_put (IMAP_DATA* idata, HEADER* h)
  function msg_cache_commit (line 949) | static int msg_cache_commit (IMAP_DATA* idata, HEADER* h)
  function imap_cache_del (line 962) | int imap_cache_del (IMAP_DATA* idata, HEADER* h)
  function msg_cache_clean_cb (line 974) | static int msg_cache_clean_cb (const char* id, body_cache_t* bcache, voi...
  function imap_cache_clean (line 997) | int imap_cache_clean (IMAP_DATA* idata)
  function imap_add_keywords (line 1007) | void imap_add_keywords (char* s, HEADER* h, LIST* mailbox_flags, size_t ...
  function imap_free_header_data (line 1028) | void imap_free_header_data (IMAP_HEADER_DATA** data)
  function msg_fetch_header (line 1085) | static int msg_fetch_header (CONTEXT* ctx, IMAP_HEADER* h, char* buf, FI...
  function msg_parse_fetch (line 1140) | static int msg_parse_fetch (IMAP_HEADER *h, char *s)
  function flush_buffer (line 1300) | static void flush_buffer(char *buf, size_t *len, CONNECTION *conn)

FILE: imap/message.h
  type IMAP_HEADER_DATA (line 27) | typedef struct imap_header_data
  type IMAP_HEADER (line 43) | typedef struct

FILE: imap/utf7.c
  function imap_utf_encode (line 255) | void imap_utf_encode (IMAP_DATA *idata, char **s)
  function imap_utf_decode (line 272) | void imap_utf_decode (IMAP_DATA *idata, char **s)

FILE: imap/util.c
  function imap_expand_path (line 53) | int imap_expand_path (char* path, size_t len)
  function imap_hcache_namer (line 76) | static int imap_hcache_namer (const char* path, char* dest, size_t dlen)
  function header_cache_t (line 81) | header_cache_t* imap_hcache_open (IMAP_DATA* idata, const char* path)
  function imap_hcache_close (line 106) | void imap_hcache_close (IMAP_DATA* idata)
  function HEADER (line 115) | HEADER* imap_hcache_get (IMAP_DATA* idata, unsigned int uid)
  function imap_hcache_put (line 139) | int imap_hcache_put (IMAP_DATA* idata, HEADER* h)
  function imap_hcache_del (line 151) | int imap_hcache_del (IMAP_DATA* idata, unsigned int uid)
  function imap_parse_path (line 166) | int imap_parse_path (const char* path, IMAP_MBOX* mx)
  function imap_mxcmp (line 270) | int imap_mxcmp (const char* mx1, const char* mx2)
  function imap_pretty_mailbox (line 298) | void imap_pretty_mailbox (char* path)
  function imap_continue (line 354) | int imap_continue (const char* msg, const char* resp)
  function imap_error (line 361) | void imap_error (const char *where, const char *msg)
  function IMAP_DATA (line 369) | IMAP_DATA* imap_new_idata (void)
  function imap_free_idata (line 390) | void imap_free_idata (IMAP_DATA** idata)
  function imap_cachepath (line 451) | void imap_cachepath(IMAP_DATA* idata, const char* mailbox, char* dest,
  function imap_get_literal_count (line 479) | int imap_get_literal_count(const char *buf, long *bytes)
  function time_t (line 535) | time_t imap_parse_date (char *s)
  function imap_make_date (line 584) | void imap_make_date (char *buf, time_t timestamp)
  function imap_qualify_path (line 599) | void imap_qualify_path (char *dest, size_t len, IMAP_MBOX *mx, char* path)
  function imap_quote_string (line 612) | void imap_quote_string (char *dest, size_t dlen, const char *src)
  function imap_unquote_string (line 646) | void imap_unquote_string (char *s)
  function imap_munge_mbox_name (line 681) | void imap_munge_mbox_name (IMAP_DATA *idata, char *dest, size_t dlen, co...
  function imap_unmunge_mbox_name (line 693) | void imap_unmunge_mbox_name (IMAP_DATA *idata, char *s)
  function imap_wordcasecmp (line 710) | int imap_wordcasecmp(const char *a, const char *b)
  function alrm_handler (line 737) | static void alrm_handler (int sig)
  function imap_keepalive (line 742) | void imap_keepalive (void)
  function imap_wait_keepalive (line 785) | int imap_wait_keepalive (pid_t pid)
  function imap_allow_reopen (line 831) | void imap_allow_reopen (CONTEXT *ctx)
  function imap_disallow_reopen (line 837) | void imap_disallow_reopen (CONTEXT *ctx)
  function imap_account_match (line 843) | int imap_account_match (const ACCOUNT* a1, const ACCOUNT* a2)

FILE: init.c
  type myvar_t (line 66) | typedef struct myvar
  function toggle_quadoption (line 87) | static void toggle_quadoption (int opt)
  function set_quadoption (line 95) | void set_quadoption (int opt, int flag)
  function quadoption (line 104) | int quadoption (int opt)
  function query_quadoption (line 112) | int query_quadoption (int opt, const char *prompt)
  function mutt_option_index (line 133) | static int mutt_option_index (char *s)
  function mutt_extract_token (line 143) | int mutt_extract_token (BUFFER *dest, BUFFER *tok, int flags)
  function mutt_free_opt (line 340) | static void mutt_free_opt (struct option_t* p)
  function mutt_free_opts (line 366) | void mutt_free_opts (void)
  function add_to_list (line 382) | static void add_to_list (LIST **list, const char *str)
  function mutt_add_to_rx_list (line 417) | int mutt_add_to_rx_list (RX_LIST **list, const char *s, int flags, BUFFE...
  function add_to_spam_list (line 464) | static int add_to_spam_list (SPAM_LIST **list, const char *pat, const ch...
  function remove_from_spam_list (line 544) | static int remove_from_spam_list (SPAM_LIST **list, const char *pat)
  function remove_from_list (line 582) | static void remove_from_list (LIST **l, const char *str)
  function parse_unignore (line 612) | static int parse_unignore (BUFFER *buf, BUFFER *s, unsigned long data, B...
  function parse_ignore (line 629) | static int parse_ignore (BUFFER *buf, BUFFER *s, unsigned long data, BUF...
  function parse_list (line 642) | static int parse_list (BUFFER *buf, BUFFER *s, unsigned long data, BUFFE...
  function _alternates_clean (line 654) | static void _alternates_clean (void)
  function parse_alternates (line 664) | static int parse_alternates (BUFFER *buf, BUFFER *s, unsigned long data,...
  function parse_unalternates (line 695) | static int parse_unalternates (BUFFER *buf, BUFFER *s, unsigned long dat...
  function parse_spam_list (line 713) | static int parse_spam_list (BUFFER *buf, BUFFER *s, unsigned long data, ...
  function parse_unlist (line 787) | static int parse_unlist (BUFFER *buf, BUFFER *s, unsigned long data, BUF...
  function parse_lists (line 807) | static int parse_lists (BUFFER *buf, BUFFER *s, unsigned long data, BUFF...
  type group_state_t (line 836) | typedef enum group_state_t {
  function parse_group (line 840) | static int parse_group (BUFFER *buf, BUFFER *s, unsigned long data, BUFF...
  function _attachments_clean (line 911) | static void _attachments_clean (void)
  function parse_attach_list (line 921) | static int parse_attach_list (BUFFER *buf, BUFFER *s, LIST **ldata, BUFF...
  function parse_unattach_list (line 1012) | static int parse_unattach_list (BUFFER *buf, BUFFER *s, LIST **ldata, BU...
  function print_attach_list (line 1082) | static int print_attach_list (LIST *lp, char op, char *name)
  function parse_attachments (line 1095) | static int parse_attachments (BUFFER *buf, BUFFER *s, unsigned long data...
  function parse_unattachments (line 1147) | static int parse_unattachments (BUFFER *buf, BUFFER *s, unsigned long da...
  function parse_unlists (line 1184) | static int parse_unlists (BUFFER *buf, BUFFER *s, unsigned long data, BU...
  function parse_subscribe (line 1201) | static int parse_subscribe (BUFFER *buf, BUFFER *s, unsigned long data, ...
  function parse_unsubscribe (line 1232) | static int parse_unsubscribe (BUFFER *buf, BUFFER *s, unsigned long data...
  function parse_unalias (line 1248) | static int parse_unalias (BUFFER *buf, BUFFER *s, unsigned long data, BU...
  function parse_alias (line 1295) | static int parse_alias (BUFFER *buf, BUFFER *s, unsigned long data, BUFF...
  function parse_unmy_hdr (line 1384) | static int
  function parse_my_hdr (line 1431) | static int parse_my_hdr (BUFFER *buf, BUFFER *s, unsigned long data, BUF...
  function parse_sort (line 1474) | static int
  function mutt_set_default (line 1502) | static void mutt_set_default (struct option_t *p)
  function mutt_restore_default (line 1537) | static void mutt_restore_default (struct option_t *p)
  function escape_string (line 1624) | static size_t escape_string (char *dst, size_t len, const char* src)
  function pretty_var (line 1657) | static void pretty_var (char *dst, size_t len, const char *option, const...
  function check_charset (line 1678) | static int check_charset (struct option_t *opt, const char *val)
  function parse_set (line 1701) | static int parse_set (BUFFER *tmp, BUFFER *s, unsigned long data, BUFFER...
  function source_rc (line 2249) | static int source_rc (const char *rcfile, BUFFER *err)
  function parse_source (line 2315) | static int parse_source (BUFFER *tmp, BUFFER *s, unsigned long data, BUF...
  function mutt_parse_rc_line (line 2344) | int mutt_parse_rc_line (/* const */ char *line, BUFFER *token, BUFFER *err)
  function matches_ensure_morespace (line 2404) | static void matches_ensure_morespace(int current)
  function candidate (line 2427) | static void candidate (char *dest, char *try, const char *src, int len)
  function mutt_command_complete (line 2445) | int mutt_command_complete (char *buffer, size_t len, int pos, int numtabs)
  function mutt_var_value_complete (line 2602) | int mutt_var_value_complete (char *buffer, size_t len, int pos)
  function complete_all_nm_tags (line 2652) | static int complete_all_nm_tags (const char *pt)
  function mutt_nm_query_complete (line 2728) | int mutt_nm_query_complete (char *buffer, size_t len, int pos, int numtabs)
  function mutt_nm_tag_complete (line 2772) | int mutt_nm_tag_complete (char *buffer, size_t len, int pos, int numtabs)
  function var_to_string (line 2823) | static int var_to_string (int idx, char* val, size_t len)
  function mutt_query_variables (line 2917) | int mutt_query_variables (LIST *queries)
  function mutt_dump_variables (line 2952) | int mutt_dump_variables (void)
  type mapping_t (line 2989) | struct mapping_t
  function mutt_getvaluebyname (line 2999) | int mutt_getvaluebyname (const char *name, const struct mapping_t *map)
  function start_debug (line 3010) | static void start_debug (void)
  function mutt_execute_commands (line 3032) | static int mutt_execute_commands (LIST *p)
  function mutt_init (line 3057) | void mutt_init (int skip_sys_rc, LIST *commands)
  function mutt_get_hook_type (line 3373) | int mutt_get_hook_type (const char *name)
  function parse_group_context (line 3383) | static int parse_group_context (group_context_t **ctx, BUFFER *buf, BUFF...
  function parse_tag_transforms (line 3414) | int parse_tag_transforms (BUFFER *b, BUFFER *s, unsigned long data, BUFF...
  function parse_tag_formats (line 3445) | int parse_tag_formats (BUFFER *b, BUFFER *s, unsigned long data, BUFFER ...
  function myvar_set (line 3477) | static void myvar_set (const char* var, const char* val)
  function myvar_del (line 3494) | static void myvar_del (const char* var)

FILE: init.h
  type option_t (line 68) | struct option_t
  type option_t (line 85) | struct option_t
  type mapping_t (line 3826) | struct mapping_t
  type mapping_t (line 3843) | struct mapping_t
  type mapping_t (line 3861) | struct mapping_t
  type mapping_t (line 3872) | struct mapping_t
  type mapping_t (line 3879) | struct mapping_t
  type mapping_t (line 3887) | struct mapping_t
  type command_t (line 3935) | struct command_t
  type command_t (line 3942) | struct command_t

FILE: intl/bindtextdom.c
  type binding (line 63) | struct binding
  function set_binding_values (line 95) | static void

FILE: intl/dcigettext.c
  type known_translation_t (line 213) | struct known_translation_t
  function transcmp (line 248) | static int
  type binding (line 287) | struct binding
  type loaded_l10nfile (line 290) | struct loaded_l10nfile
  type expression (line 295) | struct expression
  type block_list (line 311) | struct block_list
  type transmem_block_t (line 342) | typedef struct transmem_list
  type transmem_list (line 347) | struct transmem_list
  type transmem_block_t (line 349) | typedef unsigned char transmem_block_t;
  type block_list (line 411) | struct block_list
  type loaded_l10nfile (line 413) | struct loaded_l10nfile
  type binding (line 414) | struct binding
  type known_translation_t (line 423) | struct known_translation_t
  type known_translation_t (line 424) | struct known_translation_t
  type known_translation_t (line 446) | struct known_translation_t
  type known_translation_t (line 447) | struct known_translation_t
  type known_translation_t (line 452) | struct known_translation_t
  type known_translation_t (line 630) | struct known_translation_t
  type known_translation_t (line 632) | struct known_translation_t
  type known_translation_t (line 633) | struct known_translation_t
  type known_translation_t (line 647) | struct known_translation_t
  type binding (line 681) | struct binding
  type loaded_domain (line 685) | struct loaded_domain
  type loaded_domain (line 696) | struct loaded_domain
  type transmem_list (line 901) | struct transmem_list
  type transmem_list (line 929) | struct transmem_list
  type loaded_domain (line 976) | struct loaded_domain
  type loaded_domain (line 976) | struct loaded_domain
  function internal_function (line 1009) | static unsigned long int
  function free_mem (line 1226) | static void __attribute__ ((unused))

FILE: intl/explodename.c
  function _nl_explode_name (line 52) | int

FILE: intl/finddomain.c
  type loaded_l10nfile (line 42) | struct loaded_l10nfile
  type loaded_l10nfile (line 48) | struct loaded_l10nfile
  type binding (line 54) | struct binding
  type loaded_l10nfile (line 56) | struct loaded_l10nfile
  function free_mem (line 181) | static void __attribute__ ((unused))

FILE: intl/gettext.h
  type nls_uint32 (line 57) | typedef unsigned nls_uint32;
  type nls_uint32 (line 60) | typedef unsigned short nls_uint32;
  type nls_uint32 (line 63) | typedef unsigned long nls_uint32;
  type mo_file_header (line 74) | struct mo_file_header
  type string_desc (line 92) | struct string_desc

FILE: intl/gettextP.h
  function nls_uint32 (line 66) | static inline nls_uint32
  type expression (line 77) | struct expression
  type parse_args (line 113) | struct parse_args
  type loaded_domain (line 121) | struct loaded_domain
  type binding (line 156) | struct binding
  type loaded_l10nfile (line 170) | struct loaded_l10nfile
  type loaded_l10nfile (line 175) | struct loaded_l10nfile
  type loaded_domain (line 178) | struct loaded_domain
  type loaded_l10nfile (line 180) | struct loaded_l10nfile
  type loaded_domain (line 184) | struct loaded_domain
  type loaded_l10nfile (line 187) | struct loaded_l10nfile
  type expression (line 241) | struct expression
  type expression (line 245) | struct expression

FILE: intl/hash-string.h
  function hash_string (line 38) | static inline unsigned long int

FILE: intl/l10nflist.c
  function argz_count__ (line 76) | static size_t
  function argz_stringify__ (line 100) | static void
  function pop (line 150) | static inline int
  type loaded_l10nfile (line 164) | struct loaded_l10nfile
  type loaded_l10nfile (line 184) | struct loaded_l10nfile
  type loaded_l10nfile (line 185) | struct loaded_l10nfile
  type loaded_l10nfile (line 293) | struct loaded_l10nfile
  type loaded_l10nfile (line 296) | struct loaded_l10nfile

FILE: intl/loadinfo.h
  type loaded_l10nfile (line 64) | struct loaded_l10nfile
  type loaded_l10nfile (line 83) | struct loaded_l10nfile
  type loaded_l10nfile (line 84) | struct loaded_l10nfile

FILE: intl/loadmsgcat.c
  type expression (line 140) | struct expression
  type expression (line 145) | struct expression
  type expression (line 154) | struct expression
  type expression (line 162) | struct expression
  type expression (line 163) | struct expression
  type expression (line 175) | struct expression
  type expression (line 176) | struct expression
  type expression (line 177) | struct expression
  function init_germanic_plural (line 179) | static void
  type loaded_domain (line 209) | struct loaded_domain
  type binding (line 210) | struct binding
  function _nl_free_domain_conv (line 317) | void
  type loaded_l10nfile (line 341) | struct loaded_l10nfile
  type binding (line 342) | struct binding
  type stat64 (line 347) | struct stat64
  type stat (line 349) | struct stat
  type mo_file_header (line 351) | struct mo_file_header
  type mo_file_header (line 351) | struct mo_file_header
  type loaded_domain (line 353) | struct loaded_domain
  type mo_file_header (line 383) | struct mo_file_header
  type mo_file_header (line 393) | struct mo_file_header
  type mo_file_header (line 396) | struct mo_file_header
  type mo_file_header (line 406) | struct mo_file_header
  type mo_file_header (line 411) | struct mo_file_header
  type loaded_domain (line 452) | struct loaded_domain
  type loaded_domain (line 452) | struct loaded_domain
  type string_desc (line 467) | struct string_desc
  type string_desc (line 469) | struct string_desc
  type parse_args (line 508) | struct parse_args
  function _nl_unload_domain (line 548) | void

FILE: intl/localealias.c
  type alias_map (line 104) | struct alias_map
  type alias_map (line 114) | struct alias_map
  type alias_map (line 123) | struct alias_map
  type alias_map (line 132) | struct alias_map
  type alias_map (line 142) | struct alias_map
  type alias_map (line 147) | struct alias_map
  type alias_map (line 148) | struct alias_map
  function internal_function (line 190) | static size_t
  function extend_alias_table (line 342) | static int
  function free_mem (line 362) | static void __attribute__ ((unused))
  function alias_compare (line 374) | static int

FILE: intl/plural.c
  type YYSTYPE (line 71) | typedef union {
  type expression (line 79) | struct expression
  type operator (line 79) | enum operator
  type expression (line 81) | struct expression
  type operator (line 81) | enum operator
  type expression (line 82) | struct expression
  type operator (line 82) | enum operator
  type expression (line 84) | struct expression
  type operator (line 84) | enum operator
  type expression (line 87) | struct expression
  type operator (line 87) | enum operator
  type expression (line 96) | struct expression
  type operator (line 99) | enum operator
  type expression (line 100) | struct expression
  type expression (line 103) | struct expression
  type expression (line 111) | struct expression
  type expression (line 128) | struct expression
  type expression (line 135) | struct expression
  type expression (line 138) | struct expression
  type expression (line 140) | struct expression
  type expression (line 146) | struct expression
  type expression (line 149) | struct expression
  type expression (line 150) | struct expression
  type expression (line 152) | struct expression
  type expression (line 159) | struct expression
  type expression (line 162) | struct expression
  type expression (line 163) | struct expression
  type expression (line 164) | struct expression
  type expression (line 166) | struct expression
  function __yy_memcpy (line 488) | static void
  function __yy_memcpy (line 506) | static void
  function yyparse (line 550) | int
  function internal_function (line 1148) | void
  function yylex (line 1176) | static int
  function yyerror (line 1321) | static void

FILE: keymap.c
  type mapping_t (line 39) | struct mapping_t
  type mapping_t (line 67) | struct mapping_t
  type keymap_t (line 131) | struct keymap_t
  type keymap_t (line 133) | struct keymap_t
  type keymap_t (line 135) | struct keymap_t
  type keymap_t (line 137) | struct keymap_t
  function parse_fkey (line 144) | static int parse_fkey(char *s)
  function parse_keycode (line 168) | static int parse_keycode (const char *s)
  function parsekeys (line 183) | static int parsekeys (const char *str, keycode_t *d, int max)
  function km_bind (line 234) | void km_bind (char *s, int menu, int op, char *macro, char *descr)
  function km_bindkey (line 296) | void km_bindkey (char *s, int menu, int op)
  function get_op (line 301) | static int get_op (const struct binding_t *bindings, const char *start, ...
  type binding_t (line 315) | struct binding_t
  function tokenize_push_macro_string (line 333) | static void tokenize_push_macro_string (char *s)
  function retry_generic (line 395) | static int retry_generic (int menu, keycode_t *keys, int keyslen, int la...
  type keymap_t (line 421) | struct keymap_t
  type binding_t (line 478) | struct binding_t
  function create_bindings (line 557) | static void create_bindings (const struct binding_t *map, int menu)
  function km_expand_key (line 597) | int km_expand_key (char *s, size_t len, struct keymap_t *map)
  type keymap_t (line 619) | struct keymap_t
  type keymap_t (line 621) | struct keymap_t
  type extkey (line 630) | struct extkey {
  type extkey (line 635) | struct extkey
  function init_extended_keys (line 692) | void init_extended_keys(void)
  function km_init (line 720) | void km_init (void)
  function km_error_key (line 835) | void km_error_key (int menu)
  function mutt_parse_push (line 861) | int mutt_parse_push (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER ...
  function try_bind (line 927) | static int
  type binding_t (line 941) | struct binding_t
  function mutt_parse_bind (line 986) | int mutt_parse_bind (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER ...
  function mutt_parse_macro (line 1034) | int mutt_parse_macro (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER...
  function mutt_parse_exec (line 1085) | int mutt_parse_exec (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER ...
  function mutt_what_key (line 1131) | void mutt_what_key (void)

FILE: keymap.h
  type keycode_t (line 28) | typedef short keycode_t;
  type keymap_t (line 37) | struct keymap_t
  type keymap_t (line 48) | struct keymap_t
  type keymap_t (line 49) | struct keymap_t
  type keymap_t (line 86) | struct keymap_t
  type mapping_t (line 91) | struct mapping_t
  type binding_t (line 93) | struct binding_t
  type binding_t (line 100) | struct binding_t
  type binding_t (line 102) | struct binding_t
  type binding_t (line 103) | struct binding_t
  type binding_t (line 104) | struct binding_t
  type binding_t (line 105) | struct binding_t
  type binding_t (line 106) | struct binding_t
  type binding_t (line 107) | struct binding_t
  type binding_t (line 108) | struct binding_t
  type binding_t (line 109) | struct binding_t
  type binding_t (line 110) | struct binding_t
  type binding_t (line 111) | struct binding_t
  type binding_t (line 113) | struct binding_t
  type binding_t (line 115) | struct binding_t
  type binding_t (line 118) | struct binding_t

FILE: lib.c
  type sysexits (line 56) | struct sysexits
  function mutt_nocurses_error (line 112) | void mutt_nocurses_error (const char *fmt, ...)
  function safe_realloc (line 160) | void safe_realloc (void *ptr, size_t siz)
  function safe_free (line 193) | void safe_free (void *ptr)	/* __SAFE_FREE_CHECKED__ */
  function safe_fclose (line 203) | int safe_fclose (FILE **f)
  function safe_fsync_close (line 214) | int safe_fsync_close (FILE **f)
  function mutt_str_replace (line 286) | void mutt_str_replace (char **p, const char *s)
  function mutt_str_adjust (line 292) | void mutt_str_adjust (char **p)
  function mutt_unlink (line 312) | void mutt_unlink (const char *s)
  function mutt_copy_bytes (line 354) | int mutt_copy_bytes (FILE *in, FILE *out, size_t size)
  function mutt_copy_stream (line 376) | int mutt_copy_stream (FILE *fin, FILE *fout)
  function compare_stat (line 391) | int
  function safe_symlink (line 403) | int safe_symlink(const char *oldpath, const char *newpath)
  function safe_rename (line 450) | int safe_rename (const char *src, const char *target)
  function mutt_mkwrapdir (line 549) | static int mutt_mkwrapdir (const char *path, char *newfile, size_t nflen,
  function mutt_rmtree (line 586) | int mutt_rmtree (const char* path)
  function mutt_put_file_in_place (line 625) | static int mutt_put_file_in_place (const char *path, const char *safe_fi...
  function safe_open (line 635) | int safe_open (const char *path, int flags)
  function FILE (line 679) | FILE *safe_fopen (const char *path, const char *mode)
  function mutt_sanitize_filename (line 706) | void mutt_sanitize_filename (char *f, short slash)
  function mutt_rx_sanitize_string (line 721) | int mutt_rx_sanitize_string (char *dest, size_t destlen, const char *src)
  function mutt_quote_filename (line 837) | size_t mutt_quote_filename (char *d, size_t l, const char *f)
  function mutt_strcmp (line 873) | int mutt_strcmp(const char *a, const char *b)
  function mutt_strcasecmp (line 878) | int mutt_strcasecmp(const char *a, const char *b)
  function mutt_strncmp (line 883) | int mutt_strncmp(const char *a, const char *b, size_t l)
  function mutt_strncasecmp (line 888) | int mutt_strncasecmp(const char *a, const char *b, size_t l)
  function mutt_strlen (line 893) | size_t mutt_strlen(const char *a)
  function mutt_strcoll (line 898) | int mutt_strcoll(const char *a, const char *b)
  function mutt_remove_trailing_ws (line 932) | void mutt_remove_trailing_ws (char *s)
  function mutt_debug (line 1017) | void mutt_debug (FILE *fp, const char *fmt, ...)
  function mutt_atos (line 1035) | int mutt_atos (const char *str, short *dst)
  function mutt_atoi (line 1053) | int mutt_atoi (const char *str, int *dst)
  function mutt_atol (line 1071) | int mutt_atol (const char *str, long *dst)

FILE: lib.h
  function is_email_wsp (line 113) | static inline int is_email_wsp(char c)
  type stat (line 194) | struct stat
  type stat (line 194) | struct stat

FILE: mailbox.h
  type MESSAGE (line 47) | typedef struct

FILE: main.c
  function mutt_exit (line 108) | void mutt_exit (int code)
  function mutt_usage (line 114) | static void mutt_usage (void)
  type utsname (line 184) | struct utsname
  function start_curses (line 529) | static void start_curses (void)
  function main (line 573) | int main (int argc, char **argv)

FILE: mapping.h
  type mapping_t (line 22) | struct mapping_t
  type mapping_t (line 28) | struct mapping_t
  type mapping_t (line 29) | struct mapping_t
  type mapping_t (line 31) | struct mapping_t

FILE: mbox.c
  type m_update_t (line 42) | struct m_update_t
  function mbox_lock_mailbox (line 56) | int mbox_lock_mailbox (CONTEXT *ctx, int excl, int retry)
  function mbox_unlock_mailbox (line 71) | void mbox_unlock_mailbox (CONTEXT *ctx)
  function mmdf_parse_mailbox (line 82) | int mmdf_parse_mailbox (CONTEXT *ctx)
  function mbox_parse_mailbox (line 234) | int mbox_parse_mailbox (CONTEXT *ctx)
  function mbox_open_mailbox (line 421) | int mbox_open_mailbox (CONTEXT *ctx)
  function strict_addrcmp (line 450) | static int strict_addrcmp (const ADDRESS *a, const ADDRESS *b)
  function strict_cmp_lists (line 467) | static int strict_cmp_lists (const LIST *a, const LIST *b)
  function strict_cmp_envelopes (line 483) | static int strict_cmp_envelopes (const ENVELOPE *e1, const ENVELOPE *e2)
  function strict_cmp_parameters (line 509) | static int strict_cmp_parameters (const PARAMETER *p1, const PARAMETER *p2)
  function strict_cmp_bodies (line 526) | static int strict_cmp_bodies (const BODY *b1, const BODY *b2)
  function mbox_strict_cmp_headers (line 539) | int mbox_strict_cmp_headers (const HEADER *h1, const HEADER *h2)
  function mbox_check_mailbox (line 575) | int mbox_check_mailbox (CONTEXT *ctx, int *index_hint)
  function mbox_has_new (line 684) | static int mbox_has_new(CONTEXT *ctx)
  function mbox_reset_atime (line 696) | void mbox_reset_atime (CONTEXT *ctx, struct stat *st)
  function mbox_sync_mailbox (line 725) | int mbox_sync_mailbox (CONTEXT *ctx, int *index_hint)
  function mbox_close_mailbox (line 1079) | int mbox_close_mailbox (CONTEXT *ctx)
  function mutt_reopen_mailbox (line 1087) | int mutt_reopen_mailbox (CONTEXT *ctx, int *index_hint)
  function mbox_check_empty (line 1266) | int mbox_check_empty (const char *path)

FILE: mbyte.c
  function mutt_set_charset (line 46) | void mutt_set_charset (char *charset)
  function wcrtomb_iconv (line 105) | static size_t wcrtomb_iconv (char *s, wchar_t wc, iconv_t cd)
  function wcrtomb (line 133) | size_t wcrtomb (char *s, wchar_t wc, mbstate_t *ps)
  function mbrtowc_iconv (line 155) | size_t mbrtowc_iconv (wchar_t *pwc, const char *s, size_t n,
  function mbrtowc (line 231) | size_t mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
  function iswprint (line 257) | int iswprint (wint_t wc)
  function iswspace (line 265) | int iswspace (wint_t wc)
  function wint_t (line 273) | static wint_t towupper_ucs (wint_t x)
  function iswupper_ucs (line 288) | static int iswupper_ucs (wint_t x)
  function wint_t (line 305) | static wint_t towlower_ucs (wint_t x)
  function iswalnum_ucs (line 316) | static int iswalnum_ucs (wint_t wc)
  function iswalpha_ucs (line 333) | static int iswalpha_ucs (wint_t wc)
  function wint_t (line 348) | wint_t towupper (wint_t wc)
  function wint_t (line 356) | wint_t towlower (wint_t wc)
  function iswalnum (line 364) | int iswalnum (wint_t wc)
  function iswalpha (line 372) | int iswalpha (wint_t wc)
  function iswupper (line 380) | int iswupper (wint_t wc)
  function wcwidth_ja (line 393) | int wcwidth_ja (wchar_t ucs)
  function wcwidth (line 409) | int wcwidth (wchar_t wc)
  function utf8rtowc (line 434) | size_t utf8rtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *_ps)
  function wchar_t (line 523) | wchar_t replacement_char (void)
  function mutt_filter_unprintable (line 528) | int mutt_filter_unprintable (char **s)

FILE: md5.c
  function md5_init_ctx (line 71) | void
  function set_uint32 (line 86) | static inline void
  type md5_ctx (line 95) | struct md5_ctx
  type md5_ctx (line 109) | struct md5_ctx
  function md5_stream (line 135) | int
  type md5_ctx (line 205) | struct md5_ctx
  function md5_process_bytes (line 218) | void
  function md5_process_block (line 298) | void
  function main (line 459) | int main(void)

FILE: md5.h
  type md5_uint32 (line 65) | typedef uint32_t md5_uint32;
  type md5_ctx (line 68) | struct md5_ctx
  type md5_ctx (line 87) | struct md5_ctx
  type md5_ctx (line 94) | struct md5_ctx
  type md5_ctx (line 101) | struct md5_ctx
  type md5_ctx (line 107) | struct md5_ctx
  type md5_ctx (line 113) | struct md5_ctx

FILE: menu.c
  function get_color (line 36) | static int
  function print_enriched_string (line 76) | static void print_enriched_string (int index, int attr, unsigned char *s...
  function menu_make_entry (line 234) | static void menu_make_entry (char *s, int l, MUTTMENU *menu, int i)
  function menu_pad_string (line 245) | static void menu_pad_string (char *s, size_t n)
  function menu_redraw_full (line 256) | void menu_redraw_full (MUTTMENU *menu)
  function menu_redraw_status (line 283) | void menu_redraw_status (MUTTMENU *menu)
  function menu_redraw_index (line 295) | void menu_redraw_index (MUTTMENU *menu)
  function menu_redraw_motion (line 349) | void menu_redraw_motion (MUTTMENU *menu)
  function menu_redraw_current (line 397) | void menu_redraw_current (MUTTMENU *menu)
  function menu_redraw_prompt (line 421) | static void menu_redraw_prompt (MUTTMENU *menu)
  function menu_check_recenter (line 439) | void menu_check_recenter (MUTTMENU *menu)
  function menu_jump (line 478) | void menu_jump (MUTTMENU *menu)
  function menu_next_line (line 503) | void menu_next_line (MUTTMENU *menu)
  function menu_prev_line (line 524) | void menu_prev_line (MUTTMENU *menu)
  function menu_length_jump (line 546) | static void menu_length_jump (MUTTMENU *menu, int jumplen)
  function menu_next_page (line 590) | void menu_next_page (MUTTMENU *menu)
  function menu_prev_page (line 595) | void menu_prev_page (MUTTMENU *menu)
  function menu_half_down (line 600) | void menu_half_down (MUTTMENU *menu)
  function menu_half_up (line 605) | void menu_half_up (MUTTMENU *menu)
  function menu_top_page (line 610) | void menu_top_page (MUTTMENU *menu)
  function menu_bottom_page (line 619) | void menu_bottom_page (MUTTMENU *menu)
  function menu_middle_page (line 632) | void menu_middle_page (MUTTMENU *menu)
  function menu_first_entry (line 648) | void menu_first_entry (MUTTMENU *menu)
  function menu_last_entry (line 659) | void menu_last_entry (MUTTMENU *menu)
  function menu_current_top (line 670) | void menu_current_top (MUTTMENU *menu)
  function menu_current_middle (line 681) | void menu_current_middle (MUTTMENU *menu)
  function menu_current_bottom (line 694) | void menu_current_bottom (MUTTMENU *menu)
  function menu_next_entry (line 707) | static void menu_next_entry (MUTTMENU *menu)
  function menu_prev_entry (line 718) | static void menu_prev_entry (MUTTMENU *menu)
  function default_color (line 729) | static int default_color (int i)
  function menu_search_generic (line 734) | static int menu_search_generic (MUTTMENU *m, regex_t *re, int n)
  function mutt_menu_init (line 742) | void mutt_menu_init (void)
  function MUTTMENU (line 750) | MUTTMENU *mutt_new_menu (int menu)
  function mutt_menuDestroy (line 768) | void mutt_menuDestroy (MUTTMENU **p)
  function menu_search (line 786) | static int menu_search (MUTTMENU *menu, int op)
  function menu_dialog_translate_op (line 848) | static int menu_dialog_translate_op (int i)
  function menu_dialog_dokey (line 867) | static int menu_dialog_dokey (MUTTMENU *menu, int *ip)
  function menu_redraw (line 892) | int menu_redraw (MUTTMENU *menu)
  function mutt_menuLoop (line 920) | int mutt_menuLoop (MUTTMENU *menu)

FILE: mh.c
  type maildir (line 65) | struct maildir
  type mh_sequences (line 76) | struct mh_sequences
  type mh_data (line 82) | struct mh_data
  type mh_data (line 94) | struct mh_data
  type mh_data (line 96) | struct mh_data
  function mhs_alloc (line 99) | static void mhs_alloc (struct mh_sequences *mhs, int i)
  function mhs_free_sequences (line 116) | static void mhs_free_sequences (struct mh_sequences *mhs)
  function mhs_check (line 121) | static short mhs_check (struct mh_sequences *mhs, int i)
  function mhs_set (line 129) | static short mhs_set (struct mh_sequences *mhs, int i, short f)
  function mhs_unset (line 140) | static short mhs_unset (struct mh_sequences *mhs, int i, short f)
  function mh_read_token (line 149) | static int mh_read_token (char *t, int *first, int *last)
  function mh_read_sequences (line 167) | static int mh_read_sequences (struct mh_sequences *mhs, const char *path)
  function mode_t (line 219) | static inline mode_t mh_umask (CONTEXT* ctx)
  function mh_sequences_changed (line 241) | static int mh_sequences_changed(BUFFY *b)
  function mh_already_notified (line 257) | static int mh_already_notified(BUFFY *b, int msgno)
  function mh_buffy (line 268) | void mh_buffy(BUFFY *b)
  function mh_buffy_update (line 310) | void
  function mh_mkstemp (line 345) | static int mh_mkstemp (CONTEXT * dest, FILE ** fp, char **tgt)
  function mhs_write_one_sequence (line 384) | static void mhs_write_one_sequence (FILE * fp, struct mh_sequences *mhs,
  function mh_update_sequences (line 428) | static void mh_update_sequences (CONTEXT * ctx)
  function mh_sequences_add_one (line 537) | static void mh_sequences_add_one (CONTEXT * ctx, int n, short unseen,
  function mh_update_maildir (line 609) | static void mh_update_maildir (struct maildir *md, struct mh_sequences *...
  function maildir_free_entry (line 634) | static void maildir_free_entry (struct maildir **md)
  function maildir_free_maildir (line 646) | static void maildir_free_maildir (struct maildir **md)
  function maildir_parse_flags (line 660) | void maildir_parse_flags (HEADER * h, const char *path)
  function maildir_update_mtime (line 713) | static void maildir_update_mtime (CONTEXT * ctx)
  function HEADER (line 743) | HEADER *maildir_parse_stream (int magic, FILE *f, const char *fname,
  function HEADER (line 780) | HEADER *maildir_parse_message (int magic, const char *fname,
  function mh_valid_message (line 798) | int mh_valid_message (const char *s)
  function maildir_parse_dir (line 808) | static int maildir_parse_dir (CONTEXT * ctx, struct maildir ***last,
  function maildir_add_to_context (line 876) | static int maildir_add_to_context (CONTEXT * ctx, struct maildir *md)
  function maildir_move_to_context (line 917) | static int maildir_move_to_context (CONTEXT * ctx, struct maildir **md)
  function maildir_hcache_keylen (line 926) | static size_t maildir_hcache_keylen (const char *fn)
  function md_cmp_inode (line 934) | static int md_cmp_inode (struct maildir *a, struct maildir *b)
  function md_cmp_path (line 940) | static int md_cmp_path (struct maildir *a, struct maildir *b)
  type maildir (line 948) | struct maildir
  type maildir (line 948) | struct maildir
  type maildir (line 949) | struct maildir
  type maildir (line 950) | struct maildir
  type maildir (line 951) | struct maildir
  type maildir (line 953) | struct maildir
  type maildir (line 954) | struct maildir
  type maildir (line 1006) | struct maildir
  type maildir (line 1006) | struct maildir
  type maildir (line 1007) | struct maildir
  type maildir (line 1008) | struct maildir
  type maildir (line 1010) | struct maildir
  type maildir (line 1038) | struct maildir
  type maildir (line 1038) | struct maildir
  type maildir (line 1039) | struct maildir
  type maildir (line 1040) | struct maildir
  type maildir (line 1042) | struct maildir
  type maildir (line 1043) | struct maildir
  function mh_sort_natural (line 1074) | static void mh_sort_natural (CONTEXT *ctx, struct maildir **md)
  type maildir (line 1084) | struct maildir
  type maildir (line 1084) | struct maildir
  type maildir (line 1084) | struct maildir
  function maildir_delayed_parsing (line 1107) | static void maildir_delayed_parsing (CONTEXT * ctx, struct maildir **md,
  function mh_close_mailbox (line 1215) | static int mh_close_mailbox (CONTEXT *ctx)
  function mh_read_dir (line 1229) | int mh_read_dir (CONTEXT * ctx, const char *subdir)
  function maildir_read_dir (line 1285) | int maildir_read_dir (CONTEXT * ctx)
  function mh_open_new_message (line 1300) | int mh_open_new_message (MESSAGE * msg, CONTEXT * dest, HEADER * hdr)
  function ch_compar (line 1305) | static int ch_compar (const void *a, const void *b)
  function maildir_flags (line 1310) | void maildir_flags (char *dest, size_t destlen, HEADER * hdr)
  function maildir_open_new_message (line 1346) | int maildir_open_new_message (MESSAGE * msg, CONTEXT * dest, HEADER * hdr)
  function maildir_commit_message (line 1433) | int maildir_commit_message (CONTEXT * ctx, MESSAGE * msg, HEADER * hdr)
  function _mh_commit_message (line 1517) | static int _mh_commit_message (CONTEXT * ctx, MESSAGE * msg, HEADER * hdr,
  function mh_commit_message (line 1593) | int mh_commit_message (CONTEXT * ctx, MESSAGE * msg, HEADER * hdr)
  function mh_rewrite_message (line 1605) | static int mh_rewrite_message (CONTEXT * ctx, int msgno)
  function mh_sync_message (line 1678) | static int mh_sync_message (CONTEXT * ctx, int msgno)
  function maildir_sync_message (line 1690) | static int maildir_sync_message (CONTEXT * ctx, int msgno)
  function mh_sync_mailbox_message (line 1756) | int mh_sync_mailbox_message (CONTEXT * ctx, int msgno)
  function mh_sync_mailbox (line 1820) | int mh_sync_mailbox (CONTEXT * ctx, int *index_hint)
  function maildir_update_tables (line 1910) | static void maildir_update_tables (CONTEXT *ctx, int *index_hint)
  function maildir_update_flags (line 1938) | void maildir_update_flags (CONTEXT *ctx, HEADER *o, HEADER *n)
  function maildir_check_mailbox (line 1983) | int maildir_check_mailbox (CONTEXT * ctx, int *index_hint)
  function mh_check_mailbox (line 2129) | int mh_check_mailbox (CONTEXT * ctx, int *index_hint)
  function FILE (line 2240) | static FILE *_maildir_open_find_message (const char *folder, const char ...
  function FILE (line 2284) | FILE *maildir_open_find_message (const char *folder, const char *msg,
  function maildir_check_empty (line 2335) | int maildir_check_empty (const char *path)
  function mh_check_empty (line 2374) | int mh_check_empty (const char *path)
  function mx_is_maildir (line 2395) | int mx_is_maildir (const char *path)
  function mx_is_mh (line 2406) | int mx_is_mh (const char *path)

FILE: mutt.h
  type BUFFER (line 118) | typedef struct
  type event_t (line 126) | typedef struct
  type format_flag (line 136) | typedef enum
  type LIST (line 573) | typedef struct list_t
  type RX_LIST (line 579) | typedef struct rx_list_t
  type SPAM_LIST (line 585) | typedef struct spam_list_t
  type ALIAS (line 610) | typedef struct alias
  type ENVELOPE (line 621) | typedef struct envelope
  type PARAMETER (line 647) | typedef struct parameter
  type CONTENT (line 655) | typedef struct content
  type BODY (line 669) | typedef struct body
  type THREAD (line 747) | typedef struct mutt_thread THREAD;
  type HEADER (line 749) | typedef struct header
  type mutt_thread (line 831) | struct mutt_thread
  type pattern_exec_flag (line 853) | typedef enum {
  type group_t (line 857) | typedef struct group_t
  type group_context_t (line 864) | typedef struct group_context_t
  type pattern_t (line 870) | typedef struct pattern_t
  type CONTEXT (line 908) | typedef struct _context
  type STATE (line 958) | typedef struct
  type ENTER_STATE (line 968) | typedef struct
  type ATTACH_MATCH (line 1001) | typedef struct

FILE: mutt_crypt.h
  type pgp_ring (line 96) | enum pgp_ring
  type pgp_ring_t (line 101) | typedef enum pgp_ring pgp_ring_t;
  type pgp_keyinfo (line 104) | struct pgp_keyinfo
  type pgp_keyinfo (line 105) | struct pgp_keyinfo

FILE: mutt_curses.h
  type COLOR_LINE (line 158) | typedef struct color_line
  type progress_t (line 174) | typedef struct
  function mutt_term_width (line 193) | static inline int mutt_term_width(short wrap)

FILE: mutt_idna.c
  function check_idn (line 28) | static int check_idn (char *domain)
  function mbox_to_udomain (line 46) | static int mbox_to_udomain (const char *mbx, char **user, char **domain)
  function addr_is_local (line 62) | static int addr_is_local (ADDRESS *a)
  function addr_is_intl (line 67) | static int addr_is_intl (ADDRESS *a)
  function set_local_mailbox (line 72) | static void set_local_mailbox (ADDRESS *a, char *local_mailbox)
  function set_intl_mailbox (line 80) | static void set_intl_mailbox (ADDRESS *a, char *intl_mailbox)
  function mutt_addrlist_to_intl (line 228) | int mutt_addrlist_to_intl (ADDRESS *a, char **err)
  function mutt_addrlist_to_local (line 260) | int mutt_addrlist_to_local (ADDRESS *a)
  function mutt_env_to_local (line 307) | void mutt_env_to_local (ENVELOPE *e)
  function mutt_env_to_intl (line 329) | int mutt_env_to_intl (ENVELOPE *env, char **tag, char **err)

FILE: mutt_menu.h
  type MUTTMENU (line 43) | typedef struct menu_t
  type menu_t (line 118) | struct menu_t

FILE: mutt_notmuch.c
  type uri_tag (line 69) | struct uri_tag {
  type nm_hdrtag (line 78) | struct nm_hdrtag
  type nm_hdrdata (line 88) | struct nm_hdrdata {
  type nm_ctxdata (line 101) | struct nm_ctxdata {
  function url_free_tags (line 125) | static void url_free_tags(struct uri_tag *tags)
  function url_parse_query (line 136) | static int url_parse_query(char *url, char **filename, struct uri_tag **...
  function free_tag_list (line 207) | static void free_tag_list(struct nm_hdrtag **tag_list)
  function free_hdrdata (line 222) | static void free_hdrdata(struct nm_hdrdata *data)
  function free_ctxdata (line 237) | static void free_ctxdata(struct nm_ctxdata *data)
  type nm_ctxdata (line 258) | struct nm_ctxdata
  type nm_ctxdata (line 260) | struct nm_ctxdata
  type nm_ctxdata (line 265) | struct nm_ctxdata
  function deinit_context (line 281) | static int deinit_context(CONTEXT *ctx)
  function init_context (line 302) | static int init_context(CONTEXT *ctx)
  type nm_hdrdata (line 320) | struct nm_hdrdata
  type nm_hdrdata (line 326) | struct nm_hdrdata
  type nm_hdrdata (line 331) | struct nm_hdrdata
  type nm_hdrtag (line 336) | struct nm_hdrtag
  type nm_hdrdata (line 341) | struct nm_hdrdata
  function nm_header_get_magic (line 352) | int nm_header_get_magic(HEADER *h)
  type nm_hdrdata (line 362) | struct nm_hdrdata
  type nm_ctxdata (line 374) | struct nm_ctxdata
  function string_to_guery_type (line 382) | static int string_to_guery_type(const char *str)
  type nm_ctxdata (line 398) | struct nm_ctxdata
  type uri_tag (line 400) | struct uri_tag
  function get_limit (line 430) | static int get_limit(struct nm_ctxdata *data)
  function get_query_type (line 435) | static int get_query_type(struct nm_ctxdata *data)
  type nm_ctxdata (line 440) | struct nm_ctxdata
  function notmuch_database_t (line 459) | static notmuch_database_t *do_database_open(const char *filename,
  function notmuch_database_t (line 499) | static notmuch_database_t *get_db(struct nm_ctxdata *data, int writable)
  function release_db (line 512) | static int release_db(struct nm_ctxdata *data)
  function db_trans_begin (line 533) | static int db_trans_begin(struct nm_ctxdata *data)
  function db_trans_end (line 549) | static int db_trans_end(struct nm_ctxdata *data)
  function nm_longrun_init (line 564) | void nm_longrun_init(CONTEXT *ctx, int writable)
  function nm_longrun_done (line 574) | void nm_longrun_done(CONTEXT *ctx)
  function is_longrun (line 582) | static int is_longrun(struct nm_ctxdata *data)
  function nm_debug_check (line 587) | void nm_debug_check(CONTEXT *ctx)
  function get_database_mtime (line 600) | static int get_database_mtime(struct nm_ctxdata *data, time_t *mtime)
  function apply_exclude_tags (line 620) | static void apply_exclude_tags(notmuch_query_t *query)
  function notmuch_query_t (line 651) | static notmuch_query_t *get_query(struct nm_ctxdata *data, int writable)
  function append_str_item (line 680) | static void append_str_item(char **str, const char *item, int sep)
  function update_header_tags (line 693) | static int update_header_tags(HEADER *h, notmuch_message_t *msg)
  function update_message_path (line 771) | static int update_message_path(HEADER *h, const char *path)
  function deinit_header (line 822) | static void deinit_header(HEADER *h)
  function init_header (line 845) | static int init_header(HEADER *h, const char *path, notmuch_message_t *msg)
  function nm_progress_reset (line 920) | static void nm_progress_reset(CONTEXT *ctx)
  function nm_progress_update (line 936) | static void nm_progress_update(CONTEXT *ctx, notmuch_query_t *q)
  function append_message (line 965) | static void append_message(CONTEXT *ctx,
  function append_replies (line 1052) | static void append_replies(CONTEXT *ctx,
  function append_thread (line 1075) | static void append_thread(CONTEXT *ctx,
  function read_mesgs_query (line 1093) | static void read_mesgs_query(CONTEXT *ctx, notmuch_query_t *q, int dedup)
  function read_threads_query (line 1121) | static void read_threads_query(CONTEXT *ctx, notmuch_query_t *q, int ded...
  function nm_read_query (line 1146) | int nm_read_query(CONTEXT *ctx)
  function nm_read_entire_thread (line 1192) | int nm_read_entire_thread(CONTEXT *ctx, HEADER *h)
  type nm_ctxdata (line 1247) | struct nm_ctxdata
  function notmuch_message_t (line 1270) | static notmuch_message_t *get_nm_message(notmuch_database_t *db, HEADER ...
  function update_tags (line 1283) | static int update_tags(notmuch_message_t *msg, const char *tags)
  function nm_modify_message_tags (line 1324) | int nm_modify_message_tags(CONTEXT *ctx, HEADER *hdr, char *buf)
  function rename_maildir_filename (line 1354) | static int rename_maildir_filename(const char *old, char *newpath, size_...
  function remove_filename (line 1398) | static int remove_filename(struct nm_ctxdata *data, const char *path)
  function rename_filename (line 1452) | static int rename_filename(struct nm_ctxdata *data,
  function nm_update_filename (line 1534) | int nm_update_filename(CONTEXT *ctx, const char *old, const char *new, H...
  function nm_sync (line 1556) | int nm_sync(CONTEXT *ctx, int *index_hint)
  function count_query (line 1632) | static unsigned count_query(notmuch_database_t *db, const char *qstr)
  function nm_nonctx_get_count (line 1651) | int nm_nonctx_get_count(char *path, int *all, int *new)
  function nm_description_to_path (line 1737) | int nm_description_to_path(const char *desc, char *buf, size_t bufsz)
  function HEADER (line 1757) | static HEADER *get_mutt_header(CONTEXT *ctx, notmuch_message_t *msg)
  function nm_check_database (line 1787) | int nm_check_database(CONTEXT *ctx, int *index_hint)
  function nm_record_message (line 1897) | int nm_record_message(CONTEXT *ctx, char *path, HEADER *h)
  function nm_get_all_tags (line 1948) | int nm_get_all_tags(CONTEXT *ctx, char **tag_list, int *tag_count)

FILE: mutt_regex.h
  type REGEXP (line 42) | typedef struct

FILE: mutt_sasl.c
  function getnameinfo_err (line 36) | static int getnameinfo_err(int ret)
  function iptostring (line 105) | static int iptostring(const struct sockaddr *addr, socklen_t addrlen,
  function mutt_sasl_start (line 133) | int mutt_sasl_start (void)
  function mutt_sasl_client_new (line 168) | int mutt_sasl_client_new (CONNECTION* conn, sasl_conn_t** saslconn)
  function sasl_callback_t (line 266) | sasl_callback_t* mutt_sasl_get_callbacks (ACCOUNT* account)
  function mutt_sasl_interact (line 299) | int mutt_sasl_interact (sasl_interact_t* interaction)
  function mutt_sasl_setup_conn (line 339) | void mutt_sasl_setup_conn (CONNECTION* conn, sasl_conn_t* saslconn)
  function mutt_sasl_cb_log (line 379) | static int mutt_sasl_cb_log (void* context, int priority, const char* me...
  function mutt_sasl_done (line 386) | void mutt_sasl_done (void)
  function mutt_sasl_cb_authname (line 392) | static int mutt_sasl_cb_authname (void* context, int id, const char** re...
  function mutt_sasl_cb_pass (line 430) | static int mutt_sasl_cb_pass (sasl_conn_t* conn, void* context, int id,
  function mutt_sasl_conn_open (line 459) | static int mutt_sasl_conn_open (CONNECTION* conn)
  function mutt_sasl_conn_close (line 474) | static int mutt_sasl_conn_close (CONNECTION* conn)
  function mutt_sasl_conn_read (line 499) | static int mutt_sasl_conn_read (CONNECTION* conn, char* buf, size_t len)
  function mutt_sasl_conn_write (line 563) | static int mutt_sasl_conn_write (CONNECTION* conn, const char* buf,
  function mutt_sasl_conn_poll (line 613) | static int mutt_sasl_conn_poll (CONNECTION* conn)

FILE: mutt_sasl.h
  type SASL_DATA (line 34) | typedef struct

FILE: mutt_socket.c
  type sockaddr (line 55) | struct sockaddr
  function mutt_socket_open (line 59) | int mutt_socket_open (CONNECTION* conn)
  function mutt_socket_close (line 74) | int mutt_socket_close (CONNECTION* conn)
  function mutt_socket_read (line 89) | int mutt_socket_read (CONNECTION* conn, char* buf, size_t len)
  function mutt_socket_write_d (line 112) | int mutt_socket_write_d (CONNECTION *conn, const char *buf, int len, int...
  function mutt_socket_poll (line 155) | int mutt_socket_poll (CONNECTION* conn)
  function mutt_socket_readchar (line 167) | int mutt_socket_readchar (CONNECTION *conn, char *c)
  function mutt_socket_readln_d (line 195) | int mutt_socket_readln_d (char* buf, size_t buflen, CONNECTION* conn, in...
  function CONNECTION (line 224) | CONNECTION* mutt_socket_head (void)
  function mutt_socket_free (line 230) | void mutt_socket_free (CONNECTION* conn)
  function CONNECTION (line 263) | CONNECTION* mutt_conn_find (const CONNECTION* start, const ACCOUNT* acco...
  function socket_preconnect (line 319) | static int socket_preconnect (void)
  function socket_connect (line 343) | static int socket_connect (int fd, struct sockaddr* sa)
  function CONNECTION (line 382) | static CONNECTION* socket_new_conn (void)
  function raw_socket_close (line 392) | int raw_socket_close (CONNECTION *conn)
  function raw_socket_read (line 397) | int raw_socket_read (CONNECTION* conn, char* buf, size_t len)
  function raw_socket_write (line 411) | int raw_socket_write (CONNECTION* conn, const char* buf, size_t count)
  function raw_socket_poll (line 425) | int raw_socket_poll (CONNECTION* conn)
  function raw_socket_open (line 439) | int raw_socket_open (CONNECTION* conn)

FILE: mutt_socket.h
  type CONNECTION (line 31) | typedef struct _connection

FILE: mutt_ssl.c
  type sslsockdata (line 67) | typedef struct
  function mutt_ssl_starttls (line 94) | int mutt_ssl_starttls (CONNECTION* conn)
  function ssl_init (line 198) | static int ssl_init (void)
  function add_entropy (line 239) | static int add_entropy (const char *file)
  function ssl_socket_open_err (line 274) | static int ssl_socket_open_err (CONNECTION *conn)
  function mutt_ssl_socket_setup (line 282) | int mutt_ssl_socket_setup (CONNECTION * conn)
  function ssl_socket_read (line 299) | static int ssl_socket_read (CONNECTION* conn, char* buf, size_t len)
  function ssl_socket_write (line 314) | static int ssl_socket_write (CONNECTION* conn, const char* buf, size_t len)
  function ssl_socket_open (line 326) | static int ssl_socket_open (CONNECTION * conn)
  function ssl_negotiate (line 393) | static int ssl_negotiate (CONNECTION *conn, sslsockdata* ssldata)
  function ssl_socket_close (line 450) | static int ssl_socket_close (CONNECTION * conn)
  function tls_close (line 471) | static int tls_close (CONNECTION* conn)
  function ssl_err (line 483) | static void ssl_err (sslsockdata *data, int err)
  function x509_fingerprint (line 562) | static void x509_fingerprint (char *s, int l, X509 * cert)
  function check_certificate_by_signer (line 601) | static int check_certificate_by_signer (X509 *peercert)
  function compare_certificates (line 655) | static int compare_certificates (X509 *cert, X509 *peercert,
  function check_certificate_cache (line 677) | static int check_certificate_cache (X509 *peercert)
  function check_certificate_by_digest (line 702) | static int check_certificate_by_digest (X509 *peercert)
  function hostname_match (line 752) | static int hostname_match (const char *hostname, const char *certname)
  function check_host (line 789) | static int check_host (X509 *x509cert, const char *hostname, char *err, ...
  function ssl_cache_trusted_cert (line 892) | static int ssl_cache_trusted_cert (X509 *c)
  function ssl_check_preauth (line 903) | static int ssl_check_preauth (X509 *cert, const char* host)
  function ssl_check_certificate (line 942) | static int ssl_check_certificate (CONNECTION *conn, sslsockdata *data)
  function interactive_check_cert (line 977) | static int interactive_check_cert (X509 *cert, int idx, int len)
  function ssl_get_client_cert (line 1099) | static void ssl_get_client_cert(sslsockdata *ssldata, CONNECTION *conn)
  function ssl_passwd_cb (line 1114) | static int ssl_passwd_cb(char *buf, int size, int rwflag, void *userdata)

FILE: mutt_ssl_gnutls.c
  type gnutls_certificate_credentials (line 49) | typedef gnutls_certificate_credentials gnutls_certificate_credentials_t;
  type gnutls_certificate_status (line 53) | typedef gnutls_certificate_status gnutls_certificate_status_t;
  type gnutls_datum (line 57) | typedef gnutls_datum gnutls_datum_t;
  type gnutls_digest_algorithm (line 61) | typedef gnutls_digest_algorithm gnutls_digest_algorithm_t;
  type gnutls_session (line 65) | typedef gnutls_session gnutls_session_t;
  type gnutls_transport_ptr (line 69) | typedef gnutls_transport_ptr gnutls_transport_ptr_t;
  type gnutls_x509_crt (line 73) | typedef gnutls_x509_crt gnutls_x509_crt_t;
  type tlssockdata (line 77) | typedef struct _tlssockdata
  function tls_init (line 96) | static int tls_init (void)
  function mutt_ssl_socket_setup (line 116) | int mutt_ssl_socket_setup (CONNECTION* conn)
  function tls_socket_read (line 130) | static int tls_socket_read (CONNECTION* conn, char* buf, size_t len)
  function tls_socket_write (line 156) | static int tls_socket_write (CONNECTION* conn, const char* buf, size_t len)
  function tls_socket_open (line 188) | static int tls_socket_open (CONNECTION* conn)
  function mutt_ssl_starttls (line 202) | int mutt_ssl_starttls (CONNECTION* conn)
  function tls_get_client_cert (line 217) | static void tls_get_client_cert (CONNECTION* conn)
  function tls_set_priority (line 273) | static int tls_set_priority(tlssockdata *data)
  function tls_set_priority (line 335) | static int tls_set_priority(tlssockdata *data)
  function tls_negotiate (line 371) | static int tls_negotiate (CONNECTION * conn)
  function tls_socket_close (line 482) | static int tls_socket_close (CONNECTION* conn)
  function tls_starttls_close (line 505) | static int tls_starttls_close (CONNECTION* conn)
  function tls_compare_certificates (line 520) | static int tls_compare_certificates (const gnutls_datum_t *peercert)
  function tls_fingerprint (line 587) | static void tls_fingerprint (gnutls_digest_algorithm_t algo,
  type tm (line 614) | struct tm
  function tls_check_stored_hostname (line 626) | static int tls_check_stored_hostname (const gnutls_datum_t *cert,
  function tls_check_preauth (line 676) | static int tls_check_preauth (const gnutls_datum_t *certdata,
  function tls_check_one_certificate (line 797) | static int tls_check_one_certificate (const gnutls_datum_t *certdata,
  function gnutls_certificate_status_t (line 1068) | static gnutls_certificate_status_t tls_verify_peers (gnutls_session_t tl...
  function tls_check_certificate (line 1102) | static int tls_check_certificate (CONNECTION* conn)

FILE: mutt_tunnel.c
  type TUNNEL_DATA (line 36) | typedef struct
  function mutt_tunnel_socket_setup (line 51) | int mutt_tunnel_socket_setup (CONNECTION *conn)
  function tunnel_socket_open (line 62) | static int tunnel_socket_open (CONNECTION *conn)
  function tunnel_socket_close (line 129) | static int tunnel_socket_close (CONNECTION* conn)
  function tunnel_socket_read (line 149) | static int tunnel_socket_read (CONNECTION* conn, char* buf, size_t len)
  function tunnel_socket_write (line 165) | static int tunnel_socket_write (CONNECTION* conn, const char* buf, size_...
  function tunnel_socket_poll (line 181) | static int tunnel_socket_poll (CONNECTION* conn)

FILE: muttlib.c
  function BODY (line 56) | BODY *mutt_new_body (void)
  function mutt_adv_mktemp (line 72) | void mutt_adv_mktemp (char *s, size_t l)
  function mutt_copy_body (line 101) | int mutt_copy_body (FILE *fp, BODY **tgt, BODY *src)
  function mutt_free_body (line 168) | void mutt_free_body (BODY **p)
  function mutt_free_parameter (line 210) | void mutt_free_parameter (PARAMETER **p)
  function LIST (line 226) | LIST *mutt_add_list (LIST *head, const char *data)
  function LIST (line 233) | LIST *mutt_add_list_n (LIST *head, const void *data, size_t len)
  function LIST (line 254) | LIST *mutt_find_list (LIST *l, const char *data)
  function mutt_remove_from_rx_list (line 269) | int mutt_remove_from_rx_list (RX_LIST **l, const char *str)
  function mutt_free_list (line 305) | void mutt_free_list (LIST **list)
  function HEADER (line 319) | HEADER *mutt_dup_header(HEADER *h)
  function mutt_free_header (line 328) | void mutt_free_header (HEADER **h)
  function mutt_matches_ignore (line 348) | int mutt_matches_ignore (const char *s, LIST *t)
  function mutt_expand_link (line 359) | void mutt_expand_link (char *newpath, const char *path, const char *link)
  type passwd (line 414) | struct passwd
  type passwd (line 570) | struct passwd
  function mutt_set_parameter (line 619) | void mutt_set_parameter (const char *attribute, const char *value, PARAM...
  function mutt_delete_parameter (line 645) | void mutt_delete_parameter (const char *attribute, PARAMETER **p)
  function mutt_needs_mailcap (line 662) | int mutt_needs_mailcap (BODY *m)
  function mutt_is_text_part (line 686) | int mutt_is_text_part (BODY *b)
  function mutt_free_envelope (line 712) | void mutt_free_envelope (ENVELOPE **p)
  function mutt_merge_envelopes (line 741) | void mutt_merge_envelopes(ENVELOPE* base, ENVELOPE** extra)
  function mutt_randbuf (line 790) | void mutt_randbuf(void *out, size_t len)
  function mutt_rand_base32 (line 828) | void mutt_rand_base32(void *out, size_t len)
  function mutt_rand32 (line 838) | uint32_t mutt_rand32(void)
  function mutt_rand64 (line 846) | uint64_t mutt_rand64(void)
  function _mutt_mktemp (line 855) | void _mutt_mktemp (char *s, size_t slen, const char *prefix, const char ...
  function mutt_free_alias (line 870) | void mutt_free_alias (ALIAS **p)
  function mutt_pretty_mailbox (line 886) | void mutt_pretty_mailbox (char *s, size_t buflen)
  function mutt_pretty_size (line 961) | void mutt_pretty_size (char *s, size_t len, LOFF_T n)
  function mutt_expand_file_fmt (line 981) | void mutt_expand_file_fmt (char *dest, size_t destlen, const char *fmt, ...
  function mutt_expand_fmt (line 989) | void mutt_expand_fmt (char *dest, size_t destlen, const char *fmt, const...
  function mutt_check_overwrite (line 1040) | int mutt_check_overwrite (const char *attname, const char *path,
  function mutt_save_path (line 1110) | void mutt_save_path (char *d, size_t dsize, ADDRESS *a)
  function mutt_safe_path (line 1128) | void mutt_safe_path (char *s, size_t l, ADDRESS *a)
  function mutt_FormatString (line 1139) | void mutt_FormatString (char *dest,		/* output buffer */
  function FILE (line 1598) | FILE *mutt_open_read (const char *path, pid_t *thepid)
  function mutt_save_confirm (line 1632) | int mutt_save_confirm (const char *s, struct stat *st)
  function state_prefix_putc (line 1696) | void state_prefix_putc (char c, STATE *s)
  function state_printf (line 1711) | int state_printf (STATE *s, const char *fmt, ...)
  function state_mark_attach (line 1723) | void state_mark_attach (STATE *s)
  function state_attach_puts (line 1729) | void state_attach_puts (const char *t, STATE *s)
  function state_putwc (line 1740) | int state_putwc (wchar_t wc, STATE *s)
  function state_putws (line 1752) | int state_putws (const wchar_t *ws, STATE *s)
  function mutt_display_sanitize (line 1765) | void mutt_display_sanitize (char *s)
  function mutt_sleep (line 1774) | void mutt_sleep (short s)
  function BUFFER (line 1783) | BUFFER *mutt_buffer_new(void) {
  function BUFFER (line 1794) | BUFFER *mutt_buffer_init (BUFFER *b) {
  function BUFFER (line 1807) | BUFFER *mutt_buffer_from (char *seed) {
  function mutt_buffer_printf (line 1820) | int mutt_buffer_printf (BUFFER* buf, const char* fmt, ...)
  function mutt_buffer_addstr (line 1860) | void mutt_buffer_addstr (BUFFER* buf, const char* s)
  function mutt_buffer_addch (line 1865) | void mutt_buffer_addch (BUFFER* buf, char c)
  function mutt_buffer_free (line 1870) | void mutt_buffer_free (BUFFER **p)
  function mutt_buffer_add (line 1883) | void mutt_buffer_add (BUFFER* buf, const char* s, size_t len)
  function time_t (line 1902) | time_t mutt_decrease_mtime (const char *f, struct stat *st)
  function mutt_set_mtime (line 1927) | void mutt_set_mtime (const char* from, const char* to)
  function REGEXP (line 1948) | REGEXP *mutt_compile_regexp (const char *s, int flags)
  function mutt_free_regexp (line 1959) | void mutt_free_regexp (REGEXP **pp)
  function mutt_free_rx_list (line 1967) | void mutt_free_rx_list (RX_LIST **list)
  function mutt_free_spam_list (line 1981) | void mutt_free_spam_list (SPAM_LIST **list)
  function mutt_match_rx_list (line 1996) | int mutt_match_rx_list (const char *s, RX_LIST *l)
  function mutt_match_spam_list (line 2019) | int mutt_match_spam_list (const char *s, SPAM_LIST *l, char *text, int t...
  function mutt_encode_path (line 2087) | void mutt_encode_path (char *dest, size_t dlen, const char *src)

FILE: mx.c
  function invoke_dotlock (line 82) | static int invoke_dotlock (const char *path, int dummy, int flags, int r...
  function dotlock_file (line 113) | static int dotlock_file (const char *path, int fd, int retry)
  function undotlock_file (line 145) | static int undotlock_file (const char *path, int fd)
  function mx_lock_file (line 158) | int mx_lock_file (const char *path, int fd, int excl, int dot, int timeout)
  function mx_unlock_file (line 262) | int mx_unlock_file (const char *path, int fd, int dot)
  function mx_unlink_empty (line 285) | static void mx_unlink_empty (const char *path)
  function mx_is_imap (line 322) | int mx_is_imap(const char *p)
  function mx_is_pop (line 342) | int mx_is_pop (const char *p)
  function mx_is_notmuch (line 359) | int mx_is_notmuch(const char *p)
  function mx_get_magic (line 375) | int mx_get_magic (const char *path)
  function mx_set_magic (line 457) | int mx_set_magic (const char *s)
  function mx_access (line 476) | int mx_access (const char* path, int flags)
  function mx_open_mailbox_append (line 486) | static int mx_open_mailbox_append (CONTEXT *ctx, int flags)
  function CONTEXT (line 620) | CONTEXT *mx_open_mailbox (const char *path, int flags, CONTEXT *pctx)
  function mx_fastclose_mailbox (line 746) | void mx_fastclose_mailbox (CONTEXT *ctx)
  function sync_mailbox (line 795) | static int sync_mailbox (CONTEXT *ctx, int *index_hint)
  function mx_close_mailbox (line 849) | int mx_close_mailbox (CONTEXT *ctx, int *index_hint)
  function mx_update_tables (line 1067) | void mx_update_tables(CONTEXT *ctx, int committing)
  function mx_sync_mailbox (line 1158) | int mx_sync_mailbox (CONTEXT *ctx, int *index_hint)
  function mbox_open_new_message (line 1276) | static int mbox_open_new_message (MESSAGE *msg, CONTEXT *dest, HEADER *hdr)
  function imap_open_new_message (line 1283) | static int imap_open_new_message (MESSAGE *msg, CONTEXT *dest, HEADER *hdr)
  function MESSAGE (line 1303) | MESSAGE *mx_open_new_message (CONTEXT *dest, HEADER *hdr, int flags)
  function mx_check_mailbox (line 1376) | int mx_check_mailbox (CONTEXT *ctx, int *index_hint, int lock)
  function MESSAGE (line 1441) | MESSAGE *mx_open_message (CONTEXT *ctx, int msgno)
  function mx_commit_message (line 1512) | int mx_commit_message (MESSAGE *msg, CONTEXT *ctx)
  function mx_close_message (line 1576) | int mx_close_message (MESSAGE **msg)
  function mx_alloc_memory (line 1605) | void mx_alloc_memory (CONTEXT *ctx)
  function mx_update_context (line 1637) | void mx_update_context (CONTEXT *ctx, int new_messages)
  function mx_check_empty (line 1709) | int mx_check_empty (const char *path)

FILE: mx.h
  type stat (line 57) | struct stat

FILE: pager.c
  type q_class_t (line 90) | struct q_class_t
  type syntax_t (line 100) | struct syntax_t
  type line_t (line 107) | struct line_t
  type ansi_attr (line 127) | typedef struct _ansi_attr {
  type resize (line 137) | struct resize {
  function check_sig (line 146) | static int check_sig (const char *s, struct line_t *info, int n)
  function resolve_color (line 177) | static void
  function append_line (line 311) | static void
  function new_class_color (line 329) | static void
  function shift_class_colors (line 336) | static void
  function cleanup_quote (line 374) | static void
  type q_class_t (line 393) | struct q_class_t
  type q_class_t (line 394) | struct q_class_t
  type q_class_t (line 397) | struct q_class_t
  type q_class_t (line 398) | struct q_class_t
  type q_class_t (line 409) | struct q_class_t
  type q_class_t (line 409) | struct q_class_t
  type q_class_t (line 434) | struct q_class_t
  type q_class_t (line 434) | struct q_class_t
  type q_class_t (line 544) | struct q_class_t
  type q_class_t (line 545) | struct q_class_t
  type q_class_t (line 647) | struct q_class_t
  type q_class_t (line 647) | struct q_class_t
  type q_class_t (line 684) | struct q_class_t
  type q_class_t (line 684) | struct q_class_t
  type line_t (line 710) | struct line_t
  type q_class_t (line 711) | struct q_class_t
  type syntax_t (line 792) | struct syntax_t
  type syntax_t (line 873) | struct syntax_t
  type line_t (line 1304) | struct line_t
  type line_t (line 1307) | struct line_t
  type syntax_t (line 1310) | struct syntax_t
  type syntax_t (line 1378) | struct syntax_t
  type syntax_t (line 1380) | struct syntax_t
  type line_t (line 1618) | struct line_t
  type line_t (line 1621) | struct line_t
  type syntax_t (line 1624) | struct syntax_t
  type resize (line 1928) | struct resize
  type syntax_t (line 1949) | struct syntax_t
  type syntax_t (line 2514) | struct syntax_t

FILE: pager.h
  type pager_t (line 39) | typedef struct

FILE: parse.c
  function LIST (line 97) | static LIST *mutt_parse_references (char *s, int in_reply_to)
  function mutt_check_encoding (line 117) | int mutt_check_encoding (const char *c)
  function PARAMETER (line 139) | static PARAMETER *parse_parameters (const char *s)
  function mutt_check_mime_type (line 263) | int mutt_check_mime_type (const char *s)
  function mutt_parse_content_type (line 293) | void mutt_parse_content_type (char *s, BODY *ct)
  function parse_content_disposition (line 380) | static void parse_content_disposition (const char *s, BODY *ct)
  function BODY (line 410) | BODY *mutt_read_mime_header (FILE *fp, int digest)
  function mutt_parse_part (line 484) | void mutt_parse_part (FILE *fp, BODY *b)
  function BODY (line 540) | BODY *mutt_parse_messageRFC822 (FILE *fp, BODY *parent)
  function BODY (line 575) | BODY *mutt_parse_multipart (FILE *fp, const char *boundary, LOFF_T end_o...
  type tz_t (line 685) | struct tz_t
  function time_t (line 751) | time_t mutt_parse_date (const char *s, HEADER *h)
  function mutt_parse_mime_message (line 953) | void mutt_parse_mime_message (CONTEXT *ctx, HEADER *cur)
  function mutt_parse_rfc822_line (line 979) | int mutt_parse_rfc822_line (ENVELOPE *e, HEADER *hdr, char *line, char *...
  function ENVELOPE (line 1326) | ENVELOPE *mutt_read_rfc822_header (FILE *f, HEADER *hdr, short user_hdrs,
  function ADDRESS (line 1469) | ADDRESS *mutt_parse_adrlist (ADDRESS *p, const char *s)
  function count_body_parts_check (line 1494) | static int count_body_parts_check(LIST **checklist, BODY *b, int dflt)
  function count_body_parts (line 1530) | static int count_body_parts (BODY *body, int flags)
  function mutt_count_body_parts (line 1624) | int mutt_count_body_parts (CONTEXT *ctx, HEADER *hdr)

FILE: pattern.c
  type pattern_flags (line 54) | struct pattern_flags
  function mutt_which_case (line 130) | int mutt_which_case (const char *s)
  function msg_search (line 151) | static int
  function eat_regexp (line 261) | static int eat_regexp (pattern_t *pat, BUFFER *s, BUFFER *err)
  function eat_range (line 317) | int eat_range (pattern_t *pat, BUFFER *s, BUFFER *err)
  type tm (line 402) | struct tm
  type tm (line 406) | struct tm
  type tm (line 446) | struct tm
  function adjust_date_range (line 474) | static void adjust_date_range (struct tm *min, struct tm *max)
  type tm (line 501) | struct tm
  type tm (line 502) | struct tm
  type tm (line 502) | struct tm
  type tm (line 526) | struct tm
  function eat_date (line 582) | static int eat_date (pattern_t *pat, BUFFER *s, BUFFER *err)
  function patmatch (line 720) | static int patmatch (const pattern_t* pat, const char* buf)
  type pattern_flags (line 731) | struct pattern_flags
  function mutt_pattern_free (line 759) | void mutt_pattern_free (pattern_t **pat)
  function pattern_t (line 784) | pattern_t *mutt_pattern_comp (/* const */ char *s, int flags, BUFFER *err)
  function perform_and (line 992) | static int
  function perform_or (line 1001) | static int
  function match_adrlist (line 1010) | static int match_adrlist (pattern_t *pat, int match_personal, int n, ...)
  function match_reference (line 1032) | static int match_reference (pattern_t *pat, LIST *refs)
  function mutt_is_list_recipient (line 1043) | int mutt_is_list_recipient (int alladdr, ADDRESS *a1, ADDRESS *a2)
  function mutt_is_list_cc (line 1059) | int mutt_is_list_cc (int alladdr, ADDRESS *a1, ADDRESS *a2)
  function match_user (line 1070) | static int match_user (int alladdr, ADDRESS *a1, ADDRESS *a2)
  function match_threadcomplete (line 1081) | static int match_threadcomplete(struct pattern_t *pat, pattern_exec_flag...
  function mutt_pattern_exec (line 1106) | int
  function quote_simple (line 1244) | static void quote_simple(char *tmp, size_t len, const char *p)
  function mutt_check_simple (line 1260) | void mutt_check_simple (char *s, size_t len, const char *simple)
  function mutt_pattern_func (line 1311) | int mutt_pattern_func (int op, char *prompt)
  function mutt_search_command (line 1428) | int mutt_search_command (int cur, int op)

FILE: pgp.c
  function pgp_void_passphrase (line 69) | void pgp_void_passphrase (void)
  function pgp_valid_passphrase (line 75) | int pgp_valid_passphrase (void)
  function pgp_forget_passphrase (line 102) | void pgp_forget_passphrase (void)
  function pgp_use_gpg_agent (line 108) | int pgp_use_gpg_agent (void)
  function pgp_key_t (line 122) | static pgp_key_t _pgp_parent(pgp_key_t k)
  function pgp_copy_checksig (line 188) | static int pgp_copy_checksig (FILE *fpin, FILE *fpout)
  function pgp_check_decryption_okay (line 231) | static int pgp_check_decryption_okay (FILE *fpin)
  function pgp_copy_clearsigned (line 279) | static void pgp_copy_clearsigned (FILE *fpin, STATE *s, char *charset)
  function pgp_application_pgp_handler (line 331) | int pgp_application_pgp_handler (BODY *m, STATE *s)
  function pgp_check_traditional_one_body (line 615) | static int pgp_check_traditional_one_body (FILE *fp, BODY *b, int tagged...
  function pgp_check_traditional (line 675) | int pgp_check_traditional (FILE *fp, BODY *b, int tagged_only)
  function pgp_verify_one (line 699) | int pgp_verify_one (BODY *sigbdy, STATE *s, const char *tempfile)
  function pgp_extract_keys_from_messages (line 765) | void pgp_extract_keys_from_messages (HEADER *h)
  function pgp_extract_keys_from_attachment (line 828) | static void pgp_extract_keys_from_attachment (FILE *fp, BODY *top)
  function pgp_extract_keys_from_attachment_list (line 856) | void pgp_extract_keys_from_attachment_list (FILE *fp, int tag, BODY *top)
  function BODY (line 879) | BODY *pgp_decrypt_part (BODY *a, STATE *s, FILE *fpout, BODY *p)
  function pgp_decrypt_mime (line 999) | int pgp_decrypt_mime (FILE *fpin, FILE **fpout, BODY *b, BODY **cur)
  function pgp_encrypted_handler (line 1080) | int pgp_encrypted_handler (BODY *a, STATE *s)
  function BODY (line 1147) | BODY *pgp_sign_message (BODY *a)
  function BODY (line 1393) | BODY *pgp_encrypt_message (BODY *a, char *keylist, int sign)
  function BODY (line 1517) | BODY *pgp_traditional_encryptsign (BODY *a, int flags, char *keylist)
  function pgp_send_menu (line 1701) | int pgp_send_menu (HEADER *msg, int *redraw)

FILE: pgpewrap.c
  function print_usage (line 16) | void print_usage(const char *progname) {
  function main (line 21) | int main(int argc, char **argv) {

FILE: pgpinvoke.c
  type pgp_command_context (line 50) | struct pgp_command_context {
  type pgp_command_context (line 71) | struct pgp_command_context
  type pgp_command_context (line 71) | struct pgp_command_context
  function mutt_pgp_command (line 150) | void mutt_pgp_command (char *d, size_t dlen, struct pgp_command_context ...
  function pid_t (line 161) | static pid_t pgp_invoke (FILE **pgpin, FILE **pgpout, FILE **pgperr,
  function pid_t (line 199) | pid_t pgp_invoke_decode (FILE **pgpin, FILE **pgpout, FILE **pgperr,
  function pid_t (line 208) | pid_t pgp_invoke_verify (FILE **pgpin, FILE **pgpout, FILE **pgperr,
  function pid_t (line 216) | pid_t pgp_invoke_decrypt (FILE **pgpin, FILE **pgpout, FILE **pgperr,
  function pid_t (line 224) | pid_t pgp_invoke_sign (FILE **pgpin, FILE **pgpout, FILE **pgperr,
  function pid_t (line 233) | pid_t pgp_invoke_encrypt (FILE **pgpin, FILE **pgpout, FILE **pgperr,
  function pid_t (line 247) | pid_t pgp_invoke_traditional (FILE **pgpin, FILE **pgpout, FILE **pgperr,
  function pgp_invoke_import (line 262) | void pgp_invoke_import (const char *fname)
  function pgp_invoke_getkeys (line 278) | void pgp_invoke_getkeys (ADDRESS *addr)
  function pid_t (line 318) | pid_t pgp_invoke_export (FILE **pgpin, FILE **pgpout, FILE **pgperr,
  function pid_t (line 327) | pid_t pgp_invoke_verify_key (FILE **pgpin, FILE **pgpout, FILE **pgperr,
  function pid_t (line 336) | pid_t pgp_invoke_list_keys (FILE **pgpin, FILE **pgpout, FILE **pgperr,

FILE: pgpkey.c
  type pgp_cache (line 46) | struct pgp_cache
  type pgp_cache (line 53) | struct pgp_cache
  function pgp_flags (line 80) | static char pgp_flags (int flags)
  function pgp_key_t (line 94) | static pgp_key_t pgp_principal_key (pgp_key_t key)
  type pgp_entry_t (line 116) | typedef struct pgp_entry
  type tm (line 159) | struct tm
  function pgp_entry (line 287) | static void pgp_entry (char *s, size_t l, MUTTMENU * menu, int num)
  function _pgp_compare_address (line 299) | static int _pgp_compare_address (const void *a, const void *b)
  function pgp_compare_address (line 313) | static int pgp_compare_address (const void *a, const void *b)
  function _pgp_compare_keyid (line 321) | static int _pgp_compare_keyid (const void *a, const void *b)
  function pgp_compare_keyid (line 335) | static int pgp_compare_keyid (const void *a, const void *b)
  function _pgp_compare_date (line 341) | static int _pgp_compare_date (const void *a, const void *b)
  function pgp_compare_date (line 352) | static int pgp_compare_date (const void *a, const void *b)
  function _pgp_compare_trust (line 358) | static int _pgp_compare_trust (const void *a, const void *b)
  function pgp_compare_trust (line 380) | static int pgp_compare_trust (const void *a, const void *b)
  function pgp_key_is_valid (line 386) | static int pgp_key_is_valid (pgp_key_t k)
  function pgp_id_is_strong (line 397) | static int pgp_id_is_strong (pgp_uid_t *uid)
  function pgp_id_is_valid (line 405) | static int pgp_id_is_valid (pgp_uid_t *uid)
  function pgp_id_matches_addr (line 422) | static int pgp_id_matches_addr (ADDRESS *addr, ADDRESS *u_addr, pgp_uid_...
  function pgp_key_t (line 443) | static pgp_key_t pgp_select_key (pgp_key_t keys,
  function BODY (line 713) | BODY *pgp_make_key_attachment (char *tempf)
  function LIST (line 788) | static LIST *pgp_add_string_to_hints (LIST *hints, const char *str)
  function pgp_key_t (line 807) | static pgp_key_t *pgp_get_lastp (pgp_key_t p)
  function pgp_key_t (line 816) | pgp_key_t pgp_getkeybyaddr (ADDRESS * a, short abilities, pgp_ring_t key...
  function pgp_key_t (line 950) | pgp_key_t pgp_getkeybystr (char *p, short abilities, pgp_ring_t keyring)

FILE: pgplib.c
  function pgp_canencrypt (line 84) | short pgp_canencrypt (unsigned char type)
  function pgp_cansign (line 98) | short pgp_cansign (unsigned char type)
  function pgp_get_abilities (line 119) | short pgp_get_abilities (unsigned char type)
  function pgp_free_sig (line 124) | void pgp_free_sig (pgp_sig_t **sigp)
  function pgp_free_uid (line 140) | void pgp_free_uid (pgp_uid_t ** upp)
  function pgp_uid_t (line 157) | pgp_uid_t *pgp_copy_uids (pgp_uid_t *up, pgp_key_t parent)
  function _pgp_free_key (line 175) | static void _pgp_free_key (pgp_key_t *kpp)
  function pgp_key_t (line 191) | pgp_key_t pgp_remove_key (pgp_key_t *klist, pgp_key_t key)
  function pgp_free_key (line 219) | void pgp_free_key (pgp_key_t *kpp)

FILE: pgplib.h
  type pgp_sig_t (line 25) | typedef struct pgp_signature
  type pgp_keyinfo (line 34) | struct pgp_keyinfo
  type pgp_uid_t (line 50) | typedef struct pgp_uid
  type pgp_version (line 61) | enum pgp_version

FILE: pgpmicalg.c
  function pgp_dearmor (line 68) | static void pgp_dearmor (FILE *in, FILE *out)
  function pgp_mic_from_packet (line 138) | static short pgp_mic_from_packet (unsigned char *p, size_t len)
  function pgp_find_hash (line 161) | static short pgp_find_hash (const char *fname)

FILE: pgppacket.c
  function read_material (line 43) | static int read_material (size_t material, size_t * used, FILE * fp)
  function pgp_release_packet (line 226) | void pgp_release_packet (void)

FILE: pgppacket.h
  type packet_tags (line 28) | enum packet_tags

FILE: pgppubring.c
  function main (line 78) | int main (int argc, char * const argv[])
  function pgp_make_pgp2_fingerprint (line 178) | static void pgp_make_pgp2_fingerprint (unsigned char *buff,
  function pgp_key_t (line 203) | static pgp_key_t pgp_parse_pgp2_key (unsigned char *buff, size_t l)
  function pgp_make_pgp3_fingerprint (line 277) | static void pgp_make_pgp3_fingerprint (unsigned char *buff, size_t l,
  function skip_bignum (line 301) | static void skip_bignum (unsigned char *buff, size_t l, size_t j,
  function pgp_key_t (line 318) | static pgp_key_t pgp_parse_pgp3_key (unsigned char *buff, size_t l)
  function pgp_key_t (line 378) | static pgp_key_t pgp_parse_keyinfo (unsigned char *buff, size_t l)
  function pgp_parse_pgp2_sig (line 395) | static int pgp_parse_pgp2_sig (unsigned char *buff, size_t l,
  function pgp_parse_pgp3_sig (line 436) | static int pgp_parse_pgp3_sig (unsigned char *buff, size_t l,
  function pgp_parse_sig (line 578) | static int pgp_parse_sig (unsigned char *buff, size_t l,
  function pgp_key_t (line 598) | static pgp_key_t pgp_parse_keyblock (FILE * fp)
  function pgpring_string_matches_hint (line 739) | static int pgpring_string_matches_hint (const char *s, const char *hints...
  function pgpring_find_candidates (line 760) | static void pgpring_find_candidates (char *ringfile, const char *hints[]...
  function print_userid (line 836) | static void print_userid (const char *id)
  function print_fingerprint (line 847) | static void print_fingerprint (pgp_key_t p)
  function pgpring_dump_signatures (line 856) | static void pgpring_dump_signatures (pgp_sig_t *sig)
  function gnupg_trustletter (line 871) | static char gnupg_trustletter (int t)
  function pgpring_dump_keyblock (line 882) | static void pgpring_dump_keyblock (pgp_key_t p)

FILE: pop.c
  function fetch_message (line 44) | static int fetch_message (char *line, void *file)
  function pop_read_header (line 63) | static int pop_read_header (POP_DATA *pop_data, HEADER *h)
  function fetch_uidl (line 140) | static int fetch_uidl (char *line, void *data)
  function msg_cache_check (line 179) | static int msg_cache_check (const char *id, body_cache_t *bcache, void *...
  function pop_hcache_namer (line 208) | static int pop_hcache_namer (const char *path, char *dest, size_t destlen)
  function header_cache_t (line 213) | static header_cache_t *pop_hcache_open (POP_DATA *pop_data, const char *...
  function pop_fetch_headers (line 236) | static int pop_fetch_headers (CONTEXT *ctx)
  function pop_open_mailbox (line 400) | int pop_open_mailbox (CONTEXT *ctx)
  function pop_clear_cache (line 470) | static void pop_clear_cache (POP_DATA *pop_data)
  function pop_close_mailbox (line 490) | int pop_close_mailbox (CONTEXT *ctx)
  function pop_fetch_message (line 516) | int pop_fetch_message (MESSAGE* msg, CONTEXT* ctx, int msgno)
  function pop_sync_mailbox (line 661) | int pop_sync_mailbox (CONTEXT *ctx, int *index_hint)
  function pop_check_mailbox (line 739) | int pop_check_mailbox (CONTEXT *ctx, int *index_hint)
  function pop_fetch_mail (line 771) | void pop_fetch_mail (void)

FILE: pop.h
  type pop_auth_res_t (line 45) | typedef enum
  type POP_CACHE (line 53) | typedef struct
  type POP_DATA (line 59) | typedef struct
  type pop_auth_t (line 83) | typedef struct

FILE: pop_auth.c
  function pop_auth_res_t (line 40) | static pop_auth_res_t pop_auth_sasl (POP_DATA *pop_data, const char *met...
  function pop_apop_timestamp (line 176) | void pop_apop_timestamp (POP_DATA *pop_data, char *buf)
  function pop_auth_res_t (line 190) | static pop_auth_res_t pop_auth_apop (POP_DATA *pop_data, const char *met...
  function pop_auth_res_t (line 238) | static pop_auth_res_t pop_auth_user (POP_DATA *pop_data, const char *met...
  function pop_authenticate (line 311) | int pop_authenticate (POP_DATA* pop_data)

FILE: pop_lib.c
  function pop_parse_path (line 39) | int pop_parse_path (const char* path, ACCOUNT* acct)
  function pop_error (line 78) | void pop_error (POP_DATA *pop_data, char *msg)
  function fetch_capa (line 98) | static int fetch_capa (char *line, void *data)
  function fetch_auth (line 126) | static int fetch_auth (char *line, void *data)
  function pop_capabilities (line 152) | static int pop_capabilities (POP_DATA *pop_data, int mode)
  function pop_connect (line 230) | int pop_connect (POP_DATA *pop_data)
  function pop_open_connection (line 264) | int pop_open_connection (POP_DATA *pop_data)
  function pop_logout (line 384) | void pop_logout (CONTEXT *ctx)
  function pop_query_d (line 419) | int pop_query_d (POP_DATA *pop_data, char *buf, size_t buflen, char *msg)
  function pop_fetch_data (line 463) | int pop_fetch_data (POP_DATA *pop_data, char *query, progress_t *progres...
  function check_uidl (line 523) | static int check_uidl (char *line, void *data)
  function pop_reconnect (line 551) | int pop_reconnect (CONTEXT *ctx)

FILE: postpone.c
  type mapping_t (line 40) | struct mapping_t
  function mutt_num_postponed (line 58) | int mutt_num_postponed (int force)
  function mutt_update_num_postponed (line 142) | void mutt_update_num_postponed (void)
  function post_entry (line 147) | static void post_entry (char *s, size_t slen, MUTTMENU *menu, int entry)
  function HEADER (line 155) | static HEADER *select_msg (void)
  function mutt_get_postponed (line 229) | int mutt_get_postponed (CONTEXT *ctx, HEADER *hdr, HEADER **cur, char *f...
  function mutt_parse_crypt_hdr (line 416) | int mutt_parse_crypt_hdr (const char *p, int set_empty_signas, int crypt...
  function mutt_prepare_template (line 537) | int mutt_prepare_template (FILE *fp, CONTEXT *ctx, HEADER *newhdr, HEADE...

FILE: protos.h
  type hdr_format_info (line 33) | struct hdr_format_info
  type hdr_format_info (line 40) | struct hdr_format_info
  type stat (line 124) | struct stat
  type tm (line 126) | struct tm
  type passwd (line 148) | struct passwd
  type tm (line 230) | struct tm
  type stat (line 388) | struct stat
  type pattern_t (line 423) | struct pattern_t
  type tm (line 510) | struct tm

FILE: query.c
  type QUERY (line 32) | typedef struct query
  type ENTRY (line 41) | typedef struct entry
  type mapping_t (line 47) | struct mapping_t
  function ADDRESS (line 59) | static ADDRESS *result_to_addr (QUERY *r)
  function free_query (line 73) | static void free_query (QUERY **query)
  function QUERY (line 92) | static QUERY *run_query (char *s, int quiet)
  function query_search (line 160) | static int query_search (MUTTMENU *m, regex_t *re, int n)
  function query_entry (line 240) | static void query_entry (char *s, size_t slen, MUTTMENU *m, int num)
  function query_tag (line 249) | static int query_tag (MUTTMENU *menu, int n, int m)
  function mutt_query_complete (line 258) | int mutt_query_complete (char *buf, size_t buflen)
  function mutt_query_menu (line 290) | void mutt_query_menu (char *buf, size_t buflen)
  function query_menu (line 310) | static void query_menu (char *buf, size_t buflen, QUERY *results, int re...

FILE: recvattach.c
  type mapping_t (line 52) | struct mapping_t
  function mutt_update_tree (line 61) | void mutt_update_tree (ATTACHPTR **idx, short idxlen)
  function ATTACHPTR (line 101) | ATTACHPTR **mutt_gen_attach_list (BODY *m,
  type stat (line 320) | struct stat
  function attach_entry (line 374) | static void attach_entry (char *b, size_t blen, MUTTMENU *menu, int num)
  function mutt_tag_attach (line 379) | int mutt_tag_attach (MUTTMENU *menu, int n, int m)
  function mutt_is_message_type (line 388) | int mutt_is_message_type (int type, const char *subtype)
  function prepend_curdir (line 397) | static void prepend_curdir (char *dst, size_t dstlen)
  function mutt_query_save_attachment (line 415) | static int mutt_query_save_attachment (FILE *fp, BODY *body, HEADER *hdr...
  function mutt_save_attachment_list (line 499) | void mutt_save_attachment_list (FILE *fp, int tag, BODY *top, HEADER *hd...
  function mutt_query_pipe_attachment (line 581) | static void
  function pipe_attachment (line 618) | static void pipe_attachment (FILE *fp, BODY *b, STATE *state)
  function pipe_attachment_list (line 643) | static void
  function mutt_pipe_attachment_list (line 663) | void mutt_pipe_attachment_list (FILE *fp, int tag, BODY *top, int filter)
  function can_print (line 694) | static int can_print (BODY *top, int tag)
  function print_attachment_list (line 724) | static void print_attachment_list (FILE *fp, int tag, BODY *top, STATE *...
  function mutt_print_attachment_list (line 770) | void mutt_print_attachment_list (FILE *fp, int tag, BODY *top)
  function mutt_update_attach_index (line 794) | static void
  function mutt_attach_display_loop (line 817) | int
  function attach_collapse (line 896) | static void attach_collapse (BODY *b, short collapse, short init, short ...
  function mutt_attach_init (line 913) | void mutt_attach_init (BODY *b)
  function mutt_view_attachments (line 936) | void mutt_view_attachments (HEADER *hdr)

FILE: recvcmd.c
  function check_msg (line 38) | static short check_msg (BODY * b, short err)
  function check_all_msg (line 49) | static short check_all_msg (ATTACHPTR ** idx, short idxlen,
  function check_can_decode (line 73) | static short check_can_decode (ATTACHPTR ** idx, short idxlen,
  function count_tagged (line 88) | static short count_tagged (ATTACHPTR **idx, short idxlen)
  function count_tagged_children (line 104) | static short count_tagged_children (ATTACHPTR ** idx,
  function mutt_attach_bounce (line 125) | void mutt_attach_bounce (FILE * fp, HEADER * hdr,
  function mutt_attach_resend (line 253) | void mutt_attach_resend (FILE * fp, HEADER * hdr, ATTACHPTR ** idx,
  function HEADER (line 280) | static HEADER *find_common_parent (ATTACHPTR ** idx, short idxlen,
  function is_parent (line 311) | static int is_parent (short i, ATTACHPTR **idx, short idxlen, BODY *cur)
  function HEADER (line 324) | static HEADER *find_parent (ATTACHPTR **idx, short idxlen, BODY *cur, sh...
  function include_header (line 346) | static void include_header (int quote, FILE * ifp,
  function BODY (line 375) | static BODY ** copy_problematic_attachments (FILE *fp,
  function attach_forward_bodies (line 401) | static void attach_forward_bodies (FILE * fp, HEADER * hdr,
  function attach_forward_msgs (line 576) | static void attach_forward_msgs (FILE * fp, HEADER * hdr,
  function mutt_attach_forward (line 687) | void mutt_attach_forward (FILE * fp, HEADER * hdr,
  function attach_reply_envelope_defaults (line 724) | static int
  function attach_include_reply (line 799) | static void attach_include_reply (FILE *fp, FILE *tmpfp, HEADER *cur, in...
  function mutt_attach_reply (line 820) | void mutt_attach_reply (FILE * fp, HEADER * hdr,

FILE: regex.c
  function init_syntax_once (line 180) | static void
  type boolean (line 380) | typedef char boolean;
  type re_opcode_t (line 391) | typedef enum
  function extract_number (line 556) | static void
  function extract_number_and_incr (line 585) | static void
  function print_fastmap (line 631) | void
  function print_partial_compiled_pattern (line 663) | void
  function print_compiled_pattern (line 898) | void
  function print_double_string (line 926) | void
  function printchar (line 953) | void
  function reg_syntax_t (line 990) | reg_syntax_t
  type fail_stack_elt_t (line 1103) | typedef union fail_stack_elt fail_stack_elt_t;
  type fail_stack_type (line 1105) | typedef struct
  type fail_stack_elt_t (line 1128) | typedef union fail_stack_elt fail_stack_elt_t;
  type fail_stack_type (line 1130) | typedef struct
  type register_info_type (line 1448) | typedef union
  type regnum_t (line 1660) | typedef unsigned regnum_t;
  type pattern_offset_t (line 1668) | typedef long pattern_offset_t;
  type compile_stack_elt_t (line 1670) | typedef struct
  type compile_stack_type (line 1680) | typedef struct
  function reg_errcode_t (line 1818) | static reg_errcode_t
  function store_op1 (line 2923) | static void
  function store_op2 (line 2936) | static void
  function insert_op1 (line 2951) | static void
  function insert_op2 (line 2970) | static void
  function boolean (line 2991) | static boolean
  function boolean (line 3010) | static boolean
  function boolean (line 3032) | static boolean
  function reg_errcode_t (line 3060) | static reg_errcode_t
  function re_compile_fastmap (line 3119) | int
  function re_set_registers (line 3421) | void
  function re_search (line 3448) | int
  function re_search_2 (line 3481) | int
  function re_match (line 3699) | int
  function re_match_2 (line 3742) | int
  type re_pattern_buffer (line 3765) | struct re_pattern_buffer
  type re_registers (line 3769) | struct re_registers
  type syntaxcode (line 5048) | enum syntaxcode
  type syntaxcode (line 5065) | enum syntaxcode
  type re_pattern_buffer (line 5431) | struct re_pattern_buffer
  type re_pattern_buffer (line 5460) | struct re_pattern_buffer
  function weak_function (line 5467) | weak_function
  function weak_function (line 5511) | weak_function
  function regcomp (line 5561) | int
  function regexec (line 5639) | int
  function regerror (line 5704) | size_t
  function regfree (line 5744) | void

FILE: remailer.c
  type coord (line 48) | struct coord
  type coord (line 62) | struct coord
  type coord (line 63) | struct coord
  type coord (line 65) | struct coord
  function mix_get_caps (line 67) | static int mix_get_caps (const char *capstr)
  function mix_add_entry (line 105) | static void mix_add_entry (REMAILER ***type2_list, REMAILER *entry,
  function REMAILER (line 118) | static REMAILER *mix_new_remailer (void)
  function mix_free_remailer (line 123) | static void mix_free_remailer (REMAILER **r)
  function REMAILER (line 134) | static REMAILER **mix_type2_list (size_t *l)
  function mix_free_type2_list (line 211) | static void mix_free_type2_list (REMAILER ***ttlp)
  function mix_screen_coordinates (line 228) | static void mix_screen_coordinates (REMAILER **type2_list,
  function mix_redraw_ce (line 273) | static void mix_redraw_ce (REMAILER **type2_list,
  function mix_redraw_chain (line 298) | static void mix_redraw_chain (REMAILER **type2_list,
  function mix_redraw_head (line 315) | static void mix_redraw_head (MIXCHAIN *chain)
  function mix_entry (line 438) | static void mix_entry (char *b, size_t blen, MUTTMENU *menu, int num)
  function mix_chain_add (line 445) | static int mix_chain_add (MIXCHAIN *chain, const char *s,
  type mapping_t (line 476) | struct mapping_t
  function mix_make_chain (line 487) | void mix_make_chain (LIST **chainp, int *redraw)
  function mix_check_message (line 699) | int mix_check_message (HEADER *msg)
  function mix_send_message (line 744) | int mix_send_message (LIST *chain, const char *tempfile)

FILE: remailer.h
  type type2 (line 37) | struct type2
  type REMAILER (line 46) | typedef struct type2 REMAILER;
  type mixchain (line 49) | struct mixchain
  type MIXCHAIN (line 55) | typedef struct mixchain MIXCHAIN;

FILE: resize.c
  function mutt_resize_screen (line 40) | void mutt_resize_screen (void)

FILE: rfc1524.c
  function rfc1524_expand_command (line 58) | int rfc1524_expand_command (BODY *a, char *filename, char *_type,
  function get_field_text (line 148) | static int get_field_text (char *field, char **entry,
  function rfc1524_mailcap_parse (line 170) | static int rfc1524_mailcap_parse (BODY *a,
  function rfc1524_entry (line 356) | rfc1524_entry *rfc1524_new_entry(void)
  function rfc1524_free_entry (line 361) | void rfc1524_free_entry(rfc1524_entry **entry)
  function rfc1524_mailcap_lookup (line 381) | int rfc1524_mailcap_lookup (BODY *a, char *type, rfc1524_entry *entry, i...
  function strnfcpy (line 441) | static void strnfcpy(char *d, char *s, size_t siz, size_t len)
  function rfc1524_expand_filename (line 448) | int rfc1524_expand_filename (char *nametemplate,
  function mutt_rename_file (line 573) | int mutt_rename_file (char *oldfile, char *newfile)

FILE: rfc1524.h
  type rfc1524_entry (line 22) | typedef struct rfc1524_mailcap_entry {

FILE: rfc2047.c
  function convert_string (line 56) | static size_t convert_string (ICONV_CONST char *f, size_t flen,
  function convert_nonmime_string (line 90) | int convert_nonmime_string (char **ps)
  function b_encoder (line 193) | static size_t b_encoder (char *s, ICONV_CONST char *d, size_t dlen,
  function q_encoder (line 234) | static size_t q_encoder (char *s, ICONV_CONST char *d, size_t dlen,
  function try_block (line 270) | static size_t try_block (ICONV_CONST char *d, size_t dlen,
  function encode_block (line 342) | static size_t encode_block (char *s, char *d, size_t dlen,
  function choose_block (line 373) | static size_t choose_block (char *d, size_t dlen, int col,
  function rfc2047_encode (line 406) | static int rfc2047_encode (ICONV_CONST char *d, size_t dlen, int col,
  function _rfc2047_encode_string (line 587) | void _rfc2047_encode_string (char **pd, int encode_specials, int col)
  function rfc2047_encode_adrlist (line 608) | void rfc2047_encode_adrlist (ADDRESS *addr, const char *tag)
  function rfc2047_decode_word (line 627) | static int rfc2047_decode_word (char *d, const char *s, size_t len)
  function lwslen (line 762) | static size_t lwslen (const char *s, size_t n)
  function lwsrlen (line 782) | static size_t lwsrlen (const char *s, size_t n)
  function rfc2047_decode (line 805) | void rfc2047_decode (char **pd)
  function rfc2047_decode_adrlist (line 908) | void rfc2047_decode_adrlist (ADDRESS *a)

FILE: rfc2231.c
  type rfc2231_parameter (line 46) | struct rfc2231_parameter
  type rfc2231_parameter (line 57) | struct rfc2231_parameter
  type rfc2231_parameter (line 59) | struct rfc2231_parameter
  type rfc2231_parameter (line 60) | struct rfc2231_parameter
  type rfc2231_parameter (line 61) | struct rfc2231_parameter
  type rfc2231_parameter (line 61) | struct rfc2231_parameter
  function purge_empty_parameters (line 63) | static void purge_empty_parameters (PARAMETER **headp)
  function rfc2231_decode_parameters (line 82) | void rfc2231_decode_parameters (PARAMETER **headp)
  type rfc2231_parameter (line 178) | struct rfc2231_parameter
  type rfc2231_parameter (line 180) | struct rfc2231_parameter
  function rfc2231_free_parameter (line 183) | static void rfc2231_free_parameter (struct rfc2231_parameter **p)
  function rfc2231_decode_one (line 212) | static void rfc2231_decode_one (char *dest, char *src)
  function rfc2231_list_insert (line 238) | static void rfc2231_list_insert (struct rfc2231_parameter **list,
  function rfc2231_join_continuations (line 261) | static void rfc2231_join_continuations (PARAMETER **head,
  function rfc2231_encode_string (line 314) | int rfc2231_encode_string (char **pd)

FILE: rfc3676.c
  type flowed_state_t (line 43) | typedef struct flowed_state
  function get_quote_level (line 50) | static int get_quote_level (const char *line)
  function space_quotes (line 69) | static int space_quotes (STATE *s)
  function add_quote_suffix (line 85) | static int add_quote_suffix (STATE *s, int ql)
  function print_indent (line 103) | static size_t print_indent (int ql, STATE *s, int add_suffix)
  function flush_par (line 136) | static void flush_par (STATE *s, flowed_state_t *fst)
  function quote_width (line 149) | static int quote_width (STATE *s, int ql)
  function print_flowed_line (line 172) | static void print_flowed_line (char *line, STATE *s, int ql,
  function print_fixed_line (line 244) | static void print_fixed_line (const char *line, STATE *s, int ql,
  function rfc3676_handler (line 256) | int rfc3676_handler (BODY * a, STATE * s)
  function rfc3676_space_stuff (line 338) | void rfc3676_space_stuff (HEADER* hdr)

FILE: rfc822.c
  function rfc822_dequote_comment (line 60) | void rfc822_dequote_comment (char *s)
  function free_address (line 82) | static void free_address (ADDRESS *a)
  function rfc822_remove_from_adrlist (line 92) | int rfc822_remove_from_adrlist (ADDRESS **a, const char *mailbox)
  function rfc822_free_address (line 122) | void rfc822_free_address (ADDRESS **p)
  function add_addrspec (line 354) | static void
  function ADDRESS (line 373) | ADDRESS *rfc822_parse_adrlist (ADDRESS *top, const char *s)
  function rfc822_qualify (line 559) | void rfc822_qualify (ADDRESS *addr, const char *host)
  function rfc822_cat (line 573) | void
  function rfc822_write_address_single (line 600) | void rfc822_write_address_single (char *buf, size_t buflen, ADDRESS *addr,
  function rfc822_write_address (line 738) | int rfc822_write_address (char *buf, size_t buflen, ADDRESS *addr, int d...
  function ADDRESS (line 794) | ADDRESS *rfc822_cpy_adr_real (ADDRESS *addr)
  function ADDRESS (line 810) | ADDRESS *rfc822_cpy_adr (ADDRESS *addr, int prune)
  function ADDRESS (line 832) | ADDRESS *rfc822_append (ADDRESS **a, ADDRESS *b, int prune)
  function rfc822_valid_msgid (line 850) | int rfc822_valid_msgid (const char *msgid)
  function safe_free (line 895) | int safe_free (void **p)	/* __SAFE_FREE_CHECKED__ */
  function main (line 901) | int main (int argc, char **argv)

FILE: rfc822.h
  type ADDRESS (line 36) | typedef struct address_t

FILE: safe_asprintf.c
  function safe_asprintf (line 28) | int safe_asprintf (char **strp, const char *fmt, ...)
  function safe_asprintf (line 59) | int safe_asprintf (char **strp, const char *fmt, ...)

FILE: score.c
  type SCORE (line 28) | typedef struct score_t
  function mutt_check_rescore (line 39) | void mutt_check_rescore (CONTEXT *ctx)
  function mutt_parse_score (line 66) | int mutt_parse_score (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER...
  function mutt_score_message (line 129) | void mutt_score_message (CONTEXT *ctx, HEADER *hdr, int upd_ctx)
  function mutt_parse_unscore (line 157) | int mutt_parse_unscore (BUFFER *buf, BUFFER *s, unsigned long data, BUFF...

FILE: send.c
  function append_signature (line 55) | static void append_signature (FILE *f)
  function mutt_addrcmp (line 72) | static int mutt_addrcmp (ADDRESS *a, ADDRESS *b)
  function mutt_addrsrc (line 82) | static int mutt_addrsrc (ADDRESS *a, ADDRESS *lst)
  function ADDRESS (line 93) | ADDRESS *mutt_remove_xrefs (ADDRESS *a, ADDRESS *b)
  function ADDRESS (line 134) | static ADDRESS *remove_user (ADDRESS *a, int leave_only)
  function ADDRESS (line 169) | static ADDRESS *find_mailing_lists (ADDRESS *t, ADDRESS *c)
  function edit_address (line 192) | static int edit_address (ADDRESS **a, /* const */ char *field)
  function edit_envelope (line 219) | static int edit_envelope (ENVELOPE *en)
  function process_user_recips (line 264) | static void process_user_recips (ENVELOPE *env)
  function process_user_header (line 279) | static void process_user_header (ENVELOPE *env)
  function LIST (line 329) | LIST *mutt_copy_list (LIST *p)
  function mutt_forward_intro (line 349) | void mutt_forward_intro (FILE *fp, HEADER *cur)
  function mutt_forward_trailer (line 360) | void mutt_forward_trailer (FILE *fp)
  function include_forward (line 366) | static int include_forward (CONTEXT *ctx, HEADER *cur, FILE *out)
  function mutt_make_attribution (line 402) | void mutt_make_attribution (CONTEXT *ctx, HEADER *cur, FILE *out)
  function mutt_make_post_indent (line 413) | void mutt_make_post_indent (CONTEXT *ctx, HEADER *cur, FILE *out)
  function include_reply (line 424) | static int include_reply (CONTEXT *ctx, HEADER *cur, FILE *out)
  function default_to (line 455) | static int default_to (ADDRESS **to, ENVELOPE *env, int flags, int hmfupto)
  function mutt_fetch_recips (line 532) | int mutt_fetch_recips (ENVELOPE *out, ENVELOPE *in, int flags)
  function LIST (line 573) | LIST *mutt_make_references(ENVELOPE *e)
  function mutt_fix_reply_recipients (line 593) | void mutt_fix_reply_recipients (ENVELOPE *env)
  function mutt_make_forward_subject (line 616) | void mutt_make_forward_subject (ENVELOPE *env, CONTEXT *ctx, HEADER *cur)
  function mutt_make_misc_reply_headers (line 625) | void mutt_make_misc_reply_headers (ENVELOPE *env, CONTEXT *ctx,
  function mutt_add_to_reference_headers (line 641) | void mutt_add_to_reference_headers (ENVELOPE *env, ENVELOPE *curenv, LIS...
  function mutt_make_reference_headers (line 667) | static void
  function envelope_defaults (line 696) | static int
  function generate_body (line 756) | static int
  function mutt_set_followup_to (line 863) | void mutt_set_followup_to (ENVELOPE *e)
  function ADDRESS (line 925) | static ADDRESS *set_reverse_name (ENVELOPE *env)
  function ADDRESS (line 956) | ADDRESS *mutt_default_from (void)
  function send_message (line 983) | static int send_message (HEADER *msg)
  function mutt_encode_descriptions (line 1048) | void mutt_encode_descriptions (BODY *b, short recurse)
  function decode_descriptions (line 1064) | static void decode_descriptions (BODY *b)
  function fix_end_of_file (line 1079) | static void fix_end_of_file (const char *data)
  function mutt_resend_message (line 1092) | int mutt_resend_message (FILE *fp, CONTEXT *ctx, HEADER *cur)
  function is_reply (line 1123) | static int is_reply (HEADER *reply, HEADER *orig)
  function has_recips (line 1129) | static int has_recips (ADDRESS *a)
  function ci_send_message (line 1147) | int

FILE: sendlib.c
  function encode_quoted (line 78) | static void encode_quoted (FGETCONV * fc, FILE *fout, int istext)
  function b64_flush (line 214) | static void b64_flush(FILE *fout)
  function b64_putc (line 256) | static void b64_putc(char c, FILE *fout)
  function encode_base64 (line 265) | static void encode_base64 (FGETCONV * fc, FILE *fout, int istext)
  function encode_8bit (line 282) | static void encode_8bit (FGETCONV *fc, FILE *fout, int istext)
  function mutt_write_mime_header (line 291) | int mutt_write_mime_header (BODY *a, FILE *f)
  function mutt_write_mime_body (line 409) | int mutt_write_mime_body (BODY *a, FILE *f)
  function mutt_generate_boundary (line 481) | void mutt_generate_boundary (PARAMETER **parm)
  type CONTENT_STATE (line 490) | typedef struct
  function update_content_info (line 501) | static void update_content_info (CONTENT *info, CONTENT_STATE *s, char *...
  function convert_file_to (line 627) | static size_t convert_file_to (FILE *file, const char *fromcode,
  function convert_file_from_to (line 772) | static size_t convert_file_from_to (FILE *file,
  function CONTENT (line 847) | CONTENT *mutt_get_content_info (const char *fname, BODY *b)
  function mutt_lookup_mime_type (line 927) | int mutt_lookup_mime_type (BODY *att, const char *path)
  function mutt_message_to_7bit (line 1030) | void mutt_message_to_7bit (BODY *a, FILE *fp)
  function transform_to_7bit (line 1102) | static void transform_to_7bit (BODY *a, FILE *fpin)
  function mutt_stamp_attachment (line 1203) | void mutt_stamp_attachment(BODY *a)
  function mutt_update_encoding (line 1230) | void mutt_update_encoding (BODY *a)
  function BODY (line 1253) | BODY *mutt_make_message_attach (CONTEXT *ctx, HEADER *hdr, int attach_msg)
  function BODY (line 1343) | BODY *mutt_make_file_attach (const char *path)
  function get_toplevel_encoding (line 1400) | static int get_toplevel_encoding (BODY *a)
  function mutt_check_boundary (line 1416) | static int mutt_check_boundary (const char* boundary, BODY *b)
  function BODY (line 1432) | BODY *mutt_make_multipart (BODY *b)
  function BODY (line 1456) | BODY *mutt_remove_multipart (BODY *b)
  type tm (line 1473) | struct tm
  function mutt_write_address_list (line 1487) | void mutt_write_address_list (ADDRESS *adr, FILE *fp, int linelen, int d...
  function mutt_write_references (line 1534) | void mutt_write_references (LIST *r, FILE *f, int trim)
  function my_width (line 1569) | static int my_width (const char *str, int col, int flags)
  function print_val (line 1603) | static int print_val (FILE *fp, const char *pfx, const char *value,
  function fold_one_header (line 1638) | static int fold_one_header (FILE *fp, const char *tag, const char *value,
  function write_one_header (line 1759) | static int write_one_header (FILE *fp, int pfxw, int max, int wraplen,
  function mutt_write_one_header (line 1832) | int mutt_write_one_header (FILE *fp, const char *tag, const char *value,
  function mutt_write_rfc822_header (line 1930) | int mutt_write_rfc822_header (FILE *fp, ENVELOPE *env, BODY *attach,
  function encode_headers (line 2070) | static void encode_headers (LIST *h)
  type tm (line 2126) | struct tm
  function alarm_handler (line 2143) | static void alarm_handler (int sig)
  function send_msg (line 2156) | static int
  function mutt_invoke_sendmail (line 2337) | int
  function mutt_prepare_envelope (line 2450) | void mutt_prepare_envelope (ENVELOPE *env, int final)
  function mutt_unprepare_envelope (line 2495) | void mutt_unprepare_envelope (ENVELOPE *env)
  function _mutt_bounce_message (line 2514) | static int _mutt_bounce_message (FILE *fp, HEADER *h, ADDRESS *to, const...
  function mutt_bounce_message (line 2578) | int mutt_bounce_message (FILE *fp, HEADER *h, ADDRESS *to)
  function ADDRESS (line 2630) | ADDRESS *mutt_remove_duplicates (ADDRESS *addr)
  function set_noconv_flags (line 2671) | static void set_noconv_flags (BODY *b, short flag)
  function mutt_write_fcc (line 2687) | int mutt_write_fcc (const char *path, HEADER *hdr, const char *msgid,

FILE: setenv.c
  function setenv (line 15) | int

FILE: sha1.c
  function SHA1Transform (line 52) | void SHA1Transform(uint32_t state[5], const unsigned char buffer[64])
  function SHA1Init (line 113) | void SHA1Init(SHA1_CTX* context)
  function SHA1Update (line 127) | void SHA1Update(SHA1_CTX* context, const unsigned char* data, uint32_t len)
  function SHA1Final (line 152) | void SHA1Final(unsigned char digest[20], SHA1_CTX* context)

FILE: sha1.h
  type SHA1_CTX (line 14) | typedef struct {

FILE: sidebar.c
  type sidebar_entry (line 50) | struct sidebar_entry {
  function BUFFY (line 62) | static BUFFY *
  function BUFFY (line 98) | static BUFFY *
  function BUFFY (line 131) | static BUFFY *
  type sidebar_entry (line 179) | struct sidebar_entry
  type sidebar_entry (line 179) | struct sidebar_entry
  function make_sidebar_entry (line 292) | static void
  function cb_qsort_buffy (line 339) | static int
  function BUFFY (line 392) | static BUFFY *
  function update_buffy_visibility (line 423) | static void
  function sort_buffy_array (line 471) | static void
  function prepare_sidebar (line 513) | static int
  function visible (line 591) | static short
  function draw_divider (line 641) | static int
  function fill_empty_space (line 675) | static void
  function draw_sidebar (line 711) | static void
  function sb_init (line 823) | void
  function sb_draw (line 843) | void
  function sb_should_refresh (line 888) | int
  function sb_change_mailbox (line 917) | void
  function sb_set_buffystats (line 983) | void
  function BUFFY (line 1027) | BUFFY *
  function sb_set_update_time (line 1057) | void
  function sb_notify_mailbox (line 1074) | void
  function sb_toggle_virtual (line 1116) | void

FILE: signal.c
  type sigaction (line 33) | struct sigaction
  type sigaction (line 34) | struct sigaction
  function exit_handler (line 38) | static void exit_handler (int sig)
  function chld_handler (line 58) | static void chld_handler (int sig)
  function sighandler (line 63) | static void sighandler (int sig)
  function mutt_intr_hook (line 104) | int mutt_intr_hook (void)
  function mutt_signal_init (line 110) | void mutt_signal_init (void)
  function mutt_block_signals (line 170) | void mutt_block_signals (void)
  function mutt_unblock_signals (line 188) | void mutt_unblock_signals (void)
  function mutt_block_signals_system (line 197) | void mutt_block_signals_system (void)
  function mutt_unblock_signals_system (line 217) | void mutt_unblock_signals_system (int catch)
  function mutt_allow_interrupt (line 242) | void mutt_allow_interrupt (int disposition)

FILE: smime.c
  type smime_command_context (line 56) | struct smime_command_context {
  function smime_free_key (line 76) | void smime_free_key (smime_key_t **keylist)
  function smime_key_t (line 96) | static smime_key_t *smime_copy_key (smime_key_t *key)
  function smime_void_passphrase (line 125) | void smime_void_passphrase (void)
  function smime_valid_passphrase (line 131) | int smime_valid_passphrase (void)
  type smime_command_context (line 171) | struct smime_command_context
  type smime_command_context (line 171) | struct smime_command_context
  type stat (line 182) | struct stat
  function mutt_smime_command (line 298) | static void mutt_smime_command (char *d, size_t dlen,
  function pid_t (line 309) | static pid_t smime_invoke (FILE **smimein, FILE **smimeout, FILE **smime...
  function smime_entry (line 372) | static void smime_entry (char *s, size_t l, MUTTMENU * menu, int num)
  function smime_key_t (line 404) | static smime_key_t *smime_select_key (smime_key_t *keys, char *query)
  function smime_key_t (line 502) | static smime_key_t *smime_parse_key(char *buf)
  function smime_key_t (line 583) | static smime_key_t *smime_get_candidates(char *search, short public)
  function smime_key_t (line 623) | static smime_key_t *smime_get_key_by_hash(char *hash, short public)
  function smime_key_t (line 643) | static smime_key_t *smime_get_key_by_addr(char *mailbox, short abilities...
  function smime_key_t (line 715) | static smime_key_t *smime_get_key_by_str(char *str, short abilities, sho...
  function smime_key_t (line 756) | smime_key_t *smime_ask_for_key(char *prompt, short abilities, short public)
  function _smime_getkeys (line 785) | void _smime_getkeys (char *mailbox)
  function smime_getkeys (line 842) | void smime_getkeys (ENVELOPE *env)
  function smime_handle_cert_email (line 929) | static int smime_handle_cert_email (char *certificate, char *mailbox,
  function smime_invoke_import (line 1204) | void smime_invoke_import (char *infile, char *mailbox)
  function smime_verify_sender (line 1270) | int smime_verify_sender(HEADER *h)
  function pid_t (line 1344) | static
  function pid_t (line 1356) | static
  function BODY (line 1370) | BODY *smime_build_smime_entity (BODY *a, char *certlist)
  function BODY (line 1518) | BODY *smime_sign_message (BODY *a )
  function pid_t (line 1676) | static
  function pid_t (line 1687) | static
  function smime_verify_one (line 1699) | int smime_verify_one (BODY *sigbdy, STATE *s, const char *tempfile)
  function BODY (line 1816) | static BODY *smime_handle_entity (BODY *m, STATE *s, FILE *outFile)
  function smime_decrypt_mime (line 2017) | int smime_decrypt_mime (FILE *fpin, FILE **fpout, BODY *b, BODY **cur)
  function smime_application_smime_handler (line 2086) | int smime_application_smime_handler (BODY *m, STATE *s)
  function smime_send_menu (line 2091) | int smime_send_menu (HEADER *msg, int *redraw)

FILE: smime.h
  type smime_key_t (line 25) | typedef struct smime_key {

FILE: smtp.c
  function smtp_code (line 81) | static int smtp_code (char *buf, size_t len, int *n)
  function smtp_get_resp (line 101) | static int
  function smtp_rcpt_to (line 141) | static int
  function smtp_data (line 170) | static int
  function address_uses_unicode (line 245) | static int address_uses_unicode(const char *a)
  function addresses_use_unicode (line 264) | static int addresses_use_unicode(const ADDRESS* a)
  function mutt_smtp_send (line 276) | int
  function smtp_fill_account (line 365) | static int smtp_fill_account (ACCOUNT* account)
  function smtp_helo (line 414) | static int smtp_helo (CONNECTION* conn)
  function smtp_open (line 445) | static int smtp_open (CONNECTION* conn)
  function smtp_auth (line 511) | static int smtp_auth (CONNECTION* conn)
  function smtp_auth_sasl (line 564) | static int smtp_auth_sasl (CONNECTION* conn, const char* mechlist)

FILE: snprintf.c
  function dopr (line 132) | static int dopr (char *buffer, size_t maxlen, const char *format, va_lis...
  function fmtstr (line 404) | static void fmtstr (char *buffer, size_t *currlen, size_t maxlen,
  function fmtint (line 443) | static void fmtint (char *buffer, size_t *currlen, size_t maxlen,
  function abs_val (line 533) | static long double abs_val (long double value)
  function pow10 (line 543) | static long double pow10 (int exp)
  function round (line 556) | static long round (long double value)
  function fmtfp (line 568) | static void fmtfp (char *buffer, size_t *currlen, size_t maxlen,
  function dopr_outch (line 704) | static void dopr_outch (char *buffer, size_t *currlen, size_t maxlen, ch...
  function vsnprintf (line 713) | int vsnprintf (char *str, size_t count, const char *fmt, va_list args)
  function main (line 749) | int main (void)

FILE: sort.c
  function compare_score (line 45) | static int compare_score (const void *a, const void *b)
  function compare_size (line 54) | static int compare_size (const void *a, const void *b)
  function compare_date_sent (line 63) | static int compare_date_sent (const void *a, const void *b)
  function compare_subject (line 72) | static int compare_subject (const void *a, const void *b)
  function compare_to (line 110) | static int compare_to (const void *a, const void *b)
  function compare_from (line 125) | static int compare_from (const void *a, const void *b)
  function compare_date_received (line 140) | static int compare_date_received (const void *a, const void *b)
  function compare_order (line 149) | static int compare_order (const void *a, const void *b)
  function compare_spam (line 158) | static int compare_spam (const void *a, const void *b)
  function sort_t (line 213) | sort_t *mutt_get_sort_func (int method)
  function mutt_sort_headers (line 241) | void mutt_sort_headers (CONTEXT *ctx, int init)

FILE: sort.h
  type mapping_t (line 65) | struct mapping_t

FILE: status.c
  function _menu_status_line (line 313) | static void _menu_status_line (char *buf, size_t buflen, size_t col, MUT...
  function menu_status_line (line 318) | void menu_status_line (char *buf, size_t buflen, MUTTMENU *menu, const c...

FILE: strcasecmp.c
  function strncasecmp (line 6) | int strncasecmp (char *s1, char *s2, size_t n)
  function strcasecmp (line 26) | int strcasecmp (char *s1, char *s2)

FILE: strnlen.c
  function strnlen (line 11) | size_t strnlen(const char *s, size_t maxlen)

FILE: system.c
  function _mutt_system (line 35) | int _mutt_system (const char *cmd, int flags)

FILE: thread.c
  function is_descendant (line 32) | static int is_descendant (THREAD *a, THREAD *b)
  function need_display_subject (line 44) | static int need_display_subject (CONTEXT *ctx, HEADER *hdr)
  function linearize_tree (line 88) | static void linearize_tree (CONTEXT *ctx)
  function calculate_visibility (line 126) | static void calculate_visibility (CONTEXT *ctx, int *max_depth)
  function mutt_draw_tree (line 234) | void mutt_draw_tree (CONTEXT *ctx)
  function LIST (line 350) | static LIST *make_subject_list (THREAD *cur, time_t *dateptr)
  function THREAD (line 415) | static THREAD *find_subject (CONTEXT *ctx, THREAD *cur)
  function unlink_message (line 458) | static void unlink_message (THREAD **old, THREAD *cur)
  function insert_message (line 479) | static void insert_message (THREAD **new, THREAD *newparent, THREAD *cur)
  function pseudo_threads (line 491) | static void pseudo_threads (CONTEXT *ctx)
  function mutt_clear_threads (line 552) | void mutt_clear_threads (CONTEXT *ctx)
  function compare_threads (line 571) | static int compare_threads (const void *a, const void *b)
  function THREAD (line 588) | THREAD *mutt_sort_subthreads (THREAD *thread, int init)
  function check_subjects (line 718) | static void check_subjects (CONTEXT *ctx, int init)
  function mutt_sort_threads (line 750) | void mutt_sort_threads (CONTEXT *ctx, int init)
  function HEADER (line 976) | static HEADER *find_virtual (THREAD *cur, int reverse)
  function _mutt_aside_thread (line 1021) | int _mutt_aside_thread (HEADER *hdr, short dir, short subthreads)
  function mutt_parent_message (line 1077) | int mutt_parent_message (CONTEXT *ctx, HEADER *hdr)
  function mutt_set_virtual (line 1105) | void mutt_set_virtual (CONTEXT *ctx)
  function _mutt_traverse_thread (line 1127) | int _mutt_traverse_thread (CONTEXT *ctx, HEADER *cur, int flag)
  function mutt_messages_in_thread (line 1286) | int mutt_messages_in_thread (CONTEXT *ctx, HEADER *hdr, int flag)
  function HASH (line 1318) | HASH *mutt_make_id_hash (CONTEXT *ctx)
  function HASH (line 1336) | HASH *mutt_make_subj_hash (CONTEXT *ctx)
  function clean_references (line 1354) | static void clean_references (THREAD *brk, THREAD *cur)
  function mutt_break_thread (line 1391) | void mutt_break_thread (HEADER *hdr)
  function link_threads (line 1400) | static int link_threads (HEADER *parent, HEADER *child, CONTEXT *ctx)
  function mutt_link_threads (line 1416) | int mutt_link_threads (HEADER *cur, HEADER *last, CONTEXT *ctx)

FILE: txt2c.c
  function txt2c (line 5) | void
  function main (line 27) | int

FILE: url.c
  type mapping_t (line 35) | struct mapping_t
  function url_pct_decode (line 51) | int url_pct_decode (char *s)
  function url_scheme_t (line 79) | url_scheme_t url_check_scheme (const char *s)
  function url_parse_file (line 100) | int url_parse_file (char *d, const char *src, size_t dl)
  function ciss_parse_userhost (line 115) | static int ciss_parse_userhost (ciss_url_t *ciss, char *src)
  function url_parse_ciss (line 171) | int url_parse_ciss (ciss_url_t *ciss, char *src)
  function url_pct_encode (line 183) | static void url_pct_encode (char *dst, size_t l, const char *src)
  function url_ciss_tostring (line 205) | int url_ciss_tostring (ciss_url_t* ciss, char* dest, size_t len, int flags)
  function url_parse_mailto (line 249) | int url_parse_mailto (ENVELOPE *e, char **body, const char *src)

FILE: url.h
  type url_scheme_t (line 4) | typedef enum url_scheme
  type ciss_url_t (line 24) | typedef struct ciss_url

FILE: utf8.c
  function mutt_wctoutf8 (line 14) | int mutt_wctoutf8 (char *s, unsigned int c, size_t buflen)

FILE: wcscasecmp.c
  function wcscasecmp (line 26) | int wcscasecmp (const wchar_t *a, const wchar_t *b)

FILE: wcwidth.c
  function wcwidth_ucs (line 66) | int wcwidth_ucs(wchar_t ucs)
  function wcswidth (line 173) | int wcswidth(const wchar_t *pwcs, size_t n)
Condensed preview — 410 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (9,575K chars).
[
  {
    "path": ".gitignore",
    "chars": 1060,
    "preview": "*~\n*.a\naclocal.m4\nautom4te.cache\nbuild/\ncompile\nconfig.guess\nconfig.h\nconfig.h.in\nconfig.log\nconfig.status\nconfig.sub\nco"
  },
  {
    "path": ".hgignore",
    "chars": 916,
    "preview": "# autoconf products\n^aclocal\\.m4$\n^autom4te\\.cache\n^compile$\n^(contrib/|doc/|imap/|m4/|po/)?Makefile\\.in$\n^config\\.h(\\.i"
  },
  {
    "path": ".hgsigs",
    "chars": 3400,
    "preview": "5ecc29447bbb79c9a5d665021746448cd7655e0d 0 iD8DBQBGFrOsIigsijWFMDIRAhJiAJ9q6xMm7T/y1Brh2bXGm6Rza4mIrgCg2fE+dUddKGoHSrnIF"
  },
  {
    "path": ".hgtags",
    "chars": 5884,
    "preview": "0063f043f11aba7b89d63808e6bc67bbb0051c4c mutt-1-1-4-rel\n0366855cb4ce645e8547eb371a635a84e2c453d7 mutt-1-3-25-rel\n08a17d4"
  },
  {
    "path": "ABOUT-NLS",
    "chars": 18852,
    "preview": "Notes on the Free Translation Project\n*************************************\n\n   Free software is going international!  T"
  },
  {
    "path": "BEWARE",
    "chars": 650,
    "preview": "MUTT HACKERS BEWARE\n\nA word of warning about string comparisons: Since mutt may run in a\nhuge variety of locales, case-i"
  },
  {
    "path": "COPYRIGHT",
    "chars": 1771,
    "preview": "The following copyright notices apply to most of the program.  Some\nmodules are under different licenses, or in the publ"
  },
  {
    "path": "ChangeLog",
    "chars": 519449,
    "preview": "2016-04-01 09:38 -0700  Kevin McCarthy  <kevin@8t8.us>  (503bd3a3c818)\n\n\t* Makefile.am: Fix hcversion.h generation error"
  },
  {
    "path": "GPL",
    "chars": 18013,
    "preview": "\t\t    GNU GENERAL PUBLIC LICENSE\n\t\t       Version 2, June 1991\n\n Copyright (C) 1989, 1991 Free Software Foundation, Inc."
  },
  {
    "path": "INSTALL",
    "chars": 10682,
    "preview": "Supported platforms\n===================\n\nMutt has been reported to compile and run under the following Unix operating\nsy"
  },
  {
    "path": "Makefile.am",
    "chars": 7480,
    "preview": "## Process this file with automake to produce Makefile.in\n## Use aclocal -I m4; automake --foreign\ninclude $(top_srcdir)"
  },
  {
    "path": "NEWS",
    "chars": 6366,
    "preview": "\t\t   Visible changes since Mutt 1.2\n\t\t   ==============================\n\n\nFolder formats and folder access\n-------------"
  },
  {
    "path": "OPS",
    "chars": 9421,
    "preview": "OP_NULL \"null operation\"\nOP_END_COND \"end of conditional execution (noop)\"\nOP_ATTACH_VIEW_MAILCAP \"force viewing of atta"
  },
  {
    "path": "OPS.CRYPT",
    "chars": 189,
    "preview": "OP_DECRYPT_SAVE \"make decrypted copy and delete\"\nOP_DECRYPT_COPY \"make decrypted copy\"\nOP_FORGET_PASSPHRASE \"wipe passph"
  },
  {
    "path": "OPS.MIX",
    "chars": 374,
    "preview": "OP_MIX_USE \"Accept the chain constructed\"\nOP_MIX_APPEND \"Append a remailer to the chain\"\nOP_MIX_INSERT \"Insert a remaile"
  },
  {
    "path": "OPS.NOTMUCH",
    "chars": 303,
    "preview": "OP_MAIN_CHANGE_VFOLDER \"open a different virtual folder\"\nOP_MAIN_VFOLDER_FROM_QUERY \"generate virtual folder from query\""
  },
  {
    "path": "OPS.PGP",
    "chars": 244,
    "preview": "OP_COMPOSE_ATTACH_KEY \"attach a PGP public key\"\nOP_COMPOSE_PGP_MENU \"show PGP options\"\nOP_MAIL_KEY \"mail a PGP public ke"
  },
  {
    "path": "OPS.SIDEBAR",
    "chars": 535,
    "preview": "OP_SIDEBAR_NEXT \"Move the highlight to next mailbox\"\nOP_SIDEBAR_NEXT_NEW \"Move the highlight to next mailbox with new ma"
  },
  {
    "path": "OPS.SMIME",
    "chars": 44,
    "preview": "OP_COMPOSE_SMIME_MENU \"show S/MIME options\"\n"
  },
  {
    "path": "PATCHES",
    "chars": 227,
    "preview": "patch-quasi-delete-neo-UNKNOWN\npatch-progress-neo-UNKNOWN\npatch-status-color-neo-UNKNOWN\npatch-index-color-neo-UNKNOWN\np"
  },
  {
    "path": "README",
    "chars": 984,
    "preview": "README for mutt-1.5\n===================\n\nWhen updating mutt from an earlier release or from Mercurial, please\nmake sure "
  },
  {
    "path": "README.SECURITY",
    "chars": 2471,
    "preview": "$Id$\n\nRecently, there have been reports on security problems induced by\nthe interpretation of shell meta-characters embe"
  },
  {
    "path": "README.SSL",
    "chars": 5206,
    "preview": "IMAP/SSL in mutt \n================\n\nCompilation\n-----------\nIf you want to have SSL support in mutt, you need to install"
  },
  {
    "path": "README.cond-date",
    "chars": 4505,
    "preview": "Conditional Dates Patch\n=======================\n\n    Use rules to choose date format\n\nPatch\n-----\n\n    To check if Mutt "
  },
  {
    "path": "README.index-color",
    "chars": 2418,
    "preview": "Index Color Patch\n=================\n\n    Custom rules for theming the email index\n\nPatch\n-----\n\n    To check if Mutt sup"
  },
  {
    "path": "README.nested-if",
    "chars": 3008,
    "preview": "Nested If Patch\n===============\n\n    Allow complex nested conditions in format strings\n\nPatch\n-----\n\n    To check if Mut"
  },
  {
    "path": "README.notmuch",
    "chars": 13040,
    "preview": "notmuch support for mutt\n------------------------\n\n * notmuch is e-mail fulltext indexing and tagging engine; see\n   htt"
  },
  {
    "path": "README.progress",
    "chars": 893,
    "preview": "Progress Bar Patch\n==================\n\n    Show a visual progress bar on slow operations\n\nPatch\n-----\n\n    To check if M"
  },
  {
    "path": "README.quasi-delete",
    "chars": 993,
    "preview": "Quasi-Delete Patch\n==================\n\n    Mark emails that should be hidden, but not deleted\n\nPatch\n-----\n\n    To check"
  },
  {
    "path": "README.sidebar",
    "chars": 5632,
    "preview": "Sidebar Patch\n=============\n\n    Overview of mailboxes\n\n    NOTES:\n\n    If you haven't used the sidebar before, you migh"
  },
  {
    "path": "README.status-color",
    "chars": 1366,
    "preview": "Status Color Patch\n==================\n\n    Custom rules for theming the status bar\n\nPatch\n-----\n\n    To check if Mutt su"
  },
  {
    "path": "README.tls-sni",
    "chars": 1138,
    "preview": "TLS-SNI Patch\n=============\n\n    Negotiate with a server for a TSL/SSL certificate\n\nPatch\n-----\n\n    To check if Mutt su"
  },
  {
    "path": "TODO",
    "chars": 2354,
    "preview": "Problems are listed in approximate order of priority.\n\n- When displaying MIME headers, rfc 2047 decoding is applied (whi"
  },
  {
    "path": "UPDATING",
    "chars": 11424,
    "preview": "This file lists incompatible changes and additional/new features made to\nmutt. Please read this file carefully when upgr"
  },
  {
    "path": "UPDATING.kz",
    "chars": 2979,
    "preview": "1.6.0.1:\n\n+ rebase to mutt upstream 1.6.0\n+ update to the new sidebar implementation. Note that all .muttrc options \n  a"
  },
  {
    "path": "VERSION",
    "chars": 6,
    "preview": "1.6.0\n"
  },
  {
    "path": "VERSION.kz",
    "chars": 3,
    "preview": ".1\n"
  },
  {
    "path": "_regex.h",
    "chars": 20557,
    "preview": "/* Definitions for data structures and routines for the regular\n   expression library, version 0.12.\n   Copyright (C) 19"
  },
  {
    "path": "account.c",
    "chars": 6111,
    "preview": "/*\n * Copyright (C) 2000-2007 Brendan Cully <brendan@kublai.com>\n * \n *     This program is free software; you can redis"
  },
  {
    "path": "account.h",
    "chars": 1810,
    "preview": "/*\n * Copyright (C) 2000-2007,2012 Brendan Cully <brendan@kublai.com>\n * \n *     This program is free software; you can "
  },
  {
    "path": "addrbook.c",
    "chars": 5958,
    "preview": "/*\n * Copyright (C) 1996-2000,2007 Michael R. Elkins <me@mutt.org>\n * \n *     This program is free software; you can red"
  },
  {
    "path": "alias.c",
    "chars": 15192,
    "preview": "/*\n * Copyright (C) 1996-2002 Michael R. Elkins <me@mutt.org>\n * \n *     This program is free software; you can redistri"
  },
  {
    "path": "ascii.c",
    "chars": 2199,
    "preview": "/*\n * Copyright (C) 2001 Thomas Roessler <roessler@does-not-exist.org>\n * \n *     This program is free software; you can"
  },
  {
    "path": "ascii.h",
    "chars": 1477,
    "preview": "/*\n * Copyright (C) 2001-2002 Thomas Roessler <roessler@does-not-exist.org>\n * \n *     This program is free software; yo"
  },
  {
    "path": "attach.c",
    "chars": 25152,
    "preview": "/*\n * Copyright (C) 1996-2000,2002,2013 Michael R. Elkins <me@mutt.org>\n * Copyright (C) 1999-2004,2006 Thomas Roessler "
  },
  {
    "path": "attach.h",
    "chars": 2146,
    "preview": "/*\n * Copyright (C) 1996-2000 Michael R. Elkins <me@mutt.org>\n * \n *     This program is free software; you can redistri"
  },
  {
    "path": "base64.c",
    "chars": 3385,
    "preview": "/*\n *     This program is free software; you can redistribute it\n *     and/or modify it under the terms of the GNU Gene"
  },
  {
    "path": "bcache.c",
    "chars": 6475,
    "preview": "/*\n * Copyright (C) 2006-2007,2009 Brendan Cully <brendan@kublai.com>\n * Copyright (C) 2006,2009 Rocco Rutte <pdmef@gmx."
  },
  {
    "path": "bcache.h",
    "chars": 3121,
    "preview": "/*\n * Copyright (C) 2006-2007 Brendan Cully <brendan@kublai.com>\n * Copyright (C) 2006 Rocco Rutte <pdmef@gmx.net>\n *\n *"
  },
  {
    "path": "browser.c",
    "chars": 34766,
    "preview": "/*\n * Copyright (C) 1996-2000,2007,2010,2013 Michael R. Elkins <me@mutt.org>\n * \n *     This program is free software; y"
  },
  {
    "path": "browser.h",
    "chars": 1574,
    "preview": "/*\n * Copyright (C) 1996-2000 Michael R. Elkins <me@mutt.org>\n * \n *     This program is free software; you can redistri"
  },
  {
    "path": "buffy.c",
    "chars": 20889,
    "preview": "/* \n * Copyright (C) 1996-2000,2010,2013 Michael R. Elkins <me@mutt.org>\n * \n *     This program is free software; you c"
  },
  {
    "path": "buffy.h",
    "chars": 2449,
    "preview": "/* \n * Copyright (C) 1996-2000,2010,2013 Michael R. Elkins <me@mutt.org>\n * \n *     This program is free software; you c"
  },
  {
    "path": "build-release",
    "chars": 2076,
    "preview": "#!/bin/sh --\n\n#\n# Build a mutt release.\n#\n# This used to be part of the main Makefile, but is better handled\n# by a shel"
  },
  {
    "path": "charset.c",
    "chars": 17000,
    "preview": "/*\n * Copyright (C) 1999-2002,2007 Thomas Roessler <roessler@does-not-exist.org>\n *\n *     This program is free software"
  },
  {
    "path": "charset.h",
    "chars": 2292,
    "preview": "/*\n * Copyright (C) 1999-2003 Thomas Roessler <roessler@does-not-exist.org>\n *\n *     This program is free software; you"
  },
  {
    "path": "check_sec.sh",
    "chars": 1343,
    "preview": "#!/bin/sh --\n\n#\n# grep for some things which may look like security problems.\n#\n\nTMPFILE=\"`mktemp check_sec.tmp.XXXXXX`\""
  },
  {
    "path": "color.c",
    "chars": 22369,
    "preview": "/*\n * Copyright (C) 1996-2002,2012 Michael R. Elkins <me@mutt.org>\n * \n *     This program is free software; you can red"
  },
  {
    "path": "commands.c",
    "chars": 25311,
    "preview": "/*\n * Copyright (C) 1996-2000 Michael R. Elkins <me@mutt.org>\n * Copyright (C) 2000-2004,2006 Thomas Roessler <roessler@"
  },
  {
    "path": "complete.c",
    "chars": 5163,
    "preview": "/*\n * Copyright (C) 1996-2000,2007 Michael R. Elkins <me@mutt.org>\n * \n *     This program is free software; you can red"
  },
  {
    "path": "compose.c",
    "chars": 35118,
    "preview": "/*\n * Copyright (C) 1996-2000,2002,2007,2010,2012 Michael R. Elkins <me@mutt.org>\n * Copyright (C) 2004 g10 Code GmbH\n *"
  },
  {
    "path": "configure.ac",
    "chars": 46970,
    "preview": "dnl Process this file with autoconf to produce a configure script.\n\ndnl !!! WHEN ADDING NEW CONFIGURE TESTS, PLEASE ADD "
  },
  {
    "path": "contrib/Makefile.am",
    "chars": 1105,
    "preview": "# $Id$\n\nsubdir = contrib\n\nSAMPLES = Mush.rc Pine.rc gpg.rc pgp2.rc pgp5.rc pgp6.rc Tin.rc \\\n\tsample.muttrc  sample.mailc"
  },
  {
    "path": "contrib/Mush.rc",
    "chars": 441,
    "preview": "#\n# Key bindings similar to those of MUSH\n#\n\n# $Id$\n\nbind index . display-message\nbind index t display-message\nmacro ind"
  },
  {
    "path": "contrib/Pine.rc",
    "chars": 1022,
    "preview": "#\n# This file contains commands to change the keybindings in Mutt to be\n# similar to those of PINE 3.95.\n#\n\n#\n# $Id$\n#\n\n"
  },
  {
    "path": "contrib/Tin.rc",
    "chars": 606,
    "preview": "# From: Tom Gilbert <gilbertt@tomgilbert.freeserve.co.uk>\n# To: mutt-users@mutt.org\n# Subject: Re: Lynx-like movements\n#"
  },
  {
    "path": "contrib/ca-bundle.crt",
    "chars": 250843,
    "preview": "##\n##  ca-bundle.crt -- Bundle of CA Root Certificates\n##  Last Modified: Thu Mar  2 09:32:46 CET 2000\n##\n##  This is a "
  },
  {
    "path": "contrib/colors.default",
    "chars": 611,
    "preview": "# -*-muttrc-*-\n\n# Colors for use with xterm and the like, white background.\n\ncolor hdrdefault blue white\ncolor quoted bl"
  },
  {
    "path": "contrib/colors.linux",
    "chars": 605,
    "preview": "# -*-muttrc-*-\n\n# Palette for use with the Linux console.  Black background.\n\ncolor hdrdefault blue black\ncolor quoted b"
  },
  {
    "path": "contrib/gpg.rc",
    "chars": 3967,
    "preview": "# -*-muttrc-*-\n#\n# Command formats for gpg.\n# \n# This version uses gpg-2comp from \n#   http://70t.de/download/gpg-2comp."
  },
  {
    "path": "contrib/iconv/README",
    "chars": 528,
    "preview": "This directory contains sample collections of iconv-hooks for\nvarious platforms.  The files have been auto-generated fro"
  },
  {
    "path": "contrib/iconv/iconv.aix-3.2.5.rc",
    "chars": 57,
    "preview": "iconv-hook CP850 IBM-850\niconv-hook ISO-8859-1 ISO8859-1\n"
  },
  {
    "path": "contrib/iconv/iconv.aix-4.1.5.rc",
    "chars": 374,
    "preview": "iconv-hook CP1046 IBM-1046\niconv-hook CP850 IBM-850\niconv-hook CP856 IBM-856\niconv-hook CP932 IBM-932\niconv-hook EUC-CN "
  },
  {
    "path": "contrib/iconv/iconv.aix-4.2.0.rc",
    "chars": 515,
    "preview": "iconv-hook BIG5 big5\niconv-hook CP1046 IBM-1046\niconv-hook CP850 IBM-850\niconv-hook CP856 IBM-856\niconv-hook CP922 IBM-9"
  },
  {
    "path": "contrib/iconv/iconv.aix-4.3.2.rc",
    "chars": 655,
    "preview": "iconv-hook BIG5 big5\niconv-hook CP1046 IBM-1046\niconv-hook CP1124 IBM-1124\niconv-hook CP1129 IBM-1129\niconv-hook CP1252 "
  },
  {
    "path": "contrib/iconv/iconv.freebsd-3.3.rc",
    "chars": 167,
    "preview": "iconv-hook ASCII <error>\niconv-hook CP866 <error>\niconv-hook ISO-8859-15 <error>\niconv-hook ISO-8859-1 <error>\niconv-hoo"
  },
  {
    "path": "contrib/iconv/iconv.glibc-2.1.3.rc",
    "chars": 37,
    "preview": "iconv-hook ISO-8859-1 ANSI_X3.4-1968\n"
  },
  {
    "path": "contrib/iconv/iconv.glibc-2.1.90.rc",
    "chars": 32,
    "preview": "iconv-hook ASCII ANSI_X3.4-1968\n"
  },
  {
    "path": "contrib/iconv/iconv.hpux-10.01.rc",
    "chars": 440,
    "preview": "iconv-hook EUC-CN hp15CN\niconv-hook EUC-TW eucTW\niconv-hook HP-ARABIC8 arabic8\niconv-hook HP-GREEK8 greek8\niconv-hook HP"
  },
  {
    "path": "contrib/iconv/iconv.hpux-10.20.rc",
    "chars": 446,
    "preview": "iconv-hook HP-ARABIC8 arabic8\niconv-hook HP-GREEK8 greek8\niconv-hook HP-HEBREW8 hebrew8\niconv-hook HP-ROMAN8 roman8\nicon"
  },
  {
    "path": "contrib/iconv/iconv.hpux-11.00.rc",
    "chars": 590,
    "preview": "iconv-hook BIG5 big5\niconv-hook EUC-CN hp15CN\niconv-hook EUC-JP eucJP\niconv-hook EUC-KR eucKR\niconv-hook EUC-TW eucTW\nic"
  },
  {
    "path": "contrib/iconv/iconv.irix-6.5.rc",
    "chars": 256,
    "preview": "iconv-hook EUC-CN eucCN\niconv-hook EUC-JP eucJP\niconv-hook EUC-KR eucKR\niconv-hook EUC-TW eucTW\niconv-hook ISO-8859-1 IS"
  },
  {
    "path": "contrib/iconv/iconv.osf1-4.0a.rc",
    "chars": 96,
    "preview": "iconv-hook ISO-8859-1 ISO8859-1\niconv-hook ISO-8859-7 ISO8859-7\niconv-hook ISO-8859-9 ISO8859-9\n"
  },
  {
    "path": "contrib/iconv/iconv.osf1-4.0d.rc",
    "chars": 119,
    "preview": "iconv-hook CP850 cp850\niconv-hook ISO-8859-1 ISO8859-1\niconv-hook ISO-8859-7 ISO8859-7\niconv-hook ISO-8859-9 ISO8859-9\n"
  },
  {
    "path": "contrib/iconv/iconv.solaris-2.4.rc",
    "chars": 16,
    "preview": "iconv-hook  bug\n"
  },
  {
    "path": "contrib/iconv/iconv.solaris-2.5.1.rc",
    "chars": 32,
    "preview": "iconv-hook ISO-8859-1 ISO8859-1\n"
  },
  {
    "path": "contrib/iconv/iconv.solaris-2.6-cjk.rc",
    "chars": 316,
    "preview": "iconv-hook EUC-CN gb2312\niconv-hook EUC-JP eucJP\niconv-hook EUC-KR 5601\niconv-hook EUC-TW cns11643\niconv-hook ISO-8859-1"
  },
  {
    "path": "contrib/iconv/iconv.solaris-2.6.rc",
    "chars": 192,
    "preview": "iconv-hook ISO-8859-1 ISO8859-1\niconv-hook ISO-8859-2 ISO8859-2\niconv-hook ISO-8859-4 ISO8859-4\niconv-hook ISO-8859-5 IS"
  },
  {
    "path": "contrib/iconv/iconv.solaris-2.7.rc",
    "chars": 367,
    "preview": "iconv-hook ASCII 646\niconv-hook ISO-8859-15 ISO8859-15\niconv-hook ISO-8859-1 ISO8859-1\niconv-hook ISO-8859-2 ISO8859-2\ni"
  },
  {
    "path": "contrib/iconv/make.sh",
    "chars": 809,
    "preview": "#!/bin/sh --\n\n#\n# Create sample configuration files from the tables contained with libiconv.\n# Copyright (C) 2001 Thomas"
  },
  {
    "path": "contrib/language.txt",
    "chars": 145836,
    "preview": "# Translation file for PGP 2.6.3(i)n.\n\n# $Id$\n\n# ------------------------------------------------------------------\n# Ch"
  },
  {
    "path": "contrib/language50.txt",
    "chars": 29369,
    "preview": "#This file contains the strings used by PGP.\n\n# $Id$\n\n[DIFFERENT_EXES]\nus=\\\nPGP is now invoked from different executable"
  },
  {
    "path": "contrib/mutt_xtitle",
    "chars": 311,
    "preview": "#!/bin/sh\n# Demonstration of format string pipes. Sets the xterm title and returns the\n# string unchanged.\n#\n# Example u"
  },
  {
    "path": "contrib/patch.slang-1.2.2.keypad.1",
    "chars": 2180,
    "preview": "diff -ur slang.old/src/slcurses.c slang/src/slcurses.c\n--- slang.old/src/slcurses.c\tFri Apr 24 09:16:46 1998\n+++ slang/s"
  },
  {
    "path": "contrib/pgp2.rc",
    "chars": 1607,
    "preview": "# -*-muttrc-*-\n#\n# PGP command formats for PGP 2.\n#\n# $Id$\n#\n\n#\n# Note: In order to be able to read your own messages, y"
  },
  {
    "path": "contrib/pgp5.rc",
    "chars": 1691,
    "preview": "# -*-muttrc-*-\n#\n# PGP command formats for PGP 5.\n#\n# $Id$\n#\n\n# decode application/pgp\nset pgp_decode_command=\"%?p?PGPPA"
  },
  {
    "path": "contrib/pgp6.rc",
    "chars": 1623,
    "preview": "# -*-muttrc-*-\n#\n# PGP command formats for PGP 6.\n#\n# $Id$\n#\n\n# decode application/pgp\nset pgp_decode_command=\"%?p?PGPPA"
  },
  {
    "path": "contrib/sample.mailcap",
    "chars": 134,
    "preview": "# $Id$\n\ntext/html; netscape -remote openURL\\(%s\\)\nimage/gif; xv %s\nimage/jpg; xv %s\napplication/pgp-keys; pgp -f < %s ; "
  },
  {
    "path": "contrib/sample.muttrc",
    "chars": 12965,
    "preview": "# $Id$\n\n# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n#\n# ME's personal .muttrc (Mutt 0.92"
  },
  {
    "path": "contrib/sample.muttrc-tlr",
    "chars": 10824,
    "preview": "# -*-muttrc-*-\n\n#\n# Mutt configuration file of Thomas Roessler <roessler@does-not-exist.org>\n#\n# Use and distribute free"
  },
  {
    "path": "contrib/smime.rc",
    "chars": 3645,
    "preview": "# -*-muttrc-*-\n## The following options are only available if you have\n## compiled in S/MIME support\n\n# If you compiled "
  },
  {
    "path": "contrib/smime_keys_test.pl",
    "chars": 3472,
    "preview": "#! /usr/bin/perl -W\n\n# by Mike Schiraldi <raldi@research.netsol.com>\n\nuse strict;\nuse Expect;\n\nsub run ($;$ );\n\numask 07"
  },
  {
    "path": "copy.c",
    "chars": 24555,
    "preview": "/*\n * Copyright (C) 1996-2000,2002,2014 Michael R. Elkins <me@mutt.org>\n * \n *     This program is free software; you ca"
  },
  {
    "path": "copy.h",
    "chars": 3764,
    "preview": "/*\n * Copyright (C) 1996-2000 Michael R. Elkins <me@mutt.org>\n * \n *     This program is free software; you can redistri"
  },
  {
    "path": "crypt-gpgme.c",
    "chars": 128773,
    "preview": "/* crypt-gpgme.c - GPGME based crypto operations\n * Copyright (C) 1996-1997,2007 Michael R. Elkins <me@cs.hmc.edu>\n * Co"
  },
  {
    "path": "crypt-gpgme.h",
    "chars": 2130,
    "preview": "/* \n * Copyright (C) 2004 g10 Code GmbH\n *\n *     This program is free software; you can redistribute it and/or modify\n "
  },
  {
    "path": "crypt-mod-pgp-classic.c",
    "chars": 3678,
    "preview": "/* \n * Copyright (C) 2004 g10 Code GmbH\n *\n *     This program is free software; you can redistribute it and/or modify\n "
  },
  {
    "path": "crypt-mod-pgp-gpgme.c",
    "chars": 3740,
    "preview": "/* \n * Copyright (C) 2004 g10 Code GmbH\n *\n *     This program is free software; you can redistribute it and/or modify\n "
  },
  {
    "path": "crypt-mod-smime-classic.c",
    "chars": 3197,
    "preview": "/* \n * Copyright (C) 2004 g10 Code GmbH\n *\n *     This program is free software; you can redistribute it and/or modify\n "
  },
  {
    "path": "crypt-mod-smime-gpgme.c",
    "chars": 3173,
    "preview": "/* \n * Copyright (C) 2004 g10 Code GmbH\n *\n *     This program is free software; you can redistribute it and/or modify\n "
  },
  {
    "path": "crypt-mod.c",
    "chars": 1777,
    "preview": "/*\n * Copyright (C) 2004 g10 Code GmbH\n *\n *     This program is free software; you can redistribute it and/or modify\n *"
  },
  {
    "path": "crypt-mod.h",
    "chars": 5319,
    "preview": "/*\n * Copyright (C) 2004 g10 Code GmbH\n *\n *     This program is free software; you can redistribute it and/or modify\n *"
  },
  {
    "path": "crypt.c",
    "chars": 26977,
    "preview": "/*\n * Copyright (C) 1996-1997 Michael R. Elkins <me@mutt.org>\n * Copyright (C) 1999-2000,2002-2004,2006 Thomas Roessler "
  },
  {
    "path": "cryptglue.c",
    "chars": 10422,
    "preview": "/*\n * Copyright (C) 2003 Werner Koch <wk@gnupg.org>\n * Copyright (C) 2004 g10 Code GmbH\n *\n *     This program is free s"
  },
  {
    "path": "crypthash.h",
    "chars": 267,
    "preview": "#ifndef _CRYPTHASH_H\n# define _CRYPTHASH_H\n\n\n# include <sys/types.h>\n# if HAVE_INTTYPES_H\n#  include <inttypes.h>\n# else"
  },
  {
    "path": "curs_lib.c",
    "chars": 24598,
    "preview": "/*\n * Copyright (C) 1996-2002,2010,2012-2013 Michael R. Elkins <me@mutt.org>\n * Copyright (C) 2004 g10 Code GmbH\n * \n * "
  },
  {
    "path": "curs_main.c",
    "chars": 63478,
    "preview": "/*\n * Copyright (C) 1996-2000,2002,2010,2012-2013 Michael R. Elkins <me@mutt.org>\n *\n *     This program is free softwar"
  },
  {
    "path": "date.c",
    "chars": 4438,
    "preview": "/*\n * Copyright (C) 1996-2000 Michael R. Elkins <me@mutt.org>\n * \n *     This program is free software; you can redistri"
  },
  {
    "path": "doc/Makefile.am",
    "chars": 7234,
    "preview": "## Process this file with automake to produce Makefile.in\ninclude $(top_srcdir)/flymake.am\n\nAUTOMAKE_OPTIONS = 1.6 forei"
  },
  {
    "path": "doc/Muttrc.head",
    "chars": 3466,
    "preview": "#\n# System configuration file for Mutt\n#\n\n# Default list of header fields to weed when displaying.\n# Ignore all lines by"
  },
  {
    "path": "doc/PGP-Notes.txt",
    "chars": 7679,
    "preview": "$Id$\n\n\t\t     USING PGP FROM WITHIN MUTT\n\n\nWARNING: The configuration interface has completely changed as of\n         0.9"
  },
  {
    "path": "doc/TODO",
    "chars": 1455,
    "preview": "Documentation TODO in no particular order grouped by style and content.\n\nIt would be nice to get some of these done for "
  },
  {
    "path": "doc/applying-patches.txt",
    "chars": 938,
    "preview": "Subject: Applying patches\nFrom: Thomas Roessler <roessler@does-not-exist.org>\nDate: Thu,  8 Oct 1998 14:32:53 +0200\n\nWhe"
  },
  {
    "path": "doc/chunk.xsl",
    "chars": 347,
    "preview": "<?xml version=\"1.0\"?>\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\">\n  <xsl:import href"
  },
  {
    "path": "doc/devel-notes.txt",
    "chars": 10563,
    "preview": "Required tools\n--------------\n\nIf you are planning to hack on mutt, please subscribe to the\nmutt-dev mailing list (mutt-"
  },
  {
    "path": "doc/dotlock.man",
    "chars": 4078,
    "preview": ".\\\" -*-nroff-*-\n.\\\"\n.\\\"\n.\\\"     Copyright (C) 1996-8 Michael R. Elkins <me@cs.hmc.edu>\n.\\\"\tCopyright (C) 1998-9 Thomas R"
  },
  {
    "path": "doc/gen-map-doc",
    "chars": 2072,
    "preview": "#!/usr/bin/perl -w\n\nuse strict;\n\nmy (%OPS, %MAP, %DOC, $map);\n\nmy $xml = shift @ARGV;\n\nopen F, \"cat @ARGV |\" or die \"OPS"
  },
  {
    "path": "doc/html.xsl",
    "chars": 244,
    "preview": "<?xml version=\"1.0\"?>\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\">\n  <xsl:import href"
  },
  {
    "path": "doc/instdoc.sh.in",
    "chars": 404,
    "preview": "#!/bin/sh --\n\nprefix=@prefix@\nexec_prefix=@exec_prefix@\nbindir=@bindir@\nlibdir=@libdir@\nmandir=@mandir@\nsrcdir=@srcdir@\n"
  },
  {
    "path": "doc/makedoc-defs.h",
    "chars": 981,
    "preview": "/* build complete documentation */\n\n#ifdef MAKEDOC_FULL\n# ifndef CRYPT_BACKEND_GPGME\n#  define CRYPT_BACKEND_GPGME\n# end"
  },
  {
    "path": "doc/makedoc.c",
    "chars": 27955,
    "preview": "/*\n * Copyright (C) 1999-2000 Thomas Roessler <roessler@does-not-exist.org>\n * \n *     This program is free software; yo"
  },
  {
    "path": "doc/manual.xml.head",
    "chars": 392931,
    "preview": "<?xml version=\"1.0\" standalone=\"no\"?>\n<!DOCTYPE book PUBLIC \"-//OASIS//DTD DocBook XML V4.2//EN\"\n  \"http://www.oasis-ope"
  },
  {
    "path": "doc/manual.xml.tail",
    "chars": 4896,
    "preview": "</sect1>\n\n<sect1 id=\"functions\">\n<title>Functions</title>\n\n<para>\nThe following is the list of available functions liste"
  },
  {
    "path": "doc/mbox.man",
    "chars": 5888,
    "preview": "'\\\" t\n.\\\" -*-nroff-*-\n.\\\"\n.\\\"     Copyright (C) 2000 Thomas Roessler <roessler@does-not-exist.org>\n.\\\"\n.\\\"\tThis document"
  },
  {
    "path": "doc/mmdf.man",
    "chars": 4166,
    "preview": ".\\\" Project   : tin\n.\\\" Module    : mmdf.5\n.\\\" Author    : U. Janssen\n.\\\" Created   : 2002-02-18\n.\\\" Updated   :\n.\\\" Not"
  },
  {
    "path": "doc/mutt.css",
    "chars": 1330,
    "preview": "body { margin-left:2%; margin-right:2%; font-family:serif; }\n.toc, .list-of-tables, .list-of-examples { font-family:sans"
  },
  {
    "path": "doc/mutt.man",
    "chars": 7157,
    "preview": ".\\\" -*-nroff-*-\n.\\\"\n.\\\"\n.\\\"     Copyright (C) 1996-2016 Michael R. Elkins <me@cs.hmc.edu>\n.\\\" \n.\\\"     This program is f"
  },
  {
    "path": "doc/mutt.pwl",
    "chars": 3920,
    "preview": "personal_ws-1.1 en 515 \nunconvertable\nfIask\nfPcollapsed\nnosubject\nretainable\nmulti\nCCs\naol\nxysize\nonlyfirst\nvcard\nDCC\nPG"
  },
  {
    "path": "doc/mutt.xsl",
    "chars": 458,
    "preview": "<?xml version=\"1.0\"?>\n<!DOCTYPE xsl:stylesheet [\n<!ENTITY css SYSTEM \"mutt.css\">\n]>\n<xsl:stylesheet xmlns:xsl=\"http://ww"
  },
  {
    "path": "doc/muttbug.man",
    "chars": 6570,
    "preview": ".\\\" -*-nroff-*-\n.\\\"\n.\\\"\n.\\\"     Copyright (C) 1996-2000 Thomas Roessler <roessler@does-not-exist.org>\n.\\\" \n.\\\"     This "
  },
  {
    "path": "doc/muttrc.cond-date",
    "chars": 582,
    "preview": "# Example Mutt config file for the 'index-color' feature.\n#\n# The default index_format is:\n#       '%4C %Z %{%b %d} %-15"
  },
  {
    "path": "doc/muttrc.index-color",
    "chars": 865,
    "preview": "# Example Mutt config file for the 'index-color' feature.\n\n# Entire index line\ncolor index white black '.*'\n\n# Author na"
  },
  {
    "path": "doc/muttrc.man.head",
    "chars": 25438,
    "preview": "'\\\" t\n.\\\" -*-nroff-*-\n.\\\"\n.\\\"     Copyright (C) 1996-2000 Michael R. Elkins <me@cs.hmc.edu>\n.\\\"\tCopyright (C) 1999-2000 "
  },
  {
    "path": "doc/muttrc.man.tail",
    "chars": 333,
    "preview": ".\\\" -*-nroff-*-\n.SH SEE ALSO\n.PP\n.BR iconv (1),\n.BR iconv (3),\n.BR mailcap (5),\n.BR maildir (5),\n.BR mbox (5),\n.BR mutt "
  },
  {
    "path": "doc/muttrc.nested-if",
    "chars": 822,
    "preview": "# Example Mutt config file for the 'nested-if' feature.\n\n# This patch uses the format: '%<VAR?TRUE&FALSE>' for condition"
  },
  {
    "path": "doc/muttrc.progress",
    "chars": 289,
    "preview": "# Example Mutt config file for the 'progress' patch.\n\n# The 'progress' patch provides clear visual feedback for\n# slow t"
  },
  {
    "path": "doc/muttrc.quasi-delete",
    "chars": 216,
    "preview": "# Example Mutt config file for the 'quasi-delete' feature.\n\n# The 'quasi-delete' function marks an email that should be "
  },
  {
    "path": "doc/muttrc.sidebar",
    "chars": 4046,
    "preview": "# This is a complete list of sidebar-related configuration.\n\n# ---------------------------------------------------------"
  },
  {
    "path": "doc/muttrc.status-color",
    "chars": 1630,
    "preview": "# Example Mutt config file for the 'status-color' patch.\n\n# The 'status-color' patch allows you to theme different parts"
  },
  {
    "path": "doc/muttrc.tls-sni",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "doc/patch-notes.txt",
    "chars": 1584,
    "preview": "From roessler@does-not-exist.org Wed Nov  7 11:49:56 2001\nDate: Wed, 7 Nov 2001 11:49:56 +0100\nFrom: Thomas Roessler <ro"
  },
  {
    "path": "doc/pgpewrap.man",
    "chars": 1620,
    "preview": ".\\\" -*-nroff-*-\n.\\\"\n.\\\"     pgpewrap, a command line munging tool\n.\\\"     Manpage Copyright (c) 2013 Honza Horak\n.\\\"\n.\\\""
  },
  {
    "path": "doc/pgpring.man",
    "chars": 1869,
    "preview": ".\\\" -*-nroff-*-\n.\\\"\n.\\\"     pgpring, a key ring dumper\n.\\\"     Manpage Copyright (c) 2004-2013 Matthew Wilcox, Honza Hor"
  },
  {
    "path": "doc/smime-notes.txt",
    "chars": 4333,
    "preview": "How to add use mutt's S/MIME capabilities\n\n- Add the contents of contrib/smime.rc to your .muttrc. Don't worry about\n  c"
  },
  {
    "path": "doc/smime_keys.man",
    "chars": 2645,
    "preview": ".\\\" -*-nroff-*-\n.\\\"\n.\\\"\n.\\\"     Copyright (C) 2001,2002 Oliver Ehli <elmy@acm.org>\n.\\\"     Copyright (C) 2001 Mike Schir"
  },
  {
    "path": "doc/vimrc.index-color",
    "chars": 555,
    "preview": "\" Vim syntax file for the mutt index-color patch\n\nsyntax keyword muttrcColorField contained index\nsyntax keyword muttrcC"
  },
  {
    "path": "doc/vimrc.progress",
    "chars": 117,
    "preview": "\" Vim syntax file for the mutt progress patch\n\nsyntax keyword muttrcColorField contained progress\n\n\" vim: syntax=vim\n"
  },
  {
    "path": "doc/vimrc.quasi-delete",
    "chars": 131,
    "preview": "\" Vim syntax file for the mutt quasi-delete patch\n\nsyntax match muttrcFunction     contained \"\\<quasi-delete\\>\"\n\n\" vim: "
  },
  {
    "path": "doc/vimrc.sidebar",
    "chars": 2684,
    "preview": "\" Vim syntax file for the mutt sidebar patch\n\nsyntax keyword muttrcVarBool    skipwhite contained sidebar_folder_indent "
  },
  {
    "path": "dotlock.c",
    "chars": 15317,
    "preview": "/*\n * Copyright (C) 1996-2000 Michael R. Elkins <me@mutt.org>\n * Copyright (C) 1998-2001,2007 Thomas Roessler <roessler@"
  },
  {
    "path": "dotlock.h",
    "chars": 1427,
    "preview": "/*\n * Copyright (C) 1996-2000 Michael R. Elkins <me@mutt.org>\n * Copyright (C) 1998-2000 Thomas Roessler <roessler@does-"
  },
  {
    "path": "edit.c",
    "chars": 12234,
    "preview": "/*\n * Copyright (C) 1996-2000 Michael R. Elkins <me@mutt.org>\n * \n *     This program is free software; you can redistri"
  },
  {
    "path": "editmsg.c",
    "chars": 5255,
    "preview": "/*\n * Copyright (C) 1999-2002 Thomas Roessler <roessler@does-not-exist.org>\n * \n *     This program is free software; yo"
  },
  {
    "path": "enter.c",
    "chars": 19469,
    "preview": "/*\n * Copyright (C) 1996-2000,2007,2011,2013 Michael R. Elkins <me@mutt.org>\n * Copyright (C) 2000-2001 Edmund Grimley E"
  },
  {
    "path": "extlib.c",
    "chars": 1197,
    "preview": "/*\n * Copyright (C) 1999-2000 Thomas Roessler <roessler@does-not-exist.org>\n * \n *     This program is free software; yo"
  },
  {
    "path": "filter.c",
    "chars": 3253,
    "preview": "/*\n * Copyright (C) 1996-2000 Michael R. Elkins.\n * \n *     This program is free software; you can redistribute it and/o"
  },
  {
    "path": "flags.c",
    "chars": 7640,
    "preview": "/*\n * Copyright (C) 1996-2000 Michael R. Elkins <me@mutt.org>\n * \n *     This program is free software; you can redistri"
  },
  {
    "path": "flymake.am",
    "chars": 554,
    "preview": "get_cs_flags = $(foreach target,$(subst .,_,$(subst -,_,$($(2)))),$($(target)_$(1)FLAGS))\nget_cs_all_flags = $(foreach t"
  },
  {
    "path": "from.c",
    "chars": 4595,
    "preview": "/*\n * Copyright (C) 1996-2000,2013 Michael R. Elkins <me@mutt.org>\n * \n *     This program is free software; you can red"
  },
  {
    "path": "functions.h",
    "chars": 20086,
    "preview": "/*\n * Copyright (C) 1996-2000,2002 Michael R. Elkins <me@mutt.org>\n * \n *     This program is free software; you can red"
  },
  {
    "path": "gen_defs",
    "chars": 537,
    "preview": "#!/bin/sh\n\n# $Id$\n\necho '/* Automatically generated by gen_defs.  Do not edit! */'\necho ''\n\nfor mode in help defs; do\n\tc"
  },
  {
    "path": "getdomain.c",
    "chars": 1825,
    "preview": "/*\n * Copyright (C) 2009,2013 Derek Martin <code@pizzashack.org>\n *\n *     This program is free software; you can redist"
  },
  {
    "path": "globals.h",
    "chars": 8653,
    "preview": "/*\n * Copyright (C) 1996-2002,2010 Michael R. Elkins <me@mutt.org>\n * \n *     This program is free software; you can red"
  },
  {
    "path": "gnupgparse.c",
    "chars": 9652,
    "preview": "/*\n * Copyright (C) 1998-2000,2003 Werner Koch <werner.koch@guug.de>\n * Copyright (C) 1999-2003 Thomas Roessler <roessle"
  },
  {
    "path": "group.c",
    "chars": 4364,
    "preview": "/*\n * Copyright (C) 2006 Thomas Roessler <roessler@does-not-exist.org>\n * Copyright (C) 2009 Rocco Rutte <pdmef@gmx.net>"
  },
  {
    "path": "group.h",
    "chars": 1607,
    "preview": "/*\n * Copyright (C) 2006 Thomas Roessler <roessler@does-not-exist.org>\n * Copyright (C) 2009 Rocco Rutte <pdmef@gmx.net>"
  },
  {
    "path": "handler.c",
    "chars": 44248,
    "preview": "/*\n * Copyright (C) 1996-2000,2002,2010,2013 Michael R. Elkins <me@mutt.org>\n * \n *     This program is free software; y"
  },
  {
    "path": "hash.c",
    "chars": 4034,
    "preview": "/*\n * Copyright (C) 1996-2009 Michael R. Elkins <me@mutt.org>\n *\n *     This program is free software; you can redistrib"
  },
  {
    "path": "hash.h",
    "chars": 1769,
    "preview": "/*\n * Copyright (C) 1996-2009 Michael R. Elkins <me@mutt.org>\n *\n *     This program is free software; you can redistrib"
  },
  {
    "path": "hcache.c",
    "chars": 26526,
    "preview": "/*\n * Copyright (C) 2004 Thomas Glanzmann <sithglan@stud.uni-erlangen.de>\n * Copyright (C) 2004 Tobias Werth <sitowert@s"
  },
  {
    "path": "hcache.h",
    "chars": 2288,
    "preview": "/*\n * Copyright (C) 2004 Thomas Glanzmann <sithglan@stud.uni-erlangen.de>\n * Copyright (C) 2004 Tobias Werth <sitowert@s"
  },
  {
    "path": "hcachever.sh.in",
    "chars": 1466,
    "preview": "#!/bin/sh\n\nBASEVERSION=2\n\ncleanstruct () {\n  echo \"$1\" | sed -e 's/} *//' -e 's/;$//'\n}\n\ncleanbody () {\n  echo \"$1\" | se"
  },
  {
    "path": "hdrline.c",
    "chars": 26284,
    "preview": "/*\n * Copyright (C) 1996-2000,2002,2007 Michael R. Elkins <me@mutt.org>\n * \n *     This program is free software; you ca"
  },
  {
    "path": "headers.c",
    "chars": 5147,
    "preview": "/* \n * Copyright (C) 1996-2009,2012 Michael R. Elkins <me@mutt.org>\n * \n *     This program is free software; you can re"
  },
  {
    "path": "help.c",
    "chars": 8073,
    "preview": "/*\n * Copyright (C) 1996-2000,2009 Michael R. Elkins <me@mutt.org>\n * \n *     This program is free software; you can red"
  },
  {
    "path": "hg-changelog-map",
    "chars": 215,
    "preview": "header = '{date|isodate}  {author|person}  <{author|email}>  ({node|short})\\n\\n'\nchangeset = '\\t* {files|stringify|fill6"
  },
  {
    "path": "hg-commit",
    "chars": 857,
    "preview": "#!/bin/bash\n\nMUTTDIR=$(dirname $0)\n\n(cd $MUTTDIR && ./check_sec.sh) || exit 1\n\nif [ -f $MUTTDIR/doc/manual.xml ] ; then\n"
  },
  {
    "path": "history.c",
    "chars": 7291,
    "preview": "/*\n * Copyright (C) 1996-2000 Michael R. Elkins <me@mutt.org>\n * \n *     This program is free software; you can redistri"
  },
  {
    "path": "history.h",
    "chars": 1496,
    "preview": "/*\n * Copyright (C) 1996-2000 Michael R. Elkins <me@mutt.org>\n * \n *     This program is free software; you can redistri"
  },
  {
    "path": "hook.c",
    "chars": 13093,
    "preview": "/* \n * Copyright (C) 1996-2002,2004,2007 Michael R. Elkins <me@mutt.org>, and others\n *\n *     This program is free soft"
  },
  {
    "path": "imap/Makefile.am",
    "chars": 585,
    "preview": "## Process this file with automake to produce Makefile.in\ninclude $(top_srcdir)/flymake.am\n\nAUTOMAKE_OPTIONS = 1.6 forei"
  },
  {
    "path": "imap/README",
    "chars": 1555,
    "preview": "IMAP in mutt should be considered beta quality. For the most part it\nworks well, but it is still not quite as stable or "
  },
  {
    "path": "imap/TODO",
    "chars": 1014,
    "preview": "IMAP enhancements, by priority:\n\n[ -- socket -- ]\n\n* Smarter connection code. Mutt should handle dropped connections/rou"
  },
  {
    "path": "imap/auth.c",
    "chars": 3032,
    "preview": "/*\n * Copyright (C) 1996-1998 Michael R. Elkins <me@mutt.org>\n * Copyright (C) 1996-1999 Brandon Long <blong@fiction.net"
  },
  {
    "path": "imap/auth.h",
    "chars": 1925,
    "preview": "/*\n * Copyright (C) 2000-2001 Brendan Cully <brendan@kublai.com>\n * \n *     This program is free software; you can redis"
  },
  {
    "path": "imap/auth_anon.c",
    "chars": 2123,
    "preview": "/*\n * Copyright (C) 1999-2001,2005 Brendan Cully <brendan@kublai.com>\n * \n *     This program is free software; you can "
  },
  {
    "path": "imap/auth_cram.c",
    "chars": 5899,
    "preview": "/*\n * Copyright (C) 1999-2001,2005 Brendan Cully <brendan@kublai.com>\n * \n *     This program is free software; you can "
  },
  {
    "path": "imap/auth_gss.c",
    "chars": 10091,
    "preview": "/*\n * Copyright (C) 1999-2001,2005,2009 Brendan Cully <brendan@kublai.com>\n * \n *     This program is free software; you"
  },
  {
    "path": "imap/auth_login.c",
    "chars": 2267,
    "preview": "/*\n * Copyright (C) 1999-2001,2005,2009 Brendan Cully <brendan@kublai.com>\n * \n *     This program is free software; you"
  },
  {
    "path": "imap/auth_sasl.c",
    "chars": 6506,
    "preview": "/*\n * Copyright (C) 2000-2006,2012 Brendan Cully <brendan@kublai.com>\n * \n *     This program is free software; you can "
  }
]

// ... and 210 more files (download for full content)

About this extraction

This page contains the full source code of the karelzak/mutt-kz GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 410 files (8.4 MB), approximately 2.2M tokens, and a symbol index with 2344 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!