+++ /dev/null
-Only in ../m/debian/mutt/usr/share/doc/mutt: BUGS.IMAP
-Only in ../m/debian/mutt/usr/share/doc/mutt: README.IMAP
-Only in ../m/debian/mutt/usr/share/doc/mutt: TODO.IMAP
-
-Only in debian/mutt/usr/share/doc/mutt/examples: ca-bundle.crt
-Only in debian/mutt/usr/share/doc/mutt/examples: iconv
-Only in debian/mutt/usr/share/doc/mutt/examples: smime_keys_test.pl
+++ /dev/null
-mutt (1.5.17-2) unstable; urgency=low
-
- There is now a "mutt-patched" package that will contain some more
- experimental patches. For now that is the "sidebar" patch. See
- README.Patches for details.
-
- -- Christoph Berg <myon@debian.org> Tue, 01 Jan 2008 20:03:16 +0100
-
-mutt (1.5.16-2) unstable; urgency=low
-
- User-visible changes in this version:
- * The gpgme crypt backend is not yet stable enough, disabled again.
- * The imap_home_namespace variable was removed upstream.
-
- -- Christoph Berg <myon@debian.org> Thu, 28 Jun 2007 20:58:49 +0200
-
-mutt (1.5.14+cvs20070301-1) experimental; urgency=low
-
- We no longer unset write_bcc in /etc/Muttrc. If your MTA does not strip Bcc:
- headers, edit /etc/Muttrc. (exim4 and postfix strip them, exim(3) does not.)
- We also no longer unset use_from and use_domain. Mutt will use the contents
- of /etc/mailname to determine the domain part of the From: header.
-
- This release adds ESMTP support to mutt. To use, set smtp_url to your
- smarthost, e.g. smtps://mail.company.com/.
-
- The gpgme crypt backend is now enabled.
-
- -- Christoph Berg <myon@debian.org> Thu, 1 Mar 2007 23:56:58 +0100
-
-mutt (1.5.6-1) unstable; urgency=low
-
- In this release the alternates, lists, and subscribe configuration
- variables have been turned into regular expression lists.
- Additionaly, alternates is now an option, not a variable.
- This means that you should change:
-
- set alternates="foo|bar"
-
- into
-
- alternates "foo|bar"
-
- in your .muttrc file. See muttrc(5) for details.
-
- -- Artur R. Czechowski <arturcz@hell.pl> Sun, 4 Apr 2004 14:04:03 +0200
+++ /dev/null
-l10n support
-~~~~~~~~~~~~
-If you want to see non-ASCII characters on a Debian system, there's no
-use fiddling with the variable "charset", as described in the manual
-page muttrc(5).
-Instead, you'll need to have the Debian package "locales" installed on
-your system and set the LANG or LC_CTYPE environment variable.
-e.g. US users will want to add "export LC_CTYPE=en_US" to their ~/.bashrc.
-If you have a /etc/locale.gen file read carefully the comment and do
-what it says, or it will not work.
-No, linux systems do not need --enable-locales-fix or --without-wc-funcs,
-so don't bother me saying these switches cure your problems.
-
-
-PGP support
-~~~~~~~~~~~
-GnuPG support works out of the box with the default /etc/Muttrc.
-You do not need any of the example files in /usr/share/doc/mutt/
-unless you plan to send signed+encrypted messages to pgp2 users.
-
-
-gpg-2comp
-~~~~~~~~~
-/usr/share/doc/mutt/examples/gpg.rc uses a wrapper program called
-gpg-2comp which is not available as a debian package.
-This program is needed only to sign and encrypt messages with a method
-compatible with PGP 2.x. Users who don't need this feature can use the
-commands provided in the default /etc/Muttrc.
-The pgpewrap and pgpring programs used by some example rc files have
-been installed in /usr/lib/mutt.
-The files /usr/share/doc/mutt/examples/*.rc are just examples and are not
-supposed to be used as is. Actually they are not supposed to be used at
-all, PGP support works out of the box if gnupg is installed.
-
-
-GnuPG passphrase
-~~~~~~~~~~~~~~~~
-The GnuPG passphrase is not asked if the $GPG_AGENT_INFO environment
-variable exists.
-
-
-Scripts
-~~~~~~~
-Look at /usr/lib/mutt/{debian-ldap-query,mailspell}.
-
-
-pgp_encryptself
-~~~~~~~~~~~~~~~
-This mutt 1.0.x configuration option does not exist anymore and this
-will not change. To achieve the same effect you can add something like
---encrypt-to=your@mail.address to the relevant ~/.muttrc configuration
-lines (pgp_encrypt_only_command and pgp_encrypt_sign_command) or to
-~/.gnupg/options .
-
-
-S/MIME Support
-~~~~~~~~~~~~~~
-See README.SMIME for details.
-
-
-About temporary files and security
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-When using mutt to view an encrypted message, the plain text is saved in
-a temporary file. If you have reasons to worry an attacker may recover
-the deleted file from your hard disk please take appropriate actions to
-prevent this (e.g. use a ramdisk or shred(1) or wipe(1)).
-Also don't forget about the temporary files created by your editor.
-Mutt creates temporary files in a secure way. See #222125 for details.
-
-
-/etc/Muttrc.d/
-~~~~~~~~~~~~~~
-The default /etc/Muttrc will source more configuration directives from
-files in the /etc/Muttrc.d/ directory ending in ".rc".
-The system administrator may use the directory for local customizations
-and packages enhancing mutt may use it to install their configuration
-directives.
-The directory is processed last in /etc/Muttrc, so that settings there
-may override the defaults from the file.
-
- -- Christoph Berg <myon@debian.org> Sat, 03 Nov 2007 21:02:26 +0100
+++ /dev/null
-This package uses quilt to manage all modifications to the upstream
-source. Changes are stored in the source package as diffs in
-debian/patches and applied during the build.
-
-To configure quilt to use debian/patches instead of patches, you want
-either to export QUILT_PATCHES=debian/patches in your environment
-or use this snippet in your ~/.quiltrc:
-
- for where in ./ ../ ../../ ../../../ ../../../../ ../../../../../; do
- if [ -e ${where}debian/rules -a -d ${where}debian/patches ]; then
- export QUILT_PATCHES=debian/patches
- fi
- done
-
-To get the fully patched source after unpacking the source package, cd to
-the root level of the source package and run:
-
- quilt push -a
-
-The last patch listed in debian/patches/series will become the current
-patch.
-
-To add a new set of changes, first run quilt push -a, and then run:
-
- quilt new <patch>
-
-where <patch> is a descriptive name for the patch, used as the filename in
-debian/patches. Then, for every file that will be modified by this patch,
-run:
-
- quilt add <file>
-
-before editing those files. You must tell quilt with quilt add what files
-will be part of the patch before making changes or quilt will not work
-properly. After editing the files, run:
-
- quilt refresh
-
-to save the results as a patch.
-
-Alternately, if you already have an external patch and you just want to
-add it to the build system, run quilt push -a and then:
-
- quilt import -P <patch> /path/to/patch
- quilt push -a
-
-(add -p 0 to quilt import if needed). <patch> as above is the filename to
-use in debian/patches. The last quilt push -a will apply the patch to
-make sure it works properly.
-
-To remove an existing patch from the list of patches that will be applied,
-run:
-
- quilt delete <patch>
-
-You may need to run quilt pop -a to unapply patches first before running
-this command.
+++ /dev/null
-package-status: mutt mutt-patched mutt-dbg
+++ /dev/null
-#!/bin/sh
-
-echo "Including output of \`mutt -v'..."
-
-LC_ALL=C mutt -v >&3
+++ /dev/null
-mutt (1.5.19-2) experimental; urgency=low
-
- * Recommends: libsasl2-modules. Technically, we depend on libsasl2-2 which
- already recommends this package, but not having it installed just confuses
- too many users.
- * Use upstream's smime.rc file, hereby fixing S/MIME encryption.
- (Closes: #315319)
- * Grab two patches from upstream that should also go into lenny:
- + Always sort inode list for accessing header cache. (Closes: #508988)
- + Delete partially downloaded files in message cache. (Closes: #500016)
- * Add Antonio Radici to Uploaders. Thanks for the BTS triaging!
-
- -- Christoph Berg <myon@debian.org> Thu, 05 Feb 2009 23:26:41 +0100
-
-mutt (1.5.19-1) experimental; urgency=low
-
- * New upstream version.
- + Header weeding changed in default config; now we ignore * and unignore
- from: subject to cc date x-mailer x-url user-agent. (Mutt: #286)
- + $move now defaults to "no" instead of "ask-no".
- * Upstream dropped changelog.old, so do we.
- * Temporarily disable building mutt-patched until an updated sidebar patch
- is available.
-
- -- Christoph Berg <myon@debian.org> Thu, 15 Jan 2009 23:47:29 +0100
-
-mutt (1.5.18-4) unstable; urgency=low
-
- * In order to evade a conflict with the sidebar patch, move the set_xterm_*
- prototypes from pager.c to mutt_menu.h. No functional change.
- * Introduce two new patches that revert the conflicting part of the
- maildir-mtime patch before applying the sidebar patch, and afterwards
- re-apply the relevant bits. This mitigates the chance of bugs being
- introduced when manually resolving conflicts with new versions of the
- sidebar patch. This fixes new mail detection in the mutt-patched package.
- (Closes: #484537, #484538)
-
- -- Christoph Berg <myon@debian.org> Sun, 03 Aug 2008 00:51:58 +0200
-
-mutt (1.5.18-3) unstable; urgency=low
-
- * Pull patch from upstream to fix multipart decoding. (Closes: #489283)
- * Add example sidebar config, thanks Stefano Zacchiroli. (Closes: #460452)
- * (Finally) compile with native Kerberos GSSAPI support. (Closes: #469483)
- * Add a switch in debian/rules to make building mutt-patched configurable.
-
- -- Christoph Berg <myon@debian.org> Sun, 20 Jul 2008 01:35:03 +0200
-
-mutt (1.5.18-2) unstable; urgency=low
-
- * Updated sidebar patch, does not display (NULL) anymore. (Closes: #483151)
- * Install reportbug script to inform us about the status of installed
- mutt packages.
- * Use dh_lintian (prefix with '-' so we do not need to bump the DH level).
- * Register mutt as message/rfc822 application in /etc/mailcap.
- (Closes: #474539)
- * Refresh some patches to get rid of -p0 in series file.
- * Bump Standards-Version; add debian/README.source.
- * Switch Maintainer and Uploader as suggested by Dato.
-
- -- Christoph Berg <myon@debian.org> Thu, 12 Jun 2008 23:53:46 +0200
-
-mutt (1.5.18-1) unstable; urgency=low
-
- * New upstream version.
- + Query menu format is configurable. (Closes: #66096, Mutt: #170)
- + Quote attachment filenames starting with '='.
- (Closes: #351890, Mutt: #1719)
- + Mention that References: and Date: cannot be changed in editor.
- (Closes: #191850, Mutt: #1234).
- * Refreshing patches from upstream:
- + compressed-folders.
- + sidebar. (Closes: #470657)
- * Update doc-base section.
-
- -- Christoph Berg <myon@debian.org> Sat, 24 May 2008 19:36:44 +0200
-
-mutt (1.5.17+20080114-1) unstable; urgency=low
-
- * New upstream snapshot (hg 130aa0517251), and this time build a proper
- orig.tar.gz tarball.
- + Fixes message corruption/duplication. (Closes: #459739)
-
- -- Christoph Berg <myon@debian.org> Mon, 14 Jan 2008 23:26:14 +0100
-
-mutt (1.5.17-2) unstable; urgency=low
-
- * Build a mutt-patched package to apply the sidebar patch. Thanks to Dato
- who had the right idea for the necessary debian/rules magic during the
- recent debian-qa meeting in Extremadura. (Closes: #277637)
- * Build a mutt-dbg package, and bump DH level to 5.
- * Grab current hg tip from upstream (68a9c3e74f9a).
- + Fixes "mailto:" URL parsing.
- (Closes: #426148, #426158, #446016, Mutt: #2968, #2980)
- + 'set folder= =' won't segfault. (Closes: #448728)
- + Improve DSN docs. (Closes: #436228)
- * Bump Standards-Version, add Homepage field.
-
- -- Christoph Berg <myon@debian.org> Tue, 01 Jan 2008 20:00:33 +0100
-
-mutt (1.5.17-1) unstable; urgency=low
-
- [ Adeodato Simó ]
- * Move the packaging back to Bazaar, adjust X-VCS-* accordingly.
-
- [ Christoph Berg ]
- * Mention libsasl2-modules-gssapi-mit in README.Debian. (Closes: #433425)
- * Call autoreconf at build time, drop the autotools-update patch.
- * Update menu file, add lintian override file.
- * Refresh patches.
-
- * New upstream version:
- + fix segfaults with single byte 8-bit characters in index_format.
- (Closes: #420598, Mutt: #2882)
- + properly render subject headers with encoded linefeeds.
- (Closes: #264014, Mutt: #1810)
- + only calls gnutls_error_is_fatal when gnutls_record_recv returns a
- negative value. (Closes: #439775, Mutt: #2954)
- + Large file support for mutt_pretty_size().
- (Closes: #352478, #416555, Mutt: #2191)
- + Do not consider empty pipes for filtering in format strings.
- (Closes: #447340)
-
- -- Christoph Berg <myon@debian.org> Sat, 03 Nov 2007 23:00:04 +0100
-
-mutt (1.5.16-3) unstable; urgency=medium
-
- * Fix the maildir-mtime patch change in 1.5.14+cvs20070403-1 that broke
- new mail message count in IMAP folders. (Closes: #421468, #428734, #433275)
-
- -- Adeodato Simó <dato@net.com.org.es> Thu, 19 Jul 2007 23:41:02 +0200
-
-mutt (1.5.16-2) unstable; urgency=low
-
- * Finally a new unstable version :)
- * Disable gpgme backend again, it needs two "optional" libs we do not want
- to pull into "standard" now, and it is still somewhat buggy.
- Reopens: #263443.
- * Use gdbm instead of bdb for the cache files.
- * Enable sensible_browser_position patch.
-
- -- Christoph Berg <myon@debian.org> Thu, 28 Jun 2007 21:58:47 +0200
-
-mutt (1.5.16-1) experimental; urgency=low
-
- * New upstream version.
- * compressed-folders: grab updated patch, thanks Roland.
-
- -- Christoph Berg <myon@debian.org> Thu, 14 Jun 2007 10:54:56 +0200
-
-mutt (1.5.15+20070608-1) experimental; urgency=low
-
- * Muttrc.head: Temporarily set pipe_decode in the \cb urlview macro.
- Closes: #423640.
- * Apply patch by pywatson@gmail.com to strdup strings when sorting.
- Mutt: #2515, Closes: #196545.
-
- -- Christoph Berg <myon@debian.org> Fri, 08 Jun 2007 11:19:08 +0200
-
-mutt (1.5.15+20070515-1) experimental; urgency=low
-
- * New snapshot.
- + Removed hardcoded pager progress indicator and add %P format code to
- $pager_status which contains the same information.
- Mutt: #2087, Closes: #259145.
- * $smime_verify_opaque_command: fallback to -noverify.
- Mutt: #2428, Closes: #420014.
-
- -- Christoph Berg <myon@debian.org> Thu, 17 May 2007 14:15:48 +0200
-
-mutt (1.5.15+20070412-1) experimental; urgency=low
-
- * New snapshot:
- + Avoid altering the argument to mutt_complete() when completion fails.
- Mutt: #2871, Closes: #367405
- + Allow reply-hook to use ~h when replying from the index.
- Mutt: #2866, Closes: #362919
- + Exit with a nonzero value if sending a message in batch mode fails.
- Mutt: #2709, Closes: #273137
- + Make mutt more posixly-correct. Mutt: #1615, Closes: #204904
-
- -- Christoph Berg <myon@debian.org> Thu, 12 Apr 2007 17:04:05 +0000
-
-mutt (1.5.14+cvs20070403-1) experimental; urgency=low
-
- * set ssl_ca_certificates_file="/etc/ssl/certs/ca-certificates.crt".
- * Use /etc/ssl/certs/ca-certificates.crt as smime_ca_location if there is
- none in ~/.smime/ (Closes: #255653).
- * New snapshot:
- + Make mutt_edit_file display error if editor return is non-zero
- (Closes: #209244).
- + Use ~/.muttrc as the default alias_file if no user muttrc exists
- (Closes: #226500).
- + Reset list.name before each list response in folder browser
- (Mutt: #2444, Closes: #377783).
- + Fix segfault when trying to read header cache if cwd does not exist
- (Mutt: #2714, Closes: #387560).
- + Make message cache write to temporary location until file is complete
- (Closes: #394383).
- + Use RECENT for first mailbox check if header cache check fails
- (Closes: #372512).
- * Patches:
- + maildir-mtime: refreshed.
-
- -- Christoph Berg <myon@debian.org> Tue, 3 Apr 2007 20:54:35 +0200
-
-mutt (1.5.14+cvs20070321-1) experimental; urgency=low
-
- * Move source package to http://hg.debian.org/hg/pkg-mutt/debian-mutt.
- * debian/control: Add XS-Vcs fields.
- * New snapshot:
- + More space for the "help" string (Closes: #415277).
- + --buffy-size is a config option, $check_mbox_size (Closes: #379472).
- * Patches:
- + gpg.rc: upstream ships without absolute paths, our patch is much simpler
- now.
- + compressed-folders: refreshed.
- * Mention /etc/Muttrc defaults in documentation (Closes: #388667).
- * debian-ldap-query: Support middle names (Closes: #415653).
-
- -- Christoph Berg <myon@debian.org> Wed, 21 Mar 2007 21:54:08 +0100
-
-mutt (1.5.14+cvs20070315-1) experimental; urgency=low
-
- * New upstream snapshot (now from mercurial).
- + send_charset supports charset-hook'd charsets (Closes: #152444).
- + Regex for color patterns can be > 256 chars long (Closes: #229801).
- + Reduces massive strcat use (Closes: #290701).
- + Uses realpath of folders in the cache (Closes: #298121).
- + Wraps help correctly on utf-8 terminals (Closes: #328921).
- + Fixes typos in muttrc.5 (Closes: #366413).
- + Requery IMAP capabilities after login (Closes: #384076).
- + Various mutt.1 updates (Closes: #332803, #355912, #366413, #394256).
- + The key binding documentation is now auto-generated, thereby documenting
- some missing functions (Closes: #413144).
- + Previously fixed: IMAP hangs (Closes: #413715).
- * Split up Muttrc into separate files in /etc/Muttrc.d/.
- * charset.rc: iconv-hooks for some commonly misused charsets
- (Closes: #402027).
- * Add compatibility alias file_charset for attach_charset (got renamed when
- the assumed-charset patch went upstream).
- * Patches:
- + compressed-folders: synced with upstream.
- + compressed-folders.ranty-fix: removed, went upstream.
- * Packaging:
- + Use quilt.make.
- + Move patchlist sorting into patchlist.sh.
-
- -- Christoph Berg <myon@debian.org> Thu, 15 Mar 2007 14:11:31 +0100
-
-mutt (1.5.14+cvs20070301-1) experimental; urgency=low
-
- * New upstream snapshot. Hilights:
- + Now features ESMTP support, yay!
- + PKA support via gpgme.
- + Ability to save history.
- * Enable gpgme backend (Closes: #263443).
- * Move mail-transport-agent from Depends to Recommends (Closes: #356297).
- * /etc/Muttrc:
- + Do not unset write_bcc (Closes: #304718).
- + Do not unset use_from and use_domain (Closes: #283311, #398699).
- + Add quotes for compressed folder hooks (Closes: #238034),
- + mime_lookup application/octet-stream.
- * Patches:
- + assumed-charset: removed, applied upstream.
- + xtitles: Removed a comment on the default of xterm_set_titles (mentioned
- in #366413).
- * colors.angdraug: Fix spelling (Closes: #295241).
- * gpg.rc: add full path for pgpewrap (Closes: #396207).
- * Update copyright holders.
-
- -- Christoph Berg <myon@debian.org> Thu, 1 Mar 2007 22:48:53 +0100
-
-mutt (1.5.13+cvs20070215-1) experimental; urgency=low
-
- * Update to a CVS snapshot:
- Closes: #47284: newlines/spaces are removed from custom multiple header
- lines
- Closes: #397858: /usr/bin/mutt_dotlock: off-by-one error in mutt_dotlock.c
- Closes: #400831: logic error in mutt-1.5.13/account.c
- Closes: #404916: sort-mailbox by spam tag score sorting strangeness
- Closes: #410678: crash when IMAP server skips messages during a FETCH
- without a cast.
-
- * Patches:
- + Reshuffle patches to move autotools-needing/updating to front.
- + compressed-folders: refreshed.
- + autotools-update: updated.
- + tempfile-race, thread_pattern_in_UPDATING: removed, included upstream.
-
- New patches:
- + ifdef: test for presence of features, patch by Cedric Duval.
- + trash-folder, purge-message: trash folder support, also by Cedric Duval
- (Closes: #263204).
-
- Patches shipped but not applied by default:
- + chdir: change working directory.
- + indexcolor: color index colums.
- + w3mface: display X-Face headers using w3mimgdisplay.
-
- * Create /etc/Muttrc.d/ (Closes: #391961).
- * Make sure reldate.h is found while building the docs.
-
- -- Christoph Berg <myon@debian.org> Fri, 16 Feb 2007 02:04:35 +0100
-
-mutt (1.5.13-2) experimental; urgency=low
-
- * Adding myself as uploader, thanks Dato.
- * debian/rules:
- + Actually support DEB_BUILD_OPTIONS=noopt.
- + Do not touch stamp-h.in, touch PATCHES in clean.
- * Patches:
- + Moved xtitles to features/ and fixed a segfault (Closes: #365683).
-
- -- Christoph Berg <myon@debian.org> Mon, 12 Feb 2007 18:37:44 +0100
-
-mutt (1.5.13-1.1etch1) stable; urgency=low
-
- * Stable update.
- * Grab patch from upstream:
- Add imap_close_connection to fully reset IMAP state (Closes: #413715).
- * Add myself to Uploaders, thanks Dato.
-
- -- Christoph Berg <myon@debian.org> Tue, 15 May 2007 09:59:24 +0200
-
-mutt (1.5.13-1.1) unstable; urgency=high
-
- * Non-maintainer upload.
- * Add upstream patch to fix insecure temp file generation
- (Closes: #396104, CVE-2006-5297, CVE-2006-5298).
-
- -- Christoph Berg <myon@debian.org> Tue, 12 Dec 2006 14:49:24 +0100
-
-mutt (1.5.13-1) unstable; urgency=low
-
- * New upstream release, with a new pattern to match full threads (see
- NEWS.gz).
-
- -- Adeodato Simó <dato@net.com.org.es> Wed, 16 Aug 2006 15:22:53 +0200
-
-mutt (1.5.12-1) unstable; urgency=low
-
- * New upstream release. Ship upstream's UPDATING file as NEWS.gz in
- /usr/share/doc/mutt.
-
- -- Adeodato Simó <dato@net.com.org.es> Sat, 15 Jul 2006 02:49:50 +0200
-
-mutt (1.5.11+cvs20060403-2) unstable; urgency=high
-
- * Fix CVE-2006-3242, stack-based buffer overflow when processing an overly
- long namespace from the IMAP server. (Closes: #375828)
-
- -- Adeodato Simó <dato@net.com.org.es> Fri, 7 Jul 2006 15:01:28 +0200
-
-mutt (1.5.11+cvs20060403-1) unstable; urgency=low
-
- * Update to CVS 2006-04-03, which finally:
- + fixes segfault when changing to an IMAP folder and the mailbox name
- is implicitly INBOX. (Closes: #351337, #353550)
-
- -- Adeodato Simó <dato@net.com.org.es> Tue, 4 Apr 2006 06:10:12 +0200
-
-mutt (1.5.11+cvs20060330-1) unstable; urgency=low
-
- * Update to CVS 2006-03-30, which fixes the following bugs:
- + IMAP cache works again with Courier. (Closes: #351220)
- + does not segfault if external query command output contains spaces.
- (Closes: #351258)
- + does not segfault when replying from the view-attachments menu when a
- reply-hook is in use. (Closes: #352357)
- + default save location for attachments which specify a path in their name
- is not `dirname $attachment` anymore, but $CWD. (Closes: #301236)
-
- * Switch to libdb4.4. (Closes: #355433)
-
- -- Adeodato Simó <dato@net.com.org.es> Mon, 3 Apr 2006 02:41:15 +0200
-
-mutt (1.5.11+cvs20060126-2) unstable; urgency=medium
-
- * Make imap_idle default to off, since it does not work with dovecot from
- stable, which a lot of people use; upstream will make this change before
- 1.5.12. (Closes: #351263, #354902)
-
- * Ignore DKIM-Signature by default in /etc/Muttrc. (Closes: #354907)
-
- -- Adeodato Simó <dato@net.com.org.es> Thu, 2 Mar 2006 22:42:34 +0100
-
-mutt (1.5.11+cvs20060126-1) unstable; urgency=low
-
- * Update to CVS 2006-01-26; since this includes a huge diff between
- ChangeLog and ChangeLog.old (moved entries), prepare a new tarball.
- Some worth-mentioning changes:
-
- + Mutt can now expand its own variables as it does with envvars; for
- example, it's now possible to put something like this into a hook:
- set sendmail="mysmtp -f $from".
-
- + Support for user-defined variables starting with my_; environment
- variables take precedence, and expansion does not occur in shell-escape.
-
- + Pattern group support, as explained (only!) in:
- <http://does-not-exist.org/mail-archives/mutt-dev/msg05693.html>
-
- + Loooots of improvments in the IMAP code, including sync speed-ups
- (through pipelining), hcache stuff (eg. $imap_cachedir), and things
- like $imap_idle and support for the "old" flag in IMAP folders.
-
- * Rework the package build system to fit personal preference:
- + debhelperize debian/rules a bit more.
- + drop dbs in favor of quilt; reorganize patches a bit.
-
- (NOTE: quilt means that dropping patches into debian/patches is
- no longer enough to get them applied; they must be listed in the
- debian/patches/series file.)
-
- * Adjustments to debian/control:
- + use '*' for the bulleted list, instead of 'o'.
- + build-depend on gawk instead of mawk, to have "nextfile".
- + drop conflicts and replaces on packages that are not in woody.
-
- * Updated debian/copyright.
-
- * Added debian/watch.
-
- -- Adeodato Simó <dato@net.com.org.es> Thu, 2 Feb 2006 05:12:18 +0100
-
-mutt (1.5.11-5) unstable; urgency=medium
-
- * Unbreak Mutt in Turkish locales (tr_TR): include patch from CVS to use the
- proper strcmp function in several places. Upstream bug #2144, reported in
- both BTS by Recai Oktas. (Closes: #343655)
-
- * Apply patch from Nik A. Melchior to fix formatting problem in muttrc(5).
- (Closes: #343030)
-
- -- Adeodato Simó <dato@net.com.org.es> Fri, 23 Dec 2005 23:18:44 +0100
-
-mutt (1.5.11-4) unstable; urgency=low
-
- * Update to CVS 2005-11-24 to fix the following bug (yay):
-
- + does not fail to open messages that contain base64-encoded inline PGP
- bits (signature, encrypted hunk, or a key). (Closes: #340116)
-
- Also, do not report success to decrypt an inline PGP message when
- decryption actually failed.
-
- * Again, update my e-mail address in debian/control, yada yada.
-
- -- Adeodato Simó <dato@net.com.org.es> Fri, 25 Nov 2005 02:50:20 +0100
-
-mutt (1.5.11-3) unstable; urgency=low
-
- * Update to CVS 2005-11-01, with the following worth-of-mentioning goodies
- (among others):
-
- + full read/write >2 GB mbox support.
- + attachment counting patch merged upstream (%X in index_format); check
- the "Attachment Searching and Counting" section in the manual for more
- information.
-
- And the following bugs are fixed as well:
-
- + S/MIME keys can be selected from the menu. (Closes: #318470)
- + clarified description of pop_checkinterval. (Closes: #320642)
-
- * Update my e-mail address in debian/control.
-
- -- Adeodato Simó <dato@the-barrel.org> Fri, 11 Nov 2005 02:16:11 +0100
-
-mutt (1.5.11-2) unstable; urgency=low (but fixes critical bug not in testing)
-
- * The fix for coping with mboxes bigger than 2 GB introduced a bug affecting
- at least powerpc (but not i386) which made mutt write Content-Length: 0 in
- mboxes due to a un-updated %ld format specifier. This caused for mail to
- be lost in the next mbox write.
-
- Apply a patch quickly provided by upstream (thanks, Brendan Cully!) that
- makes mutt use the right format specifier. (Closes: #330474)
-
- * Update the compressed folders to the 1.5.11, which includes documentation
- in XML format.
-
- -- Adeodato Simó <asp16@alu.ua.es> Fri, 30 Sep 2005 01:15:28 +0200
-
-mutt (1.5.11-1) unstable; urgency=low
-
- * New upstream release, fixing the following bugs:
-
- + ~h can match folded headers. (Closes: #319654)
- + implements progress indication when uploading messages to an imap
- folder. (Closes: #228713)
- + limit pattern is properly displayed when zero messages matched.
- (Closes: #242398)
-
- A further CVS pull (2005-09-24) fixes the following bugs:
-
- + can open mboxes bigger than 2 GB. (Closes: #296940)
- + does not require GPG_TTY to be set in order to accept using the GnuPG
- agent: it'll set the variable itself if not present. (Closes: #316388)
- + does not segfault when replying to a message if content_type is unset.
- (Closes: #329306)
- + does not segfault with IMAP folder completion. (Closes: #329442)
-
- Packaging changes needed:
-
- + Upstream documentation now comes in XML, so changed Build-Dependency on
- linuxdoc-tools-text and groff to xsltproc, docbook-xml, docbook-xsl and
- links. Added patch debian/patches/doc_build_adjustments.diff to force
- the use of links instead of lynx for generating the text version of the
- manual, and to not ignore errors from links and xsltproc.
-
- + Changed --with-sasl2 to its new name --with-sasl in debian/rules;
- removed extra hunk on debian/patches/patch-1.5.4.Md.sasl2-1arc.
-
- + Rediffed 080_Md.Muttrc, removed patch.asp.fix-bug-266493.1 (applied
- upstream).
-
- + Temporarily removed documentation from the compressed-folders patch,
- until upstream reacts to the move to XML.
-
- * Build against libgnutls12 (build-depend on libgnutls-dev instead of
- libgnutls11-dev). (Closes: #323279)
-
- * Remove spurious dash in argument to -encrypt in smime_encrypt_command.
- (Closes: #315319)
-
- -- Adeodato Simó <asp16@alu.ua.es> Sun, 25 Sep 2005 23:11:59 +0200
-
-mutt (1.5.10-1) unstable; urgency=low
-
- * New upstream release, fixing the following bugs:
- + does not store gpg passphrase when signing or decrypting has failed,
- since that probably means it was wrong. (Closes: #132548)
- + does not fail to delete attachments in unencrypted mails. (Closes:
- #302500)
-
- * New functionality overview or otherwise noticeable news:
- + $imap_check_subscribed variable to add the list of subscribed folders to
- the buffy list.
- + $braille_friendly variable to make Mutt more usable for blind users.
- + $imap_login variable in case the login name on the IMAP server is
- different to the name of the account ($imap_user).
- + -D command line option to dump current configuration, after all
- initialization files have been read.
- + $imap_force_ssl gone.
- + an empty limit is now interpreted as a request to cancel the current
- limit.
-
- * Patches:
- + 080_Md.paths_mutt.man: adjusted; upstream build system puts now the
- right paths in mutt.1 using @bindir@. Install mutt.1 instead of mutt.man
- in debian/rules.
- + 080_Md.Muttrc: don't set menu_move_off in /etc/Muttrc since the
- compile-time default is now what we want (pre-1.5.7 compatible).
- + edit-threads, current-shortcut, incomplete-mbyte: removed, integrated
- upstream.
- + maildir-mtime: s/if/ifdef/ to get it to apply.
- + compressed-folders: updated to 1.5.10.
-
- * Upstream now builds "complete" documentation, i.e., for all features
- whether enabled or not. Disable that for Debian. [patch.docs-match-config.h]
-
- * Build-Depend on autotools-dev and use updated config.{guess,sub} at build
- time to fix FTBFS on GNU/kFreeBSD. (Closes: #302735)
-
- * Update Standards-Version to 3.6.2 (no changes required).
-
- * Set myself as the maintainer, and remove Marco from Uploaders as agreed
- with him.
-
- -- Adeodato Simó <asp16@alu.ua.es> Mon, 15 Aug 2005 15:51:55 +0200
-
-mutt (1.5.9-2sarge2) stable-security; urgency=high
-
- * Fix buffer overflow in IMAP parsing code
-
- -- Moritz Muehlenhoff <jmm@debian.org> Wed, 28 Jun 2006 17:12:05 +0000
-
-mutt (1.5.9-2sarge1) stable; urgency=low
-
- * For attachments marked for deletion after the message is sent, don't
- remove them if the message is finally cancelled, or if the attachments
- are dropped from the message prior to sending. (Closes: #332972)
-
- -- Adeodato Simó <dato@net.com.org.es> Tue, 31 Jan 2006 01:23:28 +0100
-
-mutt (1.5.9-2) unstable; urgency=high
-
- * Added a missing Build-Depend on mawk. (Closes: #310039)
- * Updated the Swedish translation.
-
- -- Adeodato Simó <asp16@alu.ua.es> Sun, 22 May 2005 17:29:25 +0200
-
-mutt (1.5.9-1) unstable; urgency=medium
-
- * New upstream release, though the previous upload already included most of
- it because of the CVS pull. Do another one now (2005-04-03), including the
- following bits from 1.5.10:
- + several translation updates (de, id, nl, pl, ru).
- + a patch by Daniel Jacobowitz to synchronise message flags before moving
- messages. (Closes: #163616)
-
- * Also, the header cache patch is now fully integrated upstream, so drop it.
-
- * Don't set pipe_default in debian/patches/080_Md.Muttrc, and stick to
- upstream's default (unset). (Closes: #300830)
-
- * Updated the compressed folders patch to version 1.5.9.
-
- * Updated patch 080_Md.Muttrc to restore the old behaviour of the index.
-
- -- Adeodato Simó <asp16@alu.ua.es> Sun, 03 Apr 2005 20:08:39 +0200
-
-mutt (1.5.8-1) unstable; urgency=low
-
- * New upstream release, with a CVS pull to get all the translation updates
- that happen right after a release. New features worth mentioning:
- + the PGP auto decode patch by Derek Martin has been accepted upstream,
- so inline PGP messages are automatically verified/decrypted now if
- $pgp_auto_decode is set. (Closes: #269699)
- + IDN decoding can be disabled by unseting $use_idn (set by default).
- + new hook 'send2-hook', which gets executed each time there is a change
- in a message being composed. This permits, for example, to match against
- recipients added manually after writing the mail, which wasn't possible
- with 'send-hook' alone.
- + Christoph Berg's menu_context patch is also included. Check the
- $menu_context and $menu_move_off variables.
-
- * This version also includes the following fixes:
- + message flags are not lost after editing a message. (Closes: #275060)
- + IMAP folder paths ending with the delimiter are trimmed so that they
- don't fail to open with some servers, e.g. Courier. (Closes: #277665)
- + the correct charset is used when signing a forwarded message.
- (Closes: #295528)
- + correctly forget the S/MIME passphrase. (Closes: #300516)
-
- * Explicitly pass --enable-inodesort to ./configure, since upstream has
- disabled it by default in this version.
-
- * Updated the compressed folders patch to version 1.5.8.
-
- * Dropped the adjust_line and adjust_edited_file patches from
- extra-patches/mutt-ja-compat, incorporated upstream. Renamed
- mutt-ja-compat to assumed-charset, since that's the only patch that
- remains.
-
- * Lots of patches in the Debian package have been applied upstream, drop
- them (16 in total). Worth mentioning is the gnutls patch. The
- maildir_inode_sort patch has been adopted too, with the static functions
- no longer being nested, which closes: #287744 (FTBFS with gcc-4.0).
-
- * Implemented a conf.d style directory for mutt: other packages or local
- admins may now drop configuration snippets in /etc/Muttrc.d/*.rc and have
- them sourced at the end of the default Muttrc. (Closes: #285574)
-
- * Updated the header cache patch to version 28. The size of this patch has
- been drastically reduced, since the generic code and the IMAP support has
- been incorporated upstream.
-
- * Updated the compressed folders patch to version 1.5.8.
-
- * Use mixmaster-filter by default. (Closes: #299060)
-
- -- Adeodato Simó <asp16@alu.ua.es> Fri, 25 Mar 2005 21:55:52 +0100
-
-mutt (1.5.6-20040907+3) unstable; urgency=high
-
- * Upload targeted at sarge to include some must-have fixes.
-
- * Include small patch to fix imap-related segfaults in ia64, due to a buffer
- length being declared as int instead of size_t in the gnutls patch. Thanks
- to David Mosberger for spotting the problem. (Closes: #234783, #285001)
- [New file: upstream/extra-patches/gnutls.59.size_t-fix]
-
- * Include (finally!) a patch that really prevents decrypt-save from deleting
- the message if the supplied password was wrong. (Closes: #275188)
- [New file: upstream/patches/decrypt-save_non-empty-output]
-
- * Updated the header-cache patch to version 25, which includes a fix to make
- it possible for hcache to talk to broken Lotus IMAP servers. (Closes: #282451)
- [Modified file: upstream/extra-patches/header-cache]
-
- * The mutt BTS has been closed due to excessive spam in their debbugs
- installation. Included the patch that substitutes flea and flea.1 by a
- note that states so.
- [New file: upstream/patches/empty-muttbug,
- removed file: debian/patches/080_Md.muttbug]
-
- * Removed /usr/share/bug/mutt/presubj, now useless.
-
- * Added Domainkey-Signature to the list of ignored headers.
- [Modified file: debian/patches/080_Md.Muttrc]
-
- -- Adeodato Simó <asp16@alu.ua.es> Fri, 28 Jan 2005 19:02:58 +0100
-
-mutt (1.5.6-20040907+2) unstable; urgency=medium
-
- * A "Let's procrastinate some important stuff and fix a bunch of mutt bugs
- instead" release.
-
- * Include small patch to fix the Swedish translation, which was making
- impossible to turn off pgp signing and/or encrypting. (Closes: #281265)
- [New file: upstream/patches/i18n-sv-fix.diff]
-
- * Make the default Muttrc work out the box for people using gnupg-agent.
- Wrote and applied a one-line patch to make the %?p? conditional escape
- work correctly, patch forwarded upstream. (Closes: #277646)
- [New file: debian/patches/patch.asp.%p-escape-agent-compatible.1]
-
- * Relocate the definition of the USE_GNUTLS macro, so that it gets passed to
- the documentation build process too. Otherwise, options that end up in the
- manual wouldn't match those that are really compiled in. (Closes: #278124)
- [Modified files: debian/rules, upstream/extra-patches/gnutls.debian]
-
- * Honour /etc/alternatives/pager in the muttbug script. (Closes: #275448)
- [Modified file: debian/patches/080_Md.muttbug]
-
- * Include patch by Nicolas François <nicolas.francois@centraliens.net> to
- fix typo in muttrc.5. (Closes: #272579)
- [New file: debian/patches/patch.nf.fix-bug-272579.1]
-
- * Updated the (formerly unmaintained) current-shortcut patch with a new
- version by Christoph Berg <cb@df7cb.de>. Now the actual used Fcc will be
- shown instead of '^' when you folder-hook . 'set record="^"'.
- [Modified file: upstream/extra-patches/current-shortcut]
-
- * Updated the header-cache patch to version 24.
-
- -- Adeodato Simó <asp16@alu.ua.es> Wed, 17 Nov 2004 15:17:14 +0100
-
-mutt (1.5.6-20040907+1) unstable; urgency=low
-
- * Updated to CVS snapshot 20040907 (includes updated ja translation).
-
- * The maildir-mtime patch is now NOT enabled by default, you need to set the
- maildir_mtime variable in your ~/.muttrc. This variable has been necessary
- since people with large maildirs over NFS experienced a large performance
- impact with the mtime patch enabled. (Closes: #253261)
-
- * Updated the header cache patch to version 21. This fixes a file descriptor
- leak which could cause problems for people who keep their mutt open for a
- long time. Also includes support for per-folder cache: setting $header_cache
- to a directory will enable it, and you should experience some performance
- gains.
-
- * Included the current shortcut patch. It's completely unintrusive and
- allows you to specify ^ as a shortcut for the current folder (e.g., in a
- Fcc). (Closes: #253104)
-
- * Updated the autotools stuff. Include in it also stuff from patches, so
- that --enable-foo options can be used in debian/rules. Put files directly
- in extra/autotools and cp from there in debian/rules instead of using a
- patch file (which was too big due to automake1.4/autoconf2.13 => 1.8/2.50
- migration).
-
- * debian/rules:
- + use --enable-compresed --enable-hcache --without-gdbm in configure.
- + copy autotools files from extra/autotools when unpacking, and emulate
- the 000_Md.config.h.in patch.
-
- * debian/patches/:
- + removed 000_Md.config.h.in, no longer needed since config.h.in is now
- overwritten from extra/autotools.
- + added patch.asp.fix-bug-266493.1, which makes mutt not wait for a
- keypress to handle SIGWINCH in certain situations. (Closes: #123943,
- #266493)
-
- -- Adeodato Simó <asp16@alu.ua.es> Tue, 21 Sep 2004 01:39:22 +0200
-
-mutt (1.5.6-20040818+1) unstable; urgency=low
-
- * The post-Sarge era officially begins for mutt. This mostly means
- that patch inclusion policy will untighten a bit.
-
- * Added the maildir/imap header caching patch by Thomas Glanzmann, see:
- <http://wwwcip.informatik.uni-erlangen.de/~sithglan/mutt>. For a quick
- start, read documentation for the $header_cache variable.
- (Closes: #242762, #255475)
-
- * Added the maildir-mtime patch by Dale Woolridge, see
- <http://www.mutt.ca/maildir-mtime.html>. This patch should make happy
- users that use maildir and have $sort_browser=reverse-date.
- (Closes: #253261)
-
- * Reorganized patches location:
- + patches not written by the mutt maintainers are now in the
- upstream/extra-patches directory.
- + each patch in that directory now contains a preamble listing:
- - the patch author
- - the patch home page
- - last time patch was updated
- - exact URL to the patch file
- - applied changes, if any
- + all preambles are available in the doc/README.Patches file, and
- debian/copyright now points to this file too.
-
- * Other changes in upstream/extra-patches/:
- + updated the edit-threads patch.
- + updated the compressed-folders patch.
-
- * Updated to CVS snapshot 20040818:
- + various memory leaks spotted and fixed.
- + several translations updated: pl, sv, fr, id, nl, de, ca, cs.
- The Czech translation addresses a bad chosen shorcut in the crypt menu,
- and thus closes: #140639. Updated German translation closes: #265120.
- + fix some UI flaws in the new PGP and S/MIME menus which could easily
- make the user send in clear mail which was meant to be signed and/or
- encrypted (the (e)ncrypt, (s)ign and (b)oth commands were toggles).
- Also renamed the (f)orget action to (c)lear for newbie's benefit; accept
- the (f) key for long time users' benefit.
- + make mutt not hang if STARTTLS fails to complete the SSL handshake.
- + try all methods in $imap_authenticators when one of them fails;
- previously mutt would give up upon the first of them failing.
-
- * debian/:
- + scripts/vars: add upstream/extra-patches to SRC_PATCH_DIR.
- + control: Build-Depend on libdb4.2-dev for the header-cache patch.
- + rules: call scripts/patch-preamble to create the README.Patches file.
- + copyright: add pointer to README.Patches, where patch authors are listed.
-
- * debian/patches/:
- + updated 000_VERSION to reflect new snapshot date.
- + removed obsolete #defines from 000_Md.config.h.in. Added #include
- "debian-config.h" there, which is used by upstream/extra-patches/*.debian.
- + removed patch.asp.fix-bug-260578.1, included upstream.
-
- * debian/rules: sort the PATCHES file, which is printed by `mutt -v`.
-
- -- Adeodato Simó <asp16@alu.ua.es> Sat, 21 Aug 2004 20:53:39 +0200
-
-mutt (1.5.6-20040803+1) unstable; urgency=low
-
- * Updated to CVS snapshot 20040803:
- + fixes the code that closed #213412.
- * debian/control:
- + Rebuilt against gnutls11. (Closes: #263067, #263625)
- + List myself in Uploaders field.
- * debian/patches/:
- + updated 000_VERSION to reflect new snapshot date.
- + removed patch-1.5.6.tt.compat.1.asp.fix.1, which was not meant to be
- included in the last upload. (Closes: #261951)
- + update the gnutls patch to include TLS support for POP3 as well. Patch
- provided by Alexander Neumann <alexander@debian.org>. (Closes: #260638)
-
- -- Adeodato Simó <asp16@alu.ua.es> Thu, 5 Aug 2004 18:13:33 +0200
-
-mutt (1.5.6-20040722+1) unstable; urgency=high
-
- * Updated to CVS snapshot 20040722:
- + bugfixes:
- - does not segfault when chdir'ing to a directory without read
- permission. (Closes: #237426)
- - does not segfault when applying check-traditional-pgp to multiple
- messages. (Closes: #257277)
- - uses the right From address when composing a new message from the
- pager and $reverse_name is set. (Closes: #249870)
- - initial IMAP header download does not take quadratic time on the
- number of messages. (Closes: #213412)
- + new functionality:
- - support for spam-scoring filters (see §3.24 of the fine manual).
- - $include_onlyfirst: controls whether or not Mutt includes only the
- first attachment of the message you are replying.
- - $hide_thread_subject: when unset, mutt will show the subject for all
- messages in a thread.
- - uses List-Post header when doing list-reply. (Initial RFC 2369 support,
- closes: #49048)
- * debian/patches/:
- + updated 000_VERSION to reflect new snapshot date.
- + updated the following patches to apply cleanly:
- - 001_patch-1.5.4.rr.compressed.1 [Makefile.in]
- - 002_patch-1.5.5.1.admcd.gnutls.59 [globals.h]
- - patch-1.5.3.cd.edit_threads.9.2-1arc [mutt.h]
- + updated patch-1.5.6.tt.compat.1 (does not close #259145).
- + removed patch-1.5.3.Md.gpg-agent, issue fixed upstream.
- + added patch-1.5.6.helmersson.incomplete-mbyte.2 by Anders Helmersson
- to avoid passing incomplete multibyte sequences to regexec(), which can
- cause segfaults due to libc6 Bug#261135. (Closes: #254314, #260623)
- [Yes, this is a sequel, not a dejà -vu.]
- + added patch.asp.fix-bug-{210679,254294,258621,260578}.1, which fix
- several minor issues unaddressed by upstream for some time. All patches
- submitted upstream. (Closes: #210679, #254294, #258621, #260578).
- * debian/rules:
- + be robust to any locale by exporting LC_ALL=C. (Closes: #253048)
- + touch some autotools files to prevent having them to be built again.
- * Using "urgency=high" at maintainer's discretion
-
- -- Adeodato Simó <asp16@alu.ua.es> Wed, 21 Jul 2004 19:31:55 +0200
-
-mutt (1.5.6-20040523+2) unstable; urgency=low
-
- * Renamed patch-1.5.5.1.tt.compat-fix to patch-1.5.5.1.tt.compat.2-fix.
- (Closes: #253048)
-
- -- Marco d'Itri <md@linux.it> Mon, 7 Jun 2004 00:45:40 +0200
-
-mutt (1.5.6-20040523+1) unstable; urgency=low
-
- * This release is based on the work of Adeodato Simó <asp16@alu.ua.es>.
- * Updated to CVS snapshot 20040523:
- + now mutt includes better support for inline/traditional signing and
- encrypting. See http://www.woolridge.ca/mutt/pgp-menu-traditional.html
- for details. (Closes: #190204)
- + sourcing output of a command works again. (Closes: #247007)
- + corrected .PP usage in flea.1 and mbox.5. (Closes: #237827)
- + do not eat chars on rfc822-valid From:address lines (i.e., when there
- is no space between the colon and address; fixes the already archived
- #226759).
- * debian/patches/:
- + added 000_VERSION: reflect CVS snapshot date.
- + removed 081_nbrown.auth_imap_plain: included upstream.
- + added patch-1.5.5.1.tt.compat-fix: introduces a fix for the compat
- patch which prevents mutt from segfaulting when there is binary junk
- in headers. (Closes: #233315, #247366, #249588)
- + removed patch-1.5.4.Md.gpg_by_keyid-1arc: no longer needed.
- (Closes: #250108, #248994)
- + added 004_ranty.fix-compressed: written some time ago by Manuel Estrada
- to prevent mutt from deleting a message if saving to a compressed folder
- fails. In memoriam. (Closes: #210429)
- + added patch-1.5.6.asp.pgp_getkeys: set pgp_getkeys_command in Muttrc.
- Currently commented out because of #172960. (Closes: #237691)
- + 080_Md.Muttrc: make colors respect terminal scheme. (Closes: #86393)
- * debian/rules: pass --enable-debug to configure. (Closes: #198073)
-
- -- Marco d'Itri <md@linux.it> Sun, 6 Jun 2004 01:17:14 +0200
-
-mutt (1.5.6-1) unstable; urgency=low
-
- * New upstream release. Old configuration files may become incompatible,
- see NEWS.Debian.gz for details.
- * Added debian/NEWS.
- * debian/patches/:
- - updated patch-1.5.4.Md.gpg_by_keyid-1arc - pgp_export_command uses %r
- instead %k. (Closes: #223960)
- - updated 002_patch-1.5.5.1.admcd.gnutls.59 - mutt can save server's
- certificate. (Closes: #228607, #234623, #236886)
- - removed 000_VERSION (not needed in this release).
- - removed 004_patch-1.5.5.1.Md.libgnutls10 - included in
- 002_patch-1.5.5.1.admcd.gnutls.59.
- - added 081_nbrown.auth_imap_plain - mutt can authenthicate itself to imap
- server via sasl2 using PLAIN method, thanks to Neil Brown.
- (Closes: #206078, #214758)
- - removed patch-1.5.4.helmersson.incomplete_multibyte because it's broken.
- (Closes: #244549)
- - removed 003_patch-1.4.admcd.gnutlsdlopen.53, now the mutt binary will
- be linked with libgnutls. (Closes: #228279, #228323, #230287)
- - updated patch-1.3.27.bse.xtitles.1 with patch-1.5.5.1.nt.xtitles.3.ab.1.
- * Update the default MTA: Depend on exim4 | mail-transport-agent.
- (Closes: #228560)
- * This release is the work of Artur R. Czechowski.
-
- -- Marco d'Itri <md@linux.it> Sun, 2 May 2004 18:02:10 +0200
-
-mutt (1.5.5.1-20040112+1) unstable; urgency=medium
-
- * Build-Depend on libidn11-dev instead of libidn9-dev
- and libgnutls10-dev instead of libgnutls7-dev. (Closes: #226910, #227426)
- * Updated to CVS snapshot 20040112:
- + fixed manual (Closes: #226936)
- + fixed pgp_retainable_sigs (Closes: #226424)
- * New patch patch-1.4.1.tt.compat.1-ter, a part of mutt-ja which allows
- configuring a default character set to be used for non-MIME messages.
- (Closes: #222191)
- * Added a note about temporary files to README.Debian.
- (Closes: #141143, #222125)
- * New patch 100_arc.smime_descripitive_messages which adds some
- error messages to smime_keys.pl. (Closes: #226696)
- * Conflicts/Replaces mutt-utf8.
- * New patch 004_patch-1.5.5.1.Md.libgnutls10.
- * This release is the work of Artur R. Czechowski.
-
- -- Marco d'Itri <md@linux.it> Sat, 17 Jan 2004 17:50:16 +0100
-
-mutt (1.5.5.1-20040105+1) unstable; urgency=low
-
- * New upstream release:
- + fixed infinite loop during attachment saving. (Closes: #219314, #224654)
- * Updated to CVS snapshot 20040105:
- + fixed a lot of crashes/coredumps.
- (Closes: #141214, #141468, #192341, #197322, #219499, #223663)
- + honor Reply-To while generating Mail-Followup-To headers.
- (Closes: #182526)
- + improved colouring of thread tree. (Closes: #219594)
- + fixed retrieving mail via preauth imap over ssh. (Closes: #209025)
- * debian/rules: added extra-clean target to delete *.orig and *.rej files
- when debian/sys-build.mk make-diff is called.
- * Modified patches to apply without conflicts:
- + 001_patch-1.5.4.rr.compressed.1
- + 003_patch-1.4.admcd.gnutlsbuild.53
- * Suggests libgnutls7 instead libgnutls5 (Closes: #217716), updated
- README.Debian.
- * Added README.SMIME. (Closes: #222903)
- * smime_keys moved to /usr/bin. (Closes: #222905)
- * Suggests ca-certificates and openssl.
- * Killed mutt-utf8.
- * This release is the work of Artur R. Czechowski.
-
- -- Marco d'Itri <md@linux.it> Tue, 6 Jan 2004 15:38:58 +0100
-
-mutt (1.5.4+20031024-1) unstable; urgency=medium
-
- * New CVS snapshot. (Closes: #133021, #207242, #208430, #213007, #213917)
- * Fix FTBFS bug in debian/control. (Closes: #216508)
- * Compiled with libgnutls7. (Closes: #209722)
- * New patch patch-1.5.4.fw.maildir_inode_sort. (Closes: #212664)
- * New patch patch-1.5.4.helmersson.incomplete_multibyte.
- (Closes: #187991, #188605)
- * New patch patch-1.5.4.Md.gpg_by_keyid. (Closes: #210668)
- * Removed README.NFS, as it talks about 2.0 and 2.2 kernels.
- * Removed reference to $AGENT_SOCKET from README.Debian. (Closes: #215412)
-
- -- Marco d'Itri <md@linux.it> Fri, 24 Oct 2003 15:06:01 +0200
-
-mutt (1.5.4+20030913-1) unstable; urgency=medium
-
- * New CVS snapshot. (Closes: #210354, #210423)
- * Added patch-1.5.3.vk.pgp_verbose_mime. (Closes: #201306)
-
- -- Marco d'Itri <md@linux.it> Sat, 13 Sep 2003 15:59:49 +0200
-
-mutt (1.5.4+20030817-1) unstable; urgency=medium
-
- * New CVS snapshot, packaged with the great help of arturcz@hell.pl
- (co-maintainer). (Closes: #138966)
- * Switched to libsasl2. (Closes: #201210)
- * Removed hcache patch.
- (Closes: #189999, #194843, #196832, #196978, #197182, #199052)
- * Updated gnutls patch to 002_patch-1.5.4.admcd.gnutls.56. (Closes: #196117)
- * Removed libdb4.0-dev from Build-Depends (Closes: #204015)
- * /etc/Muttrc: call gpg without a path. (Closes: #193756)
- * locales upgraded to Recommended status.
- * Added an icon. (Closes: #188726)
- * Make pgp_import_command nonverbose. (Closes: #195310)
-
- -- Marco d'Itri <md@linux.it> Sun, 17 Aug 2003 15:56:55 +0200
-
-mutt (1.5.4-1) unstable; urgency=high
-
- * New upstream release. (Closes: #142266, #148858, #169740, #178563)
- * Fixes remotely exploitable buffer overflow in the IMAP code.
- (Core Security Technologies Advisory CORE-2003-03-04-02.)
- * Removed again BUFFY_SIZE support, too many people complained.
- Added a note to README.Debian.
- * Provides: imap-client. (Closes: #183351)
- * Always include the whole certificates chain in S/MIME mail to comply
- with RFC 2315 spirit. (Closes: #182477)
- * Applied ME's headers caching patch (provided by Nicolas Bougues).
- * Fixed pgpewrap core dump. (Closes: #170666)
-
- -- Marco d'Itri <md@linux.it> Thu, 20 Mar 2003 15:06:13 +0100
-
-mutt (1.5.3-3) unstable; urgency=medium
-
- * Recompiled to fix missing dependencies information. (Closes: #181167)
-
- -- Marco d'Itri <md@linux.it> Sun, 16 Feb 2003 11:46:46 +0100
-
-mutt (1.5.3-2) unstable; urgency=medium
-
- * Compiled with BUFFY_SIZE. (Closes: #179970)
- * Stop generating escape codes in the manual. (Closes: #167006)
- * Set the default editor as specified by policy. (Closes: #177245)
-
- -- Marco d'Itri <md@linux.it> Fri, 14 Feb 2003 19:13:15 +0100
-
-mutt (1.5.3-1) unstable; urgency=low
-
- * New upstream release (Closes: #112865, #165397, #168907, #169018).
- * Suggests ispell | aspell (Closes: #175324).
- * Add & and = to the URL coloring regex (Closes: #169646).
- * Removed message-hook for clearsigned PGP messages (Closes: #168275).
- * Removed obsolete patch-1.4.0.dw.pgp-traditional.2.
- * By popular (?) demand, use /etc/mailname and only if it fails fall
- back to gethostbyname(3) and then to uname(2) (Closes: #167549).
-
- -- Marco d'Itri <md@linux.it> Tue, 14 Jan 2003 18:31:01 +0100
-
-mutt (1.4.0-5) unstable; urgency=medium
-
- * Try a different strategy to find the FQDN. Stop using /etc/mailname.
- (Closes: #166060).
- * Suggests: mixmaster (Closes: #166360).
- * Updated copyright file (Closes: #163783).
- * *Really* enable --enable-imap-edit-threads (Closes: #162352).
- * Ignore Microsoft Thread-* header (Closes: #161473).
- * Do not ask the password if gpg-agent or quintuple-agent are active
- (Closes: #161508).
- * Applied patch-1.5-me_editor.1 (Closes: #72318).
- * Applied patch-1.5.1.tlr.mailboxes-overflow.1 (Closes: #153751).
- * Applied patch-1.4-me.regex_doc.1 (Closes: #162550).
- * Removed patch-1.3.15.sw.pgp-outlook.1 in favour of
- patch-1.4.0.dw.pgp-traditional.2. All "traditional" PGP messages now
- use text/plain.
-
- -- Marco d'Itri <md@linux.it> Tue, 29 Oct 2002 14:38:52 +0100
-
-mutt (1.4.0-4) unstable; urgency=medium
-
- * Recompile with newer libgnutls5 (Closes: #160114).
- * Updated contrib/colors.angdraug.
- * Updated 010_patch-1.4.admcd.gnutls.55.
-
- -- Marco d'Itri <md@linux.it> Tue, 17 Sep 2002 16:07:50 +0200
-
-mutt (1.4.0-3) unstable; urgency=medium
-
- * *Really* compile mutt with --enable-imap-edit-threads (Closes: #154864).
- * *Really* merge the Maildirs new messages patch (Closes: #151582).
- * Recompile with libgnutls5 (Closes: #152787, #157120).
-
- -- Marco d'Itri <md@linux.it> Sun, 18 Aug 2002 16:59:06 +0200
-
-mutt (1.4.0-2) unstable; urgency=low
-
- * Update GNUTLS patch and link against gnutls4. (Closes: #152141).
- * Link mutt-utf8 against libncursesw5 instead of slang1a-utf8.
- * set pipe_decode=yes in /etc/Muttrc (Closes: #151460).
- * Compile mutt with --enable-imap-edit-threads (Closes: #150274).
- * Make debian/scripts/lib work even if $CDPATH is set (Closes: #152678).
- * Merged patch to fix spurious new message notifications with Maildirs
- (Closes: #151582).
-
- -- Marco d'Itri <md@linux.it> Fri, 12 Jul 2002 03:34:48 +0200
-
-mutt (1.4.0-1) unstable; urgency=medium
-
- * New upstream release (Closes: #146889, #149348, #148558).
- * Updated patch edit_threads.9.2 (Closes: #146451).
- * Priority of mutt-utf8 changed from optional to extra.
-
- -- Marco d'Itri <md@linux.it> Mon, 10 Jun 2002 21:26:08 +0200
-
-mutt (1.3.28-2) unstable; urgency=medium
-
- * Moved into main.
- * Suggests: libgcrypt1, gnutls3 (Closes: #140970).
- * Added patch from CVS to fix crash with UTF-8 locales (Closes: #126336).
-
- -- Marco d'Itri <md@linux.it> Sat, 6 Apr 2002 18:35:01 +0200
-
-mutt (1.3.28-1) unstable; urgency=medium
-
- * New upstream release (Closes: #138200).
- * Updated GNUTLS patch.
- * Make flea(1) work even if bug(1) is not installed (Closes: #138273).
- * Added /usr/share/bug/mutt/presubj file (Closes: #138274).
-
- -- Marco d'Itri <md@linux.it> Tue, 19 Mar 2002 14:42:39 +0100
-
-mutt (1.3.27-5) unstable; urgency=medium
-
- * Added build dependancy on linuxdoc-tools-text (Closes: #137890).
- * Use sensible-pager instead of zless to read the manual (Closes: #136206).
- * Added example colors scheme contributed by Dmitry Borodaenko.
-
- -- Marco d'Itri <md@linux.it> Mon, 11 Mar 2002 19:40:20 +0100
-
-mutt (1.3.27-4) unstable; urgency=high
-
- * Recompiled against new slang packages (Closes: #133255, #134115).
- * Added patch-1.3.27.me.aliasdups.1 (Closes: #133559).
- * Updated GNUTLS patch.
- * Added missing flea(1) symlink (Closes: #133646).
-
- -- Marco d'Itri <md@linux.it> Sun, 17 Feb 2002 03:27:50 +0100
-
-mutt (1.3.27-3) unstable; urgency=high
-
- * Recompiled against new slang and packages (Closes: #132644).
- * Title bar is changed on more xterm variants (Closes: #131178).
- * Removed obsolete advice about shred from README.Debian (Closes: #132786).
-
- -- Marco d'Itri <md@linux.it> Sun, 10 Feb 2002 13:26:20 +0100
-
-mutt (1.3.27-2) unstable; urgency=high
-
- * Updated GNUTLS patch (Closes: #131386, #131424).
- * Added patch-1.3.27.me.listfrom_doc.1 (Closes: #45706).
- * Added missing -fPIC (Closes: #131209).
- * Added missing commas in charset.c (Closes: #130481).
-
- -- Marco d'Itri <md@linux.it> Thu, 31 Jan 2002 15:23:34 +0100
-
-mutt (1.3.27-1) unstable; urgency=medium
-
- * New upstream release.
- * Small fix to pt_BR translation (Closes: #130416).
- * Hide gpg status messages (Closes: #127519).
-
- -- Marco d'Itri <md@linux.it> Tue, 22 Jan 2002 20:18:21 +0100
-
-mutt (1.3.26-1) unstable; urgency=medium
-
- * New upstream release.
- * Removed patch-1.3.25.chip.fast-limited-threads because the patched
- code has changed.
-
- -- Marco d'Itri <md@linux.it> Sat, 19 Jan 2002 19:30:13 +0100
-
-mutt (1.3.25-5) unstable; urgency=high
-
- * Added build dependancy on groff (Closes: #129605, #129698).
-
- -- Marco d'Itri <md@linux.it> Thu, 17 Jan 2002 19:03:29 +0100
-
-mutt (1.3.25-4) unstable; urgency=high
-
- * Forced build dependancy on newer gnutls-dev (Closes: #129283).
- * Updated GNUTLS patch (Closes: #129291).
-
- -- Marco d'Itri <md@linux.it> Wed, 16 Jan 2002 19:47:45 +0100
-
-mutt (1.3.25-3) unstable; urgency=medium
-
- * Force documentation rebuilding (Closes: #128758, #129045).
- * TLS patch update from Andrew McDonald (Closes: #125924, #128718, #129039).
- * Suggests gnutls0.
- * Fixed typo in manual (Closes: #128836).
- * Added patch-1.3.25.chip.fast-limited-threads, which is supposed to
- speed up limited threaded display (Closes: #128174).
- * Added patch-1.3.25.tlr.attach_overwrite.1 (Closes: #126122).
-
- -- Marco d'Itri <md@linux.it> Sun, 13 Jan 2002 17:18:21 +0100
-
-mutt (1.3.25-2) unstable; urgency=low
-
- * Force dependancy on slang1-utf8 (Closes: #127938).
- * Enable again optimization (Closes: #127653, #127682).
- * Enable {open,close,append}-hook by default again (Closes: #127894).
-
- -- Marco d'Itri <md@linux.it> Sun, 6 Jan 2002 19:35:57 +0100
-
-mutt (1.3.25-1) unstable; urgency=high
-
- * New upstream release, fixes remotely exploitable buffer overflow.
- * Fixed mutt_dotlock permissions
- (Closes: #127264, #127265, #127278, #127308, #127312, #127357).
-
- -- Marco d'Itri <md@linux.it> Wed, 2 Jan 2002 18:49:54 +0100
-
-mutt (1.3.24-3) unstable; urgency=medium
-
- * A new mutt-utf8 package is generated (Closes: #99898).
- * Added patch-1.3.24.de.new_threads.3 to fix segfaults while sorting
- thread (Closes: #123658).
- * Added --status-fd option to gpg command line and working $pgp_good_sign
- variable to default /etc/Muttrc (see #110414 and #123273 for details).
- * Updated thread editing patch to patch-1.3.24.cd.edit_threads.8.
- * Added patch-1.3.24.appoct.2 to lookup application/octet-stream files
- extensions in mime.types.
- * Fixed coredump processing in flea(1) (Closes: #123081).
- * Removed obsolete contrib/pgp-macros.
-
- -- Marco d'Itri <md@linux.it> Thu, 27 Dec 2001 03:32:16 +0100
-
-mutt (1.3.24-2) unstable; urgency=medium
-
- * Added better GNUTLS code from Andrew McDonald.
- * Added again threads editing patch.
- * Enable {open,close,append}-hook by default again (Closes: #115473).
- * Removed default $pgp_good_sign from Muttrc (related to #110414).
-
- -- Marco d'Itri <md@linux.it> Wed, 5 Dec 2001 02:26:13 +0100
-
-mutt (1.3.24-1) unstable; urgency=high
-
- * New upstream release (Closes: #74484, #98630, #114938).
- * Added conflict with gnutls < 0.2.9 (Closes: #121645).
- * Fixed mailspell script (Closes: #120446).
- * Removed 000_patch-1.3.22.1.cd.edit_threads-5.1.
- * Added 000_patch-1.3.23.1.ametzler.pgp_good_sign (Closes: #110414).
-
- -- Marco d'Itri <md@linux.it> Fri, 30 Nov 2001 22:52:42 +0100
-
-mutt (1.3.23-4) unstable; urgency=high
-
- * Added Build Dependandcies on libgcrypt-dev and zlib1g-dev
- (Closes: #119309).
- * Added a comment to README.Debian about stunnel (Closes: #115421).
- * Removed safefilter script (Closes: #118630).
- * Added the broken-outlook-pgp-clearsigning patch (Closes: #120090).
-
- -- Marco d'Itri <md@linux.it> Fri, 30 Nov 2001 20:49:02 +0100
-
-mutt (1.3.23-3) unstable; urgency=high
-
- * Moved to non-US (Closes: #118294).
-
- -- Marco d'Itri <md@linux.it> Mon, 5 Nov 2001 12:06:43 +0100
-
-mutt (1.3.23-2) unstable; urgency=medium
-
- * Added SSL support using GNUTLS. WARNING: requires the CVS library!
- * Added unpack target to debian/rules (Closes: #115765).
- * Fixed account-hook (Closes: #117125).
- * Added default compression hooks to /etc/Muttrc (Closes: #115473).
-
- -- Marco d'Itri <md@linux.it> Sun, 4 Nov 2001 13:59:25 +0100
-
-mutt (1.3.23-1) unstable; urgency=medium
-
- * New upstream release (Closes: #106864, #106229, #110414)
- (Closes: #69135, #89195, #92651, #97319, #98627).
- * Added README.NFS note from the liblockfile maintainer (Closes: #96788).
- * Fixed gpg operations (Closes: #113458, #114163, #114938).
- * Fixed compressed folder patch (Closes: #114199).
- * Highlight https URLs too (Closes: #113791).
-
- -- Marco d'Itri <md@linux.it> Wed, 10 Oct 2001 02:30:15 +0200
-
-mutt (1.3.22-2) unstable; urgency=medium
-
- * Renamed dotlock.1 (Closes: #112545).
- * Fixed the threads editing patch (Closes: #112554).
-
- -- Marco d'Itri <md@linux.it> Wed, 19 Sep 2001 12:18:47 +0200
-
-mutt (1.3.22-1) unstable; urgency=low
-
- * New upstream release (Closes: ).
- * Old bugs fixed in the last NMU (Closes: #29884, #101075, #101484)
- (Closes: #101890, #101890, #102439, #106863, #104469, #105391)
- (Closes: #110262).
- * Fixed bashism in vars.build (Closes: #104137).
- * Updated libssl package name in README.Debian (Closes: #96564).
- * Added a note about temporary files in README.Debian (Closes: #89277).
- * Added a note about locales in README.Debian (Closes: #105545).
- * Included threads editing patch (Closes: #111291).
- * Fixed paths in mutt.man (Closes: #110462).
-
- -- Marco d'Itri <md@linux.it> Sat, 15 Sep 2001 17:33:51 +0200
-
-mutt (1.3.19-1) unstable; urgency=low
-
- * New upstream release (Closes: #81155, #93830, #95426, #100298, #101075).
- (Closes: #101451).
- * Suggests locales instead of i18ndata (Closes: #98814).
-
- -- Marco d'Itri <md@linux.it> Tue, 22 May 2001 13:42:34 +0200
-
-mutt (1.3.18-1) unstable; urgency=low
-
- * New upstream release (Closes: #81155, #92234, #90400, #92860, #95426)
- (Closes: #88358, #92846, #92847, #91979, #97658, #98014).
-
- -- Marco d'Itri <md@linux.it> Tue, 22 May 2001 13:42:34 +0200
-
-mutt (1.3.17-1) unstable; urgency=high
-
- * New upstream release (Closes: #89011, #82372, #86228, #83187).
-
- -- Marco d'Itri <md@linux.it> Sun, 1 Apr 2001 22:09:27 +0200
-
-mutt (1.3.15-2) unstable; urgency=high
-
- * Built again without linking libiconv.
-
- -- Marco d'Itri <md@linux.it> Wed, 14 Feb 2001 23:02:23 +0100
-
-mutt (1.3.15-1) unstable; urgency=low
-
- * New upstream release (Closes: #81873, #81155, #81640, #76922).
- * Added more headers to the ignore list.
- * Removed dh_suidregister (Closes: #84826).
- * Removed US-ASCII charset-hook (Closes: #81240).
- * Commented all "color header" lines in the default /etc/Muttrc.
- * Fixed default colors on white background xterm.
-
- -- Marco d'Itri <md@linux.it> Mon, 12 Feb 2001 23:34:41 +0100
-
-mutt (1.3.12-2) unstable; urgency=low
-
- * Fixed typo in muttbug (Closes: #79230).
- * Added menu hints (Closes: #80067).
- * Compiled with libsasl (Closes: #78746).
-
- -- Marco d'Itri <md@linux.it> Sun, 24 Dec 2000 12:18:23 +0100
-
-mutt (1.3.12-1) experimental; urgency=low
-
- * Packaged the development tree (Closes: #60459, #73050, #75885, #77856).
- * Documented the fact that pgp_encryptself is gone and will not be back
- (Closes: #47833, #69221).
-
- -- Marco d'Itri <md@linux.it> Tue, 28 Nov 2000 02:25:50 +0100
-
-mutt (1.2.5-5) unstable; urgency=low
-
- * Added support for libc6 2.2 compressed charmaps
- (Closes: #74975).
- * Updated README.Debian about SSL support (Closes: #75895).
- * Added the compressed folder patch (Closes: #76224).
- * Removed some colorization (Closes: #77976).
-
- -- Marco d'Itri <md@linux.it> Mon, 27 Nov 2000 18:46:25 +0100
-
-mutt (1.2.5-4) stable unstable; urgency=high
-
- * Typo in debian-ldap-query prevented it from running (#74575).
-
- -- Marco d'Itri <md@linux.it> Sun, 29 Oct 2000 13:09:42 +0100
-
-mutt (1.2.5-3) stable unstable; urgency=high
-
- * ====> Removed non GPL-compatible SHA code (patch-1.3.9.tlr.sha.1). <====
- * ====> Disabled linking with the GPL-incompatible openssl library. <====
- * Update debian-ldap-query for new libnet-ldap-perl package (Closes: #74575).
-
- -- Marco d'Itri <md@linux.it> Thu, 12 Oct 2000 10:28:10 +0200
-
-mutt (1.2.5-2) unstable; urgency=low
-
- * Disallow suspend by default if mutt is the session leader (Closes: #64169).
- * Fixed the check for optional crypto libraries (Closes: #68518).
- * Added build dependency to debhelper (Closes: #68401).
- * Added some info to README.NFS (Closes: #71163).
- * Added ispell wrapper.
-
- -- Marco d'Itri <md@linux.it> Thu, 21 Sep 2000 19:43:57 +0200
-
-mutt (1.2.5-1) unstable; urgency=low
-
- * New upstream release (Closes: #67885, #65999, #67420, #65638, #62580).
- (Closes: #67420).
- * Fixed charmaps handling for autobuilders (Closes: #67609).\
- * Added debian-ldap-query script.
- * mutt_imap_*_.so and pgp* moved to /usr/lib/mutt/.
- * Added safefilter contributed script.
-
- -- Marco d'Itri <md@linux.it> Tue, 1 Aug 2000 18:22:58 +0200
-
-mutt (1.2-1) unstable; urgency=low
-
- * New upstream release.
- * Fixed manual.txt.gz path in F1 macro (Closes: #63384).
-
- -- Marco d'Itri <md@linux.it> Sun, 7 May 2000 19:51:09 +0200
-
-mutt (1.1.12-1) unstable; urgency=low
-
- * New upstream release.
- * Removed duplicated install-docs commands (Closes: #60788).
-
- -- Marco d'Itri <md@linux.it> Mon, 20 Mar 2000 22:14:53 +0100
-
-mutt (1.1.9-1) unstable; urgency=low
-
- * New upstream release (Closes: #60139, #57965, #60139).
- * pgp_sign_micalg=pgp-sha1 added to the default Muttrc (Closes: #59765).
-
- -- Marco d'Itri <md@linux.it> Wed, 15 Mar 2000 10:57:49 +0100
-
-mutt (1.1.5-1) unstable; urgency=low
-
- * New upstream release (Closes: #56011, #58703).
-
- -- Marco d'Itri <md@linux.it> Sat, 26 Feb 2000 15:13:09 +0100
-
-mutt (1.1.4-1) unstable; urgency=low
-
- * New upstream release.
-
- -- Marco d'Itri <md@linux.it> Wed, 16 Feb 2000 01:14:31 +0100
-
-mutt (1.1.3-1) unstable; urgency=low
-
- * New upstream release (Closes: #57373, #57155, #57533, #56970).
- * Fixed Pine.rc (Closes: #57647).
-
- -- Marco d'Itri <md@linux.it> Wed, 16 Feb 2000 01:14:20 +0100
-
-mutt (1.1.2-2) unstable; urgency=low
-
- * README.UPDATE installed in the documentation directory (Closes: 56970).
- * Patched for run time loading of SSL and Kerberos libraries.
-
- -- Marco d'Itri <md@linux.it> Thu, 10 Feb 2000 23:56:21 +0100
-
-mutt (1.1.2-1) unstable; urgency=low
-
- * New upstream release (Closes: #30639, #28727).
- * Fixed color problems in xterms.
-
- -- Marco d'Itri <md@linux.it> Tue, 1 Feb 2000 12:31:26 +0100
-
-mutt (1.1.1-1) experimental; urgency=low
-
- * My christmas present: packaged the development tree.
-
- -- Marco d'Itri <md@linux.it> Sun, 19 Dec 1999 12:08:53 +0100
-
+++ /dev/null
-Source: mutt
-Section: mail
-Priority: standard
-Maintainer: Christoph Berg <myon@debian.org>
-Uploaders: Adeodato Simó <dato@net.com.org.es>, Antonio Radici <antonio@dyne.org>
-Build-Depends: debhelper (>> 5), quilt, automake, gawk, gettext, xsltproc,
- docbook-xml, docbook-xsl, links, libncurses5-dev, libsasl2-dev, libgnutls-dev,
- libidn11-dev, zlib1g-dev, libncursesw5-dev, libgdbm-dev, libkrb5-dev
-Standards-Version: 3.8.0
-XS-Vcs-Git: git://git.debian.org/git/pkg-mutt/mutt.git
-XS-Vcs-Browser: http://git.debian.org/?p=pkg-mutt/mutt.git
-Homepage: http://www.mutt.org/
-
-Package: mutt
-Architecture: any
-Priority: standard
-Depends: ${shlibs:Depends}, ${misc:Depends}
-Recommends: exim4 | mail-transport-agent, locales, mime-support, libsasl2-modules
-Suggests: urlview, aspell | ispell, gnupg, mixmaster, openssl, ca-certificates
-Provides: mail-reader, imap-client
-Conflicts: mutt-utf8
-Replaces: mutt-utf8
-Description: text-based mailreader supporting MIME, GPG, PGP and threading
- Mutt is a sophisticated text-based Mail User Agent. Some highlights:
- .
- * MIME support (including RFC1522 encoding/decoding of 8-bit message
- headers and UTF-8 support).
- * PGP/MIME support (RFC 2015).
- * Advanced IMAP client supporting SSL encryption and SASL authentication.
- * POP3 support.
- * ESMTP support.
- * Message threading (both strict and non-strict).
- * Keybindings are configurable, default keybindings are much like ELM;
- Mush and PINE-like ones are provided as examples.
- * Handles MMDF, MH and Maildir in addition to regular mbox format.
- * Messages may be (indefinitely) postponed.
- * Colour support.
- * Highly configurable through easy but powerful rc file.
-
-Package: mutt-patched
-Architecture: any
-Priority: extra
-Depends: ${shlibs:Depends}, mutt (= ${binary:Version})
-Description: the Mutt Mail User Agent with extra patches
- Mutt is a sophisticated text-based Mail User Agent.
- .
- This package adds the "sidebar" patch that lists mailboxes with new mail
- in a separate column on screen.
-
-Package: mutt-dbg
-Architecture: any
-Priority: extra
-Depends: ${shlibs:Depends}, mutt (= ${binary:Version})
-Description: debugging symbols for mutt
- Mutt is a sophisticated text-based Mail User Agent.
- .
- This package contains the debugging symbols for mutt and mutt-patched.
+++ /dev/null
-This is Debian's prepackaged version of Mutt, a powerful text-mode mail
-user agent.
-
-The current maintainers for this package are:
- Adeodato Simó <dato@net.com.org.es>
- Christoph Berg <myon@debian.org>
-
-Previous maintainers were:
- Stephen Pitts <pitts2@memphisonline.com>
- J.H.M. Dassen <jdassen@wi.LeidenUniv.nl>
- Marco d'Itri <md@linux.it>
-
-Original source has been downloaded from ftp://ftp.mutt.org/mutt/:
-
- URL:<ftp://ftp.mutt.org/mutt/devel/>
-
-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.
-
-Copyright (C) 1996-2007 Michael R. Elkins <me@cs.hmc.edu>
-Copyright (C) 1996-2002 Brandon Long <blong@fiction.net>
-Copyright (C) 1997-2008 Thomas Roessler <roessler@does-not-exist.org>
-Copyright (C) 1998-2005 Werner Koch <wk@isil.d.shuttle.de>
-Copyright (C) 1999-2009 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-2008 Rocco Rutte <pdmef@gmx.net>
-
- 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.
-
-Contributors:
- Copyright (C) 2001 Marco d'Itri
- Copyright (C) 2001-2002 Oliver Ehli
- Copyright (C) 2004 Brian Fundakowski Feldman
- Copyright (C) 2004 g10 Code GmbH
- Copyright (C) 2004 Thomas Glanzmann
- Copyright (C) 2003 Bjoern Jacke
- Copyright (C) 2000 Manoj Kasichainula
- Copyright (C) 2001-2004 Andrew McDonald
- Copyright (C) 2001 Mike Schiraldi
- Copyright (C) 2000-2003 Vsevolod Volkov
- Copyright (C) 2004 Tobias Werth
- Copyright (C) 2005 Andreas Krennmair <ak@synflood.at>
- Copyright (C) 2005 Peter J. Holzer <hjp@hjp.net>
-
-intl subdirectory:
- Copyright (C) 1995-2001 Free Software Foundation, Inc.
- Contributed by Ulrich Drepper, 1995.
-
-On Debian systems, the complete text of the GNU General Public License
-can be found in `/usr/share/common-licenses/GPL'.
-
-md5c.c:
- Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
- rights reserved.
- License to copy and use this software is granted provided that it
- is identified as the "RSA Data Security, Inc. MD5 Message-Digest
- Algorithm" in all material mentioning or referencing this software
- or this function.
- License is also granted to make and use derivative works provided
- that such works are identified as "derived from the RSA Data
- Security, Inc. MD5 Message-Digest Algorithm" in all material
- mentioning or referencing the derived work.
- RSA Data Security, Inc. makes no representations concerning either
- the merchantability of this software or the suitability of this
- software for any particular purpose. It is provided "as is"
- without express or implied warranty of any kind.
- These notices must be retained in any copies of any part of this
- documentation and/or software.
-
-The list of authors of the applied patches to this version of mutt can
-be found in `/usr/share/doc/mutt/README.Patches'.
+++ /dev/null
-This file describes how to configure mutt to use S/MIME.
-
-This file is almost the same as smime-notes.txt available in mutt upstream
-sources, but it contains a few modifications about Debian-specific issues.
-
-Mutt needs some user interaction to get it ready for S/MIME.
-
-1. Make sure, that openssl (must be) and ca-certificates (recommended)
- are installed. If not, ask your administrator to do it.
-
-2. Run 'smime_keys init'.
-
-3. If ca-certificates is installed, make a symlink:
- ln -s /etc/ssl/certs ~/.smime/ca-bundle.crt
- If not, there are some other packages which contain Root CA certificates,
- for example: kdelibs-data, libcurl2.
- This makes you trust anything that was ultimately signed by one of CA
- included in symlinked crt file.
-
-4. Get yourself a certificate. (You can get one for free from www.thawte.com,
- or pay for one from VeriSign or one of its competitors). The way the
- process generally works: the certificate will be installed "into" your web
- browser. If you are asked what application you wish to use the
- certificate with, select Netscape. Strangely enough, "mutt" is usually not
- an option.
-
-5. Assuming you are using Mozilla, follow the instructions at
- www.verisignlabs.com/Projects/smime_docs/linux.html to export the
- certificate into a file called cert.p12. If you don't use Mozilla, you're on
- your own.
-
-6. Run 'smime_keys add_p12 cert.p12'.
- * When the script asks for the "Import password", enter the one you
- provided when you exported the certificate
- * When it asks for a "PEM pass phrase", make up a new password. Every
- time you sign or decrypt a message, mutt will ask for the PEM passphrase
- * Finally, when the script asks for a label, enter an easy-to-remember
- name for the certificate, such as "me". The script output will include
- a line like:
- added private key: /home/raldi/.smime/keys/12345678.0 for raldi@verisignlabs.com
- The number (including the ".0" at the end) is your keyid. You will
- need this number in the next step.
-
-7. Edit your .muttrc file and add a lines:
- set smime_default_key=keyid
- set smime_sign_as=keyid
- Probably you also want to change default values for smime_timeout
- and smime_encrypt_with originally set in global /etc/Muttrc
-
-8. Optionally, you can add following line to your ~/.mailcap to view certificate
- from mutt:
- application/x-pkcs7-signature;openssl pkcs7 -in %s -inform der -noout -print_certs -text | pager; needsterminal
-
-Last updated: Tue, 23 Dec 2003 22:35:40 +0100
-Artur R. Czechowski <arturcz@hell.pl>
-
+++ /dev/null
-#!/usr/bin/perl -w
-# by Ben Collins <bcollins@debian.org>, butchered by Marco d'Itri <md@linux.it>
-# to use, add to ~/.muttrc:
-# set query_command="/usr/lib/mutt/debian-ldap-query %s"
-
-use strict;
-
-my @attrs = qw(sn mn cn ircnick uid);
-my $base = 'ou=users, dc=debian, dc=org';
-my $server = 'db.debian.org';
-my $port = 389;
-
-die "Usage: $0 <name> [<name>...]\n" if not $ARGV[0];
-
-eval 'require Net::LDAP;';
-if ($@) {
- $@ =~ s/ in \@INC.*/./;
- die "Could not load Net::LDAP: $@\n" .
- "(Warning: this script depends on the libnet-ldap-perl (>=0.22-1) package.)\n"
-}
-
-my $ldap = Net::LDAP->new($server, port => $port) or
- die "Could not contact LDAP server $server:$port";
-$ldap->bind or die 'Could not bind';
-
-my @results;
-
-foreach my $search (@ARGV) {
- my $query = join '', map { "($_=*$search*)" } @attrs;
- my $mesg = $ldap->search(
- base => $base, filter => "(|$query)", attrs => [ @attrs ]
- ) or die 'Failed search';
- foreach my $entry ($mesg->entries) {
- my $uid = $entry->get_value('uid') || next;
- my $fname = $entry->get_value('cn') || '';
- my $mname = $entry->get_value('mn') || '';
- $mname .= ' ' if $mname;
- my $lname = $entry->get_value('sn') || '';
- my $nick = $entry->get_value('ircnick')|| '';
- push @results, "<$uid\@debian.org>\t$fname $mname$lname\t($nick)\n";
- }
-}
-
-$ldap->unbind;
-
-print 'Debian Developer query: found ', scalar @results, "\n", @results;
-exit 1 if not @results;
-exit 0;
+++ /dev/null
-#!/usr/bin/perl
-#
-# Wrapper to call ispell on mail messages, ignoring quoted portions
-# and signatures.
-# By Brendan O'Dea <bod@debian.org>, public domain.
-# Usage: set ispell = /usr/lib/mutt/mailspell
-#
-
-use IO::File;
-use POSIX 'tmpnam';
-use File::Copy 'move';
-
-$0 =~ s#.*/##;
-
-my $ISPELL = 'ispell';
-my $DIFF = 'diff';
-my $ED = 'ed';
-
-# make sure that we don't inherit SIGCHLD
-$SIG{CHLD} = 'DEFAULT';
-
-# ignore -x ispell option
-shift if $ARGV[0] eq '-x';
-die "Usage: $0 [-x] FILE\n" unless @ARGV == 1;
-
-my $msg = $ARGV[0];
-
-# create temporary files
-my (%orig, %ed);
-
-END {
- unlink $ed{path} if $ed{path};
- unlink $orig{path} if $orig{path};
-}
-
-foreach (\%orig, \%ed) {
- $_->{path} = tmpnam;
- $_->{fd} = IO::File->new($_->{path}, O_RDWR|O_CREAT|O_EXCL, 0600)
- or die "$0: can't create $_->{path} ($!)";
-}
-
-while (<>) {
- # stop at sigdashes
- last if /^-- \n/;
-
- # drop quoted text and attribution
- $orig{fd}->print($_) unless /^>/ or /^On \w{3}, \w{3} \d{2}, \d{4} at \d/;
-}
-
-$orig{fd}->close;
-
-my $pid = fork;
-die "$0: can't fork ($!)\n" unless defined $pid;
-unless ($pid) {
- open STDOUT, '>&=' . $ed{fd}->fileno
- or die "$0: can't dup stdout to ed script ($!)\n";
- $ed{fd}->close;
- exec $DIFF, '-e', $orig{path}, $msg;
- die "$0: can't exec $DIFF ($!)\n";
-}
-
-die "$0: can't reap child ($!)\n" unless wait == $pid;
-system $ISPELL, '-x', $orig{path}
- and die "$0: problem with $ISPELL ($?)\n";
-
-$ed{fd}->seek(0, SEEK_END);
-$ed{fd}->print("w\nq\n");
-$ed{fd}->seek(0, SEEK_SET);
-
-open STDIN, '<&=' . $ed{fd}->fileno
- or die "$0: can't dup stdin from ed script ($!)\n";
-
-system $ED, '-s', $orig{path} and die "$0: problem with $ED ($?)\n";
-move $orig{path}, $msg or die "$0: can't replace $msg ($!)\n";
-delete $orig{path};
-
-1;
+++ /dev/null
-#!/bin/sh -e
-
-for rc in /etc/Muttrc.d/*.rc; do
- test -r "$rc" && echo "source \"$rc\""
-done
-
-# vi: ft=sh
+++ /dev/null
-# Configuration for the sidebar patch.
-# See /usr/share/doc/mutt/README.Patches for documentation.
-
-ifdef sidebar_visible set sidebar_visible sidebar_width=20
-
+++ /dev/null
-/* XPM */
-static char * mutt_xpm[] = {
-"32 32 14 1",
-" c None",
-". c #CCCCCC",
-"+ c #000000",
-"@ c #7F7F7F",
-"# c #B2B2B2",
-"$ c #666667",
-"% c #FF0000",
-"& c #7F0000",
-"* c #999999",
-"= c #333333",
-"- c #FF00FF",
-"; c #FFFFFF",
-"> c #7F007F",
-", c #7F7F00",
-" ",
-" == ",
-" ++ ",
-" +..@@ ",
-" +.,.+ ",
-" + +.,.+ +++ ",
-" + @+.,.+ +@@ ",
-" @+ +....+++.@ ",
-" +.@ @+.......+ ",
-" +.+ +@....+.+ ",
-" +.+ @+.....+.+ ",
-" +.+@ +@........++++ ",
-" +.@+ @+.........+;;> ",
-" +..+++++++%@$#.......+.-- ",
-" @@.@+&%&+@%%@@.......+>-> ",
-" +..@+++@.@%%@$@......+++ ",
-" +.........@%%+@$$....+ ",
-" @@$.........@%%++@$..$+ ",
-" +@@..........*%%++@@$+ ",
-" +@@...........@%%++++ ",
-" +@$............@+ ",
-" +@@...#.......@+ ",
-" @+@.#$+@@@...$++ ",
-" +..$+@*@+..$+@+ ",
-" @@.@++++++$.+@*+ ",
-" @+..+*@@+=+@.+@.+ ",
-" +@..+++@+++@..++@@+@ ",
-" +@.....+@@+@.....+@.@ ",
-" +$.....+@*+$.....+@.+ ",
-" +@@.$..+@@+@@.$..+@.+ ",
-" @++++++@++@++++++@++@ ",
-" "};
+++ /dev/null
-# See /usr/share/doc/mutt/README.Debian for details.
-source /usr/lib/mutt/source-muttrc.d|
+++ /dev/null
-# Some GB18030 traditional Chinese mails are wrongly labelled GB2312.
-# The first charset is a superset of the second. Let's alias it, so
-# that Mutt displays such mails as if they were correctly labelled.
-charset-hook ^gb2312$ gb18030
-
-# Some mailers send EUC-JP-MS Japanese mails wrongly labelled EUC-JP.
-# The first charset is a superset of the second. Let's also alias it.
-charset-hook ^euc-jp$ euc-jp-ms
-
+++ /dev/null
-# colors
-color normal white black
-color attachment brightyellow black
-color hdrdefault cyan black
-color indicator black cyan
-color markers brightred black
-color quoted green black
-color signature cyan black
-color status brightgreen blue
-color tilde blue black
-color tree red black
-#color header brightgreen black ^From:
-#color header brightcyan black ^To:
-#color header brightcyan black ^Reply-To:
-#color header brightcyan black ^Cc:
-#color header brightblue black ^Subject:
-#color body brightred black [\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+
-#color body brightblue black (https?|ftp)://[\-\.,/%~_:?&=\#a-zA-Z0-9]+
-
+++ /dev/null
-# Use folders which match on \\.gz$ or \\.bz2$ as [gb]zipped folders:
-open-hook \\.gz$ "gzip -cd '%f' > '%t'"
-close-hook \\.gz$ "gzip -c '%t' > '%f'"
-append-hook \\.gz$ "gzip -c '%t' >> '%f'"
-open-hook \\.bz2$ "bzip2 -cd '%f' > '%t'"
-close-hook \\.bz2$ "bzip2 -c '%t' > '%f'"
-append-hook \\.bz2$ "bzip2 -c '%t' >> '%f'"
-
+++ /dev/null
-# This color scheme aims to highlight as much useful information as
-# possible without spoiling user's visual experience by irritating
-# contrasts. Optimized for dark or transparent background.
-# --Dmitry Borodaenko <angdraug@mail.ru>
-
-# override defaults, make transparency work
-color normal white default
-color attachment green default #
-color hdrdefault cyan default
-color indicator black cyan
-color markers brightred default
-color quoted green default
-color signature brightblue default #
-color status brightgreen blue
-color tilde brightblue default #
-color tree red default
-
-# paint different quote levels
-color quoted green default
-color quoted1 cyan default
-color quoted2 yellow default
-color quoted3 red default
-
-color body brightred default "[\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+" # email
-color body brightblue default "(http|ftp)://[\-\.\,/+=&%~_:?\#a-zA-Z0-9]+" # URL
-color body brightgreen default "(^| |[-.[:alnum:]]+:+)~?\(/[-_.'[:alnum:]]+\)+/?" # Unix file path
-color body brightgreen default "(^| +)[[:alpha:]]:[-_.[:alnum:]\]+" # DOS file path
-color body brightmagenta default "(^|[ '\"]+)\\$[[:alpha:]][-_[:alpha:]]+" # variable
-color body brightred default "(^| )[*_]+[-&[:alnum:]]+[*_]( |$)" # bold/underline
-color body yellow default "(^| )[;:8ö][-^o]?[)>(|/\\]+" # smiley
-color body red default "[!?]{3,}" # exclamation
-color body green default "^ *[-+*o] +" # list item
-
-# date formats
-color body cyan default "[0-9]{1,2}:[0-9]{2}(:[0-9]{2})?( ?(AM|PM|am|pm))?( +[+-][0-9]{4})?"
-color body cyan default "(\(19|20\)?[0-9]{2}/[01]?[0-9]/[0123]?[0-9]|[0123]?[0-9][/.][01]?[0-9][/.]\(19|20\)?[0-9]{2})(( at)? +[0-9]{1,2}:[0-9]{2}(:[0-9]{2})?( ?(AM|PM|am|pm))?( +[+-][0-9]{4})?)?"
-color body cyan default "((Sun(day)?|Mon(day)?|Tue(sday)?|Wed(nesday)?|Thu(sday)?|Fri(day)?|Sat(urday)?),? +)?(Jan(uary)?|Feb(ruary)?|Mar(ch)?|Apr(il)?|May|June?|July?|Aug(ust)?|Sep(ember)?|Oct(ober)?|Nov(ember)?|Dec(ember)?)[ .]+[0-9]{1,2}(st|nd|rd|th)?,?( +(19|20)[0-9]{2}(,?( at)? [0-9]{1,2}:[0-9]{2}(:[0-9]{2})?( ?(AM|PM|am|pm))?( +[+-][0-9]{4})?)?)?"
-color body cyan default "((Sun(day)?|Mon(day)?|Tue(sday)?|Wed(nesday)?|Thu(sday)?|Fri(day)?|Sat(urday)?),? +)?[0-9]{1,2}(st|nd|rd|th)?[ .]+(Jan(uary)?|Feb(ruary)?|Mar(ch)?|Apr(il)?|May|June?|July?|Aug(ust)?|Sep(ember)?|Oct(ober)?|Nov(ember)?|Dec(ember)?),?( +(19|20)?[0-9]{2})?(( at)? [0-9]{1,2}:[0-9]{2}(:[0-9]{2})?( ?(AM|PM|am|pm))?( +[+-][0-9]{4})?)?"
-
-color header brightgreen default ^From:
-color header brightcyan default ^To:
-color header brightcyan default ^Reply-To:
-color header brightcyan default ^Cc:
-color header brightblue default ^Subject:
-
-color header brightcyan default "^newsgroups: "
-color header yellow default "^Delivered-To: "
-color header green default "^sender: "
-color header green default "^organi[sz]ation: "
-color header green default "x-editor: "
-color header green default "(x-mailer|user-agent): "
-color header green default "X-Operating-System: "
-color header green default "X-MimeOLE: "
-color header green default "X-Accept-Language: "
-color header red default "^message-id:"
-color header red default "^in-reply-to: "
-color header red default "^references: "
-color header cyan default "^followup-to: "
-color header cyan default "^mail-followup-to: "
-color header cyan default "^reply-to: "
-color header magenta default "MIME-Version: "
-color header magenta default "Content-Type: "
-color header magenta default "Content-Transfer-Encoding: "
-color header magenta default "Content-Disposition: "
-color header magenta default "Content-Encoding: "
-color header magenta default "Content-Language: "
-
-color status brightwhite blue
-
-color index brightblue default '~P' # from me
-color index cyan default '~p' # personal
-color index brightcyan default '~G' # PGP
-color index brightred default '~F' # flagged
-color index green default '~Q' # replied
-color index brightwhite default '~N' # new
-color index red default '~D' # deleted
-
-# threads
-#color index brightyellow default "~h 'References: +<.+>'"
-#color index yellow default "~h 'References: +<.+> +<.+>'"
-#color index brightred default "~h 'References: +<.+> +<.+> +<.+>'"
-#color index red default "~h 'References: +<.+> +<.+> +<.+> +<.+>'"
-#color index blue default "~h 'References: +<.+> +<.+> +<.+> +<.+> +<.+>'"
-#color index green default "~h 'References: +<.+> +<.+> +<.+> +<.+> +<.+> +<.+>'"
-
-# spam
-color index magenta default "\(Resent-\)?Message-Id: <>"
-color index magenta default "\(Resent-\)?Message-Id: '<.* .*>'"
-color index magenta default "\(Resent-\)?Message-Id: localhost"
-color index magenta default "! \(Resent-\)?Message-Id: @"
-color index magenta default '~C Undisclosed.*Recipients'
+++ /dev/null
-# This configuration file contains the default settings used by old debian
-# packages (< 0.94).
-
-set quote_regexp="^[ \t]*[a-zA-Z\.]*>" # Default: "^([ \t]*[>|#:}])+"
-
-#
-# More header weeding
-#
-ignore Resent- Precedence In-Reply-To Return-Receipt-To Mailer X400
-ignore Originator X-Loop X-Mailing-List X-Listprocessor X-Face
-ignore X-Received X-Mailer X-Envelope-To X-Sender X-Attribution
-# Usenet headers can occur for Cc-ed messages; they can still be
-# recognized by the Newsgroups header.
-ignore Path Lines NNTP-Posting-Host X-Newsreader X-Submitted-Via
-
-#
-# Key bindings
-#
-
-bind editor <delete> delete-char
-
-# Color / video attribute definitions. Not too flashy.
-#
-
-color hdrdefault green black
-color header brightyellow black "^from:"
-mono header bold "^from:"
-color header brightyellow black "^subject:"
-mono header bold "^subject:"
-color quoted green black
-color signature brightred black
-color indicator brightyellow red
-color error brightred black
-mono error bold
-color status brightwhite blue
-color tree brightmagenta black
-color tilde brightmagenta black
-# URL highlighting with the same regexp as urlview.
-color body brightyellow black (((ht|f)tps?)|mailto):(//)?[^\ "\t]*|www\.[-a-z0-9.]+)[^\ .,;\t>">]
-mono body bold (((ht|f)tps?)|mailto):(//)?[^\ "\t]*|www\.[-a-z0-9.]+)[^\ .,;\t>">]
-color body brightmagenta black "[-a-z_0-9.]+@[-a-z_0-9.]+"
-mono body bold "[-a-z_0-9.]+@[-a-z_0-9.]+"
-color body brightyellow black "^Good signature"
-mono body bold "^Good signature"
-color body brightwhite red "^Bad signature from.*"
-mono body bold "^Bad signature from.*"
-
-
+++ /dev/null
-# shamelessly copied from
-# http://www.lunar-linux.org/index.php?option=com_content&task=view&id=44
-
-# set up the sidebar, default not visible
-set sidebar_width=12
-set sidebar_visible=no
-set sidebar_delim='|'
-
-# which mailboxes to list in the sidebar
-mailboxes =inbox =ml
-
-# color of folders with new mail
-color sidebar_new yellow default
-
-# ctrl-n, ctrl-p to select next, prev folder
-# ctrl-o to open selected folder
-bind index \CP sidebar-prev
-bind index \CN sidebar-next
-bind index \CO sidebar-open
-bind pager \CP sidebar-prev
-bind pager \CN sidebar-next
-bind pager \CO sidebar-open
-
-# I don't need these. just for documentation purposes. See below.
-# sidebar-scroll-up
-# sidebar-scroll-down
-
-# b toggles sidebar visibility
-macro index b '<enter-command>toggle sidebar_visible<enter>'
-macro pager b '<enter-command>toggle sidebar_visible<enter>'
-
-# Remap bounce-message function to "B"
-bind index B bounce-message
-
-#
-# Mario Holbe suggests:
-# macro index b '<enter-command>toggle sidebar_visible<enter><refresh>'
-# macro pager b '<enter-command>toggle sidebar_visible<enter><redraw-screen>'
-#
-
-
-# Documentation
-# =============
-#
-# sidebar_width (number)
-# Width of the sidebar.
-#
-# sidebar_visible (boolean)
-# Whether or not the sidebar is visible.
-#
-# sidebar_delim (string)
-# Specifies the delimiter between the sidebar and other screens
-#
-# color sidebar_new [fg] [bg]
-# The foreground (fg) and background (bg) color of folders that contain new
-# mail.
-#
-# sidebar-prev
-# Mutt's name for the operation that selects the previous folder.
-#
-# sidebar-next
-# Mutt's name for the operation that selects the next folder.
-#
-# sidebar-open
-# Mutt's name for the operation that opens the currently selected folder.
-#
-# sidebar-scroll-up
-# Only useful if you have more folders than lines in your terminal: scrolls one
-# page up through the list of folders.
-#
-# sidebar-scroll-down
-# Only useful if you have more folders than lines in your terminal: scrolls one
-# page down through the list of folders.
-#
+++ /dev/null
-#!/usr/bin/perl -wi
-
-use strict;
-
-my ($PATCHES, @patches);
-while (<>) {
- if (/^(---|Index:|diff) .*PATCHES/) {
- $PATCHES = 1;
- } elsif (/^(-|Index|diff)/) { # next patch
- $PATCHES = 0;
- print;
- } elsif ($PATCHES) {
- next if /^(===|\+\+\+|@@)/; # patch header
- next if /^ /; # context
- push @patches, $_;
- } else {
- print;
- }
- if (eof) {
- if (@patches) {
- print "--- a/PATCHES\n";
- print "+++ b/PATCHES\n";
- print "@@ -0,0 +" . scalar (@patches) . " @@\n";
- print @patches;
- }
- @patches = ();
- $PATCHES = 0;
- }
-}
-
+++ /dev/null
-#! /usr/bin/gawk -f
-
-BEGIN {
- sep = "============================================================================="
-}
-
-FILENAME ~ /debian$/ {
- nextfile
-}
-
-/^== END PATCH$/ {
- print ""
- nextfile
-}
-
-FNR == 1 {
- print FILENAME "\n" substr(sep, 0, length(FILENAME)) "\n"
- next
-}
-
-{
- print
-}
+++ /dev/null
-usr/share/doc/mutt usr/share/doc/mutt-dbg
+++ /dev/null
-debian/extra/mutt-patched.rc/*.rc etc/Muttrc.d
+++ /dev/null
-usr/share/doc/mutt usr/share/doc/mutt-patched
+++ /dev/null
-#!/bin/sh -e
-
-if [ "$1" = remove ] ; then
- dpkg-divert --remove --package mutt-patched --rename \
- --divert /usr/bin/mutt.org /usr/bin/mutt
-fi
-
-#DEBHELPER#
-
-exit 0
+++ /dev/null
-#!/bin/sh -e
-
-# Divert mutt to mutt.org so the binary from mutt-patched can replace it.
-# We do not need to divert the debugging symbols in the mutt-dbg package
-# as the debugging link in there points to the correct file in any case.
-
-if [ "$1" = install ] || [ "$1" = upgrade ] ; then
- dpkg-divert --add --package mutt-patched --rename \
- --divert /usr/bin/mutt.org /usr/bin/mutt
-fi
-
-#DEBHELPER#
-
-exit 0
+++ /dev/null
-etc/Muttrc.d
-usr/share/bug/mutt
+++ /dev/null
-Document: mutt
-Title: The Mutt E-Mail Client Manual
-Author: Various
-Abstract: The documentation for Mutt, a sophisticated text oriented mail
- user agent ("mail reader").
-Section: Network/Communication
-
-Format: text
-Files: /usr/share/doc/mutt/manual.txt.gz
-
-Format: HTML
-Index: /usr/share/doc/mutt/html/manual.html
-Files: /usr/share/doc/mutt/html/*
-
+++ /dev/null
-debian/extra/README.SMIME
-debian/tmp/README.Patches
-debian/tmp/usr/share/doc/NEWS
-debian/tmp/usr/share/doc/NEWS.old
-debian/tmp/usr/share/doc/TODO
-debian/tmp/usr/share/doc/README
-debian/tmp/usr/share/doc/README.SSL
-debian/tmp/usr/share/doc/README.SECURITY
-debian/tmp/usr/share/doc/PGP-Notes.txt
-debian/tmp/usr/share/doc/manual.txt
+++ /dev/null
-debian/extra/samples/*
-debian/tmp/etc/Muttrc
-debian/tmp/usr/share/doc/samples/*
+++ /dev/null
-debian/tmp/usr/bin/mutt
-debian/tmp/usr/bin/smime_keys
-debian/tmp/usr/bin/mutt_dotlock
-debian/tmp/usr/share/locale/*
-
-debian/extra/lib/mailspell usr/lib/mutt
-debian/tmp/usr/bin/pgpring usr/lib/mutt
-debian/tmp/usr/bin/pgpewrap usr/lib/mutt
-debian/extra/lib/source-muttrc.d usr/lib/mutt
-debian/extra/lib/debian-ldap-query usr/lib/mutt
-
-debian/tmp/Muttrc etc
-debian/tmp/gpg.rc etc/Muttrc.d
-contrib/smime.rc etc/Muttrc.d
-debian/extra/rc/*.rc etc/Muttrc.d
-debian/extra/mutt.xpm usr/share/pixmaps
-debian/tmp/usr/share/doc/*.html usr/share/doc/mutt/html
+++ /dev/null
-mutt: setgid-binary usr/bin/mutt_dotlock 2755 root/mail
+++ /dev/null
-debian/tmp/usr/share/man/man1/mutt.1
-debian/tmp/usr/share/man/man1/mutt_dotlock.1
-debian/tmp/usr/share/man/man5/muttrc.5
-debian/tmp/usr/share/man/man5/mbox.5
-debian/tmp/usr/share/man/man5/mmdf.5
+++ /dev/null
-?package(mutt): title="Mutt" \
- section="Applications/Network/Communication" hints="Mail" \
- needs="text" \
- icon="/usr/share/pixmaps/mutt.xpm" \
- command="/usr/bin/mutt"
+++ /dev/null
-message/rfc822; mutt -Rf '%s'; edit=mutt -f '%s'; needsterminal
+++ /dev/null
-#!/bin/sh
-
-if [ "$1" = "upgrade" ] && dpkg --compare-versions "$2" lt "1.5.19-2" ; then
- MD5SUM=$(md5sum /etc/Muttrc.d/smime-paths.rc | cut -d ' ' -f 1)
- if [ "$MD5SUM" = "185414b78b332a662500719a179778c5" ] ; then
- echo "Removing obsolete config file /etc/Muttrc.d/smime-paths.rc"
- rm /etc/Muttrc.d/smime-paths.rc
- else
- echo "Not removing modified obsolete config file /etc/Muttrc.d/smime-paths.rc"
- fi
-fi
-
-#DEBHELPER#
-
-exit 0
+++ /dev/null
---- a/init.c
-+++ b/init.c
-@@ -46,6 +46,7 @@
- #include <unistd.h>
- #include <string.h>
- #include <sys/utsname.h>
-+#include <netdb.h>
- #include <errno.h>
- #include <sys/wait.h>
-
-@@ -2911,6 +2912,31 @@ static int mutt_execute_commands (LIST *
- return 0;
- }
-
-+int getmailname(char *s, size_t l)
-+{
-+ FILE *f;
-+ char tmp[512];
-+ char *p = tmp;
-+
-+ if ((f = fopen ("/etc/mailname", "r")) == NULL)
-+ return (-1);
-+
-+ if (fgets (tmp, 510, f) != NULL) {
-+ while (*p && !ISSPACE(*p) && l > 0) {
-+ *s++ = *p++;
-+ l--;
-+ }
-+ if (*(s-1) == '.')
-+ s--;
-+ *s = 0;
-+
-+ fclose (f);
-+ return 0;
-+ }
-+ fclose (f);
-+ return (-1);
-+}
-+
- void mutt_init (int skip_sys_rc, LIST *commands)
- {
- struct passwd *pw;
-@@ -2982,10 +3008,25 @@ void mutt_init (int skip_sys_rc, LIST *c
- Hostname = mutt_substrdup (utsname.nodename, p);
- p++;
- strfcpy (buffer, p, sizeof (buffer)); /* save the domain for below */
-+ Fqdn = safe_strdup (utsname.nodename);
- }
- else
- Hostname = safe_strdup (utsname.nodename);
-
-+ /* if /etc/mailname exists use it and ignore everything else */
-+ if (getmailname(buffer, sizeof (buffer)) != -1)
-+ Fqdn = safe_strdup(buffer);
-+
-+ /* try gethostbyname(3) if /etc/mailname does not exists */
-+ if (!Fqdn) {
-+ struct hostent *hp;
-+
-+ if ((hp = gethostbyname(Hostname)))
-+ Fqdn = safe_strdup(hp->h_name);
-+ }
-+
-+ if (Fqdn) {
-+ } else
- #ifndef DOMAIN
- #define DOMAIN buffer
- if (!p && getdnsdomainname (buffer, sizeof (buffer)) == -1)
+++ /dev/null
-# vim:ft=diff
-
- * 2009-01-15 myon: refreshed for mutt-1.5.19; drop our list of ignored headers
- in favor of upstream's new unignore list
-
---- a/doc/Muttrc.head
-+++ b/doc/Muttrc.head
-@@ -12,6 +12,32 @@ unignore from: subject to cc date x-mail
- # Display the fields in this order
- hdr_order date from to cc subject
-
-+# emacs-like bindings
-+bind editor "\e<delete>" kill-word
-+bind editor "\e<backspace>" kill-word
-+
-+# map delete-char to a sane value
-+bind editor <delete> delete-char
-+
-+# some people actually like these settings
-+#set pager_stop
-+#bind pager <up> previous-line
-+#bind pager <down> next-line
-+
-+# Specifies how to sort messages in the index menu.
-+set sort=threads
-+
-+# Uncomment if your MTA does not strip Bcc: headers.
-+# (exim4 and postfix strip them, exim(3) does not.)
-+#unset write_bcc
-+# Postfix and qmail use Delivered-To for detecting loops
-+unset bounce_delivered
-+
-+set mixmaster="mixmaster-filter"
-+
-+# System-wide CA file managed by the ca-certificates package
-+set ssl_ca_certificates_file="/etc/ssl/certs/ca-certificates.crt"
-+
- # imitate the old search-body function
- macro index \eb "<search>~b " "search in message bodies"
-
-@@ -23,7 +49,7 @@ macro index,pager,attach,compose \cb "\
- "call urlview to extract URLs out of a message"
-
- # Show documentation when pressing F1
--macro generic,pager <F1> "<shell-escape> less @docdir@/manual.txt<Enter>" "show Mutt documentation"
-+macro generic,pager <F1> "<shell-escape> zcat @docdir@/mutt/manual.txt.gz | sensible-pager<enter>" "show Mutt documentation"
-
- # show the incoming mailboxes list (just like "mutt -y") and back when pressing "y"
- macro index,pager y "<change-folder>?<toggle-mailboxes>" "show incoming mailboxes list"
-@@ -35,7 +61,7 @@ bind browser y exit
- # append-hook \\.gz$ "gzip -c %t >> %f"
-
- # If Mutt is unable to determine your site's domain name correctly, you can
--# set the default here.
-+# set the default here. (better: fix /etc/mailname)
- #
- # set hostname=cs.hmc.edu
-
-@@ -101,6 +127,9 @@ attachments +I text/plain
- attachments -A message/external-body
- attachments -I message/external-body
-
-+# enable mime lookup by extension
-+mime_lookup application/octet-stream
-+
- ##
- ## More settings
- ##
+++ /dev/null
-On upstream inclusion of the assumed_charset patch (past 1.5.14), file_charset
-got renamed to attach_charset. We add it back for compatibility.
-
-Index: mutt/init.h
-===================================================================
---- mutt.orig/init.h 2007-03-12 19:11:53.000000000 +0100
-+++ mutt/init.h 2007-03-12 19:13:56.000000000 +0100
-@@ -248,6 +248,9 @@ struct option_t MuttVars[] = {
- ** Note: "iso-2022-*" must be put at the head of the value as shown above
- ** if included.
- */
-+ { "file_charset", DT_SYN, R_NONE, UL "attach_charset", 0 },
-+ /*
-+ */
- { "attach_format", DT_STR, R_NONE, UL &AttachFormat, UL "%u%D%I %t%4n %T%.40d%> [%.7m/%.10M, %.6e%?C?, %C?, %s] " },
- /*
- ** .pp
+++ /dev/null
---- a/doc/Makefile.am
-+++ b/doc/Makefile.am
-@@ -98,7 +98,8 @@ uninstall-local:
-
- check:
- manual.txt: manual.html
-- -LC_ALL=C lynx -dump -nolist -with_backspaces manual.html > $@ || \
-+ links.main -dump $< > $@ || links -dump $< > $@ || \
-+ LC_ALL=C lynx -dump -nolist -with_backspaces manual.html > $@ || \
- LC_ALL=C w3m -dump manual.html > $@ || \
- LC_ALL=C elinks -dump -no-numbering -no-references manual.html | sed -e 's,\\001, ,g' > $@
-
-@@ -112,10 +113,10 @@ stamp-doc-rc: $(top_srcdir)/init.h maked
- touch stamp-doc-rc
-
- manual.html: $(srcdir)/html.xsl $(srcdir)/mutt.xsl stamp-doc-xml $(srcdir)/mutt.css
-- -xsltproc --nonet -o $@ $(srcdir)/html.xsl manual.xml
-+ xsltproc --nonet -o $@ $(srcdir)/html.xsl manual.xml
-
- stamp-doc-chunked: $(srcdir)/chunk.xsl $(srcdir)/mutt.xsl stamp-doc-xml $(srcdir)/mutt.css
-- -xsltproc --nonet $(srcdir)/chunk.xsl manual.xml
-+ xsltproc --nonet $(srcdir)/chunk.xsl manual.xml
- touch stamp-doc-chunked
-
- $(HTML_DOCFILES): stamp-doc-chunked
+++ /dev/null
---- a/doc/mutt.man
-+++ b/doc/mutt.man
-@@ -167,7 +167,7 @@ User's personal mapping between MIME typ
- System mapping between MIME types and file extensions.
- .IP "@bindir@/mutt_dotlock"
- The privileged dotlocking program.
--.IP "@docdir@/manual.txt"
-+.IP "/usr/share/doc/mutt/manual.txt.gz"
- The Mutt manual.
- .SH BUGS
- .PP
+++ /dev/null
---- a/init.h
-+++ b/init.h
-@@ -304,6 +304,9 @@ struct option_t MuttVars[] = {
- ** .pp
- ** When this variable is \fIset\fP, mutt will include Delivered-To headers when
- ** bouncing messages. Postfix users may wish to \fIunset\fP this variable.
-+ ** .pp
-+ ** \fBNote:\fP On Debian systems, this option is unset by default in
-+ ** /etc/Muttrc.
- */
- { "braille_friendly", DT_BOOL, R_NONE, OPTBRAILLEFRIENDLY, 0 },
- /*
-@@ -866,6 +869,9 @@ struct option_t MuttVars[] = {
- ** one is not used.
- ** .pp
- ** Also see $$use_domain and $$hidden_host.
-+ ** .pp
-+ ** \fBNote:\fP On Debian systems, the default for this variable is obtained
-+ ** from /etc/mailname when Mutt starts.
- */
- { "ignore_linear_white_space", DT_BOOL, R_NONE, OPTIGNORELWS, 0 },
- /*
-@@ -1399,6 +1405,9 @@ struct option_t MuttVars[] = {
- ** system. It is used with various sets of parameters to gather the
- ** list of known remailers, and to finally send a message through the
- ** mixmaster chain.
-+ ** .pp
-+ ** \fBNote:\fP On Debian systems, this option is set by default to
-+ ** ``mixmaster-filter'' in /etc/Muttrc.
- */
- #endif
- { "move", DT_QUAD, R_NONE, OPT_MOVE, M_NO },
-@@ -1999,6 +2008,10 @@ struct option_t MuttVars[] = {
- ** This variable contains the name of either a directory, or a file which
- ** contains trusted certificates for use with OpenSSL.
- ** (S/MIME only)
-+ ** .pp
-+ ** \fBNote:\fP On Debian systems, this defaults to the first existing file in
-+ ** the following list: ~/.smime/ca-certificates.crt ~/.smime/ca-bundle.crt
-+ ** /etc/ssl/certs/ca-certificates.crt.
- */
- { "smime_certificates", DT_PATH, R_NONE, UL &SmimeCertificates, 0 },
- /*
-@@ -2237,6 +2250,9 @@ struct option_t MuttVars[] = {
- ** .ts
- ** set ssl_ca_certificates_file=/etc/ssl/certs/ca-certificates.crt
- ** .te
-+ ** .pp
-+ ** \fBNote:\fP On Debian systems, this variable defaults to the example
-+ ** mentioned. This file is managed by the ``ca-certificates'' package.
- */
- # endif /* USE_SSL_GNUTLS */
- #endif /* defined(USE_SSL) */
-@@ -2873,6 +2889,9 @@ struct option_t MuttVars[] = {
- ** .pp
- ** You may optionally use the ``reverse-'' prefix to specify reverse sorting
- ** order (example: ``\fCset sort=reverse-date-sent\fP'').
-+ ** .pp
-+ ** \fBNote:\fP On Debian systems, this option is set by default to
-+ ** ``threads'' in /etc/Muttrc.
- */
- { "sort_alias", DT_SORT|DT_SORT_ALIAS, R_NONE, UL &SortAlias, SORT_ALIAS },
- /*
-@@ -3306,6 +3325,9 @@ struct option_t MuttVars[] = {
- ** is set to deliver directly via SMTP (see $$smtp_url), this
- ** option does nothing: mutt will never write out the ``Bcc:'' header
- ** in this case.
-+ ** .pp
-+ ** \fBNote:\fP On Debian systems, exim4 and postfix strip BCC headers by
-+ ** default. The above warning applies to exim3 users, see /etc/Muttrc.
- */
- {"xterm_icon", DT_STR, R_BOTH, UL &XtermIcon, UL "M%?n?AIL&ail?"},
- /*
+++ /dev/null
---- a/init.h
-+++ b/init.h
-@@ -19,7 +19,7 @@
-
- #ifdef _MAKEDOC
- # include "config.h"
--# include "doc/makedoc-defs.h"
-+/* # include "makedoc-defs.h" include only documented options for Debian */
- #else
- # include "sort.h"
- #endif
---- a/functions.h
-+++ b/functions.h
-@@ -35,7 +35,7 @@
-
- #ifdef _MAKEDOC
- # include "config.h"
--# include "doc/makedoc-defs.h"
-+/* # include "doc/makedoc-defs.h" include only documented options for Debian */
- #endif
-
- struct binding_t OpGeneric[] = { /* map: generic */
+++ /dev/null
-Index: trunk/patchlist.sh
-===================================================================
---- trunk.orig/patchlist.sh 2007-03-15 15:50:14.000000000 +0100
-+++ trunk/patchlist.sh 2007-03-15 15:50:41.000000000 +0100
-@@ -15,6 +15,6 @@ EOF
-
- while read patch ; do
- echo " puts (\"${patch}\");"
--done
-+done | LC_COLLATE=C sort
-
- echo "}"
+++ /dev/null
---- a/init.c
-+++ b/init.c
-@@ -3114,7 +3114,7 @@ void mutt_init (int skip_sys_rc, LIST *c
- {
- p = getenv ("EDITOR");
- if (!p)
-- p = "vi";
-+ p = "/usr/bin/editor";
- }
- Editor = safe_strdup (p);
- Visual = safe_strdup (p);
---- a/init.h
-+++ b/init.h
-@@ -589,7 +589,7 @@ struct option_t MuttVars[] = {
- ** .pp
- ** This variable specifies which editor is used by mutt.
- ** It defaults to the value of the \fC$$$VISUAL\fP, or \fC$$$EDITOR\fP, environment
-- ** variable, or to the string ``vi'' if neither of those are set.
-+ ** variable, or to the string ``/usr/bin/editor'' if neither of those are set.
- */
- { "encode_from", DT_BOOL, R_NONE, OPTENCODEFROM, 0 },
- /*
+++ /dev/null
-diff -ruN mutt.orig/globals.h mutt/globals.h
---- mutt.orig/globals.h 2003-09-13 16:23:24.000000000 +0200
-+++ mutt/globals.h 2003-09-13 16:23:18.000000000 +0200
-@@ -195,6 +195,8 @@
- WHERE char *PgpListSecringCommand;
- WHERE char *PgpListPubringCommand;
- WHERE char *PgpGetkeysCommand;
-+WHERE char *PgpMimeSignatureFilename;
-+WHERE char *PgpMimeSignatureDescription;
-
- /*-- formerly in smime.h --*/
- WHERE char *SmimeDefaultKey;
-diff -ruN mutt.orig/init.h mutt/init.h
---- mutt.orig/init.h 2003-09-13 16:23:24.000000000 +0200
-+++ mutt/init.h 2003-09-13 16:21:53.000000000 +0200
-@@ -1458,6 +1458,18 @@
- ** This option overrides ``$$pgp_create_traditional''
- ** (PGP only)
- */
-+ { "pgp_mime_signature_filename", DT_STR, R_NONE, UL &PgpMimeSignatureFilename, UL "signature.asc"},
-+ /*
-+ ** .pp
-+ ** This option sets the filename used for signature parts in PGP/MIME
-+ ** signed messages.
-+ */
-+ { "pgp_mime_signature_description", DT_STR, R_NONE, UL &PgpMimeSignatureDescription, UL "Digital signature"},
-+ /*
-+ ** .pp
-+ ** This option sets the Content-Description used for signature parts in
-+ ** PGP/MIME signed messages.
-+ */
-
- /* XXX Default values! */
-
-diff -ruN mutt.orig/pgp.c mutt/pgp.c
---- mutt.orig/pgp.c 2003-09-13 16:23:24.000000000 +0200
-+++ mutt/pgp.c 2003-09-13 16:21:53.000000000 +0200
-@@ -998,6 +998,8 @@
- t->disposition = DISPINLINE;
- t->encoding = ENC7BIT;
- t->unlink = 1; /* ok to remove this file after sending. */
-+ mutt_set_parameter ("name", PgpMimeSignatureFilename, &t->parameter);
-+ t->description = safe_strdup (PgpMimeSignatureDescription);
-
- return (a);
- }
---- a/PATCHES
-+++ b/PATCHES
-@@ -0,0 +1 @@
-+patch-1.5.4.vk.pgp_verbose_mime
+++ /dev/null
-# vi: ft=diff
-This is the compressed folders patch by Roland Rosenfeld
-<roland@spinnaker.de>.
-
-The home page for this patch is:
-
- http://www.spinnaker.de/mutt/compressed/
-
-* Patch last synced with upstream:
- - Date: 2008-05-20
- - File: http://www.spinnaker.de/mutt/compressed/patch-1.5.18.rr.compressed.1.gz
-
-* Changes made:
- - 2008-05-20 myon: refreshed to remove hunks in auto* files
- - 2009-09-15 myon: refreshed for mutt-1.5.19
- status.c:103: add sizeof (tmp) to mutt_pretty_mailbox
- - 2009-09-15 scotton: removed doc/Muttrc for mutt-1.5.19 (only patch doc/Muttrc.head)
-
-== END PATCH
---- /dev/null
-+++ b/compress.c
-@@ -0,0 +1,499 @@
-+/*
-+ * Copyright (C) 1997 Alain Penders <Alain@Finale-Dev.com>
-+ *
-+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ */
-+
-+#if HAVE_CONFIG_H
-+# include "config.h"
-+#endif
-+
-+#include "mutt.h"
-+
-+#ifdef USE_COMPRESSED
-+
-+#include "mx.h"
-+#include "mailbox.h"
-+#include "mutt_curses.h"
-+
-+#include <errno.h>
-+#include <string.h>
-+#include <unistd.h>
-+#include <sys/stat.h>
-+
-+typedef struct
-+{
-+ const char *close; /* close-hook command */
-+ const char *open; /* open-hook command */
-+ const char *append; /* append-hook command */
-+ off_t size; /* size of real folder */
-+} COMPRESS_INFO;
-+
-+
-+/*
-+ * ctx - context to lock
-+ * excl - exclusive lock?
-+ * retry - should retry if unable to lock?
-+ */
-+int mbox_lock_compressed (CONTEXT *ctx, FILE *fp, int excl, int retry)
-+{
-+ int r;
-+
-+ if ((r = mx_lock_file (ctx->realpath, fileno (fp), excl, 1, retry)) == 0)
-+ ctx->locked = 1;
-+ else if (retry && !excl)
-+ {
-+ ctx->readonly = 1;
-+ return 0;
-+ }
-+
-+ return (r);
-+}
-+
-+void mbox_unlock_compressed (CONTEXT *ctx, FILE *fp)
-+{
-+ if (ctx->locked)
-+ {
-+ fflush (fp);
-+
-+ mx_unlock_file (ctx->realpath, fileno (fp), 1);
-+ ctx->locked = 0;
-+ }
-+}
-+
-+static int is_new (const char *path)
-+{
-+ return (access (path, W_OK) != 0 && errno == ENOENT) ? 1 : 0;
-+}
-+
-+static const char* find_compress_hook (int type, const char *path)
-+{
-+ const char* c = mutt_find_hook (type, path);
-+ return (!c || !*c) ? NULL : c;
-+}
-+
-+int mutt_can_read_compressed (const char *path)
-+{
-+ return find_compress_hook (M_OPENHOOK, path) ? 1 : 0;
-+}
-+
-+/*
-+ * if the file is new, we really do not append, but create, and so use
-+ * close-hook, and not append-hook
-+ */
-+static const char* get_append_command (const char *path, const CONTEXT* ctx)
-+{
-+ COMPRESS_INFO *ci = (COMPRESS_INFO *) ctx->compressinfo;
-+ return (is_new (path)) ? ci->close : ci->append;
-+}
-+
-+int mutt_can_append_compressed (const char *path)
-+{
-+ int magic;
-+
-+ if (is_new (path))
-+ {
-+ char *dir_path = safe_strdup(path);
-+ char *aux = strrchr(dir_path, '/');
-+ int dir_valid = 1;
-+ if (aux)
-+ {
-+ *aux='\0';
-+ if (access(dir_path, W_OK|X_OK))
-+ dir_valid = 0;
-+ }
-+ safe_free((void**)&dir_path);
-+ return dir_valid && (find_compress_hook (M_CLOSEHOOK, path) ? 1 : 0);
-+ }
-+
-+ magic = mx_get_magic (path);
-+
-+ if (magic != 0 && magic != M_COMPRESSED)
-+ return 0;
-+
-+ return (find_compress_hook (M_APPENDHOOK, path)
-+ || (find_compress_hook (M_OPENHOOK, path)
-+ && find_compress_hook (M_CLOSEHOOK, path))) ? 1 : 0;
-+}
-+
-+/* open a compressed mailbox */
-+static COMPRESS_INFO *set_compress_info (CONTEXT *ctx)
-+{
-+ COMPRESS_INFO *ci;
-+
-+ /* Now lets uncompress this thing */
-+ ci = safe_malloc (sizeof (COMPRESS_INFO));
-+ ctx->compressinfo = (void*) ci;
-+ ci->append = find_compress_hook (M_APPENDHOOK, ctx->path);
-+ ci->open = find_compress_hook (M_OPENHOOK, ctx->path);
-+ ci->close = find_compress_hook (M_CLOSEHOOK, ctx->path);
-+ return ci;
-+}
-+
-+static void set_path (CONTEXT* ctx)
-+{
-+ char tmppath[_POSIX_PATH_MAX];
-+
-+ /* Setup the right paths */
-+ ctx->realpath = ctx->path;
-+
-+ /* Uncompress to /tmp */
-+ mutt_mktemp (tmppath);
-+ ctx->path = safe_malloc (strlen (tmppath) + 1);
-+ strcpy (ctx->path, tmppath);
-+}
-+
-+static int get_size (const char* path)
-+{
-+ struct stat sb;
-+ if (stat (path, &sb) != 0)
-+ return 0;
-+ return (sb.st_size);
-+}
-+
-+static void store_size (CONTEXT* ctx)
-+{
-+ COMPRESS_INFO *ci = (COMPRESS_INFO *) ctx->compressinfo;
-+ ci->size = get_size (ctx->realpath);
-+}
-+
-+static const char *
-+compresshook_format_str (char *dest, size_t destlen, size_t col, char op,
-+ const char *src, const char *fmt,
-+ const char *ifstring, const char *elsestring,
-+ unsigned long data, format_flag flags)
-+{
-+ char tmp[SHORT_STRING];
-+
-+ CONTEXT *ctx = (CONTEXT *) data;
-+ switch (op)
-+ {
-+ case 'f':
-+ snprintf (tmp, sizeof (tmp), "%%%ss", fmt);
-+ snprintf (dest, destlen, tmp, ctx->realpath);
-+ break;
-+ case 't':
-+ snprintf (tmp, sizeof (tmp), "%%%ss", fmt);
-+ snprintf (dest, destlen, tmp, ctx->path);
-+ break;
-+ }
-+ return (src);
-+}
-+
-+/*
-+ * check that the command has both %f and %t
-+ * 0 means OK, -1 means error
-+ */
-+int mutt_test_compress_command (const char* cmd)
-+{
-+ return (strstr (cmd, "%f") && strstr (cmd, "%t")) ? 0 : -1;
-+}
-+
-+static char *get_compression_cmd (const char* cmd, const CONTEXT* ctx)
-+{
-+ char expanded[_POSIX_PATH_MAX];
-+ mutt_FormatString (expanded, sizeof (expanded), 0, cmd,
-+ compresshook_format_str, (unsigned long) ctx, 0);
-+ return safe_strdup (expanded);
-+}
-+
-+int mutt_check_mailbox_compressed (CONTEXT* ctx)
-+{
-+ COMPRESS_INFO *ci = (COMPRESS_INFO *) ctx->compressinfo;
-+ if (ci->size != get_size (ctx->realpath))
-+ {
-+ FREE (&ctx->compressinfo);
-+ FREE (&ctx->realpath);
-+ mutt_error _("Mailbox was corrupted!");
-+ return (-1);
-+ }
-+ return (0);
-+}
-+
-+int mutt_open_read_compressed (CONTEXT *ctx)
-+{
-+ char *cmd;
-+ FILE *fp;
-+ int rc;
-+
-+ COMPRESS_INFO *ci = set_compress_info (ctx);
-+ if (!ci->open) {
-+ ctx->magic = 0;
-+ FREE (&ctx->compressinfo);
-+ return (-1);
-+ }
-+ if (!ci->close || access (ctx->path, W_OK) != 0)
-+ ctx->readonly = 1;
-+
-+ set_path (ctx);
-+ store_size (ctx);
-+
-+ if (!ctx->quiet)
-+ mutt_message (_("Decompressing %s..."), ctx->realpath);
-+
-+ cmd = get_compression_cmd (ci->open, ctx);
-+ if (cmd == NULL)
-+ return (-1);
-+ dprint (2, (debugfile, "DecompressCmd: '%s'\n", cmd));
-+
-+ if ((fp = fopen (ctx->realpath, "r")) == NULL)
-+ {
-+ mutt_perror (ctx->realpath);
-+ FREE (&cmd);
-+ return (-1);
-+ }
-+ mutt_block_signals ();
-+ if (mbox_lock_compressed (ctx, fp, 0, 1) == -1)
-+ {
-+ fclose (fp);
-+ mutt_unblock_signals ();
-+ mutt_error _("Unable to lock mailbox!");
-+ FREE (&cmd);
-+ return (-1);
-+ }
-+
-+ endwin ();
-+ fflush (stdout);
-+ fprintf (stderr, _("Decompressing %s...\n"),ctx->realpath);
-+ rc = mutt_system (cmd);
-+ mbox_unlock_compressed (ctx, fp);
-+ mutt_unblock_signals ();
-+ fclose (fp);
-+
-+ if (rc)
-+ {
-+ mutt_any_key_to_continue (NULL);
-+ ctx->magic = 0;
-+ FREE (&ctx->compressinfo);
-+ mutt_error (_("Error executing: %s : unable to open the mailbox!\n"), cmd);
-+ }
-+ FREE (&cmd);
-+ if (rc)
-+ return (-1);
-+
-+ if (mutt_check_mailbox_compressed (ctx))
-+ return (-1);
-+
-+ ctx->magic = mx_get_magic (ctx->path);
-+
-+ return (0);
-+}
-+
-+void restore_path (CONTEXT* ctx)
-+{
-+ FREE (&ctx->path);
-+ ctx->path = ctx->realpath;
-+}
-+
-+/* remove the temporary mailbox */
-+void remove_file (CONTEXT* ctx)
-+{
-+ if (ctx->magic == M_MBOX || ctx->magic == M_MMDF)
-+ remove (ctx->path);
-+}
-+
-+int mutt_open_append_compressed (CONTEXT *ctx)
-+{
-+ FILE *fh;
-+ COMPRESS_INFO *ci = set_compress_info (ctx);
-+
-+ if (!get_append_command (ctx->path, ctx))
-+ {
-+ if (ci->open && ci->close)
-+ return (mutt_open_read_compressed (ctx));
-+
-+ ctx->magic = 0;
-+ FREE (&ctx->compressinfo);
-+ return (-1);
-+ }
-+
-+ set_path (ctx);
-+
-+ ctx->magic = DefaultMagic;
-+
-+ if (!is_new (ctx->realpath))
-+ if (ctx->magic == M_MBOX || ctx->magic == M_MMDF)
-+ if ((fh = fopen (ctx->path, "w")))
-+ fclose (fh);
-+ /* No error checking - the parent function will catch it */
-+
-+ return (0);
-+}
-+
-+/* close a compressed mailbox */
-+void mutt_fast_close_compressed (CONTEXT *ctx)
-+{
-+ dprint (2, (debugfile, "mutt_fast_close_compressed called on '%s'\n",
-+ ctx->path));
-+
-+ if (ctx->compressinfo)
-+ {
-+ if (ctx->fp)
-+ fclose (ctx->fp);
-+ ctx->fp = NULL;
-+ /* if the folder was removed, remove the gzipped folder too */
-+ if ((ctx->magic > 0)
-+ && (access (ctx->path, F_OK) != 0)
-+ && ! option (OPTSAVEEMPTY))
-+ remove (ctx->realpath);
-+ else
-+ remove_file (ctx);
-+
-+ restore_path (ctx);
-+ FREE (&ctx->compressinfo);
-+ }
-+}
-+
-+/* return 0 on success, -1 on failure */
-+int mutt_sync_compressed (CONTEXT* ctx)
-+{
-+ char *cmd;
-+ int rc = 0;
-+ FILE *fp;
-+ COMPRESS_INFO *ci = (COMPRESS_INFO *) ctx->compressinfo;
-+
-+ if (!ctx->quiet)
-+ mutt_message (_("Compressing %s..."), ctx->realpath);
-+
-+ cmd = get_compression_cmd (ci->close, ctx);
-+ if (cmd == NULL)
-+ return (-1);
-+
-+ if ((fp = fopen (ctx->realpath, "a")) == NULL)
-+ {
-+ mutt_perror (ctx->realpath);
-+ FREE (&cmd);
-+ return (-1);
-+ }
-+ mutt_block_signals ();
-+ if (mbox_lock_compressed (ctx, fp, 1, 1) == -1)
-+ {
-+ fclose (fp);
-+ mutt_unblock_signals ();
-+ mutt_error _("Unable to lock mailbox!");
-+ store_size (ctx);
-+ FREE (&cmd);
-+ return (-1);
-+ }
-+
-+ dprint (2, (debugfile, "CompressCommand: '%s'\n", cmd));
-+
-+ endwin ();
-+ fflush (stdout);
-+ fprintf (stderr, _("Compressing %s...\n"), ctx->realpath);
-+ if (mutt_system (cmd))
-+ {
-+ mutt_any_key_to_continue (NULL);
-+ mutt_error (_("%s: Error compressing mailbox! Original mailbox deleted, uncompressed one kept!\n"), ctx->path);
-+ rc = -1;
-+ }
-+
-+ mbox_unlock_compressed (ctx, fp);
-+ mutt_unblock_signals ();
-+ fclose (fp);
-+
-+ FREE (&cmd);
-+
-+ store_size (ctx);
-+
-+ return (rc);
-+}
-+
-+int mutt_slow_close_compressed (CONTEXT *ctx)
-+{
-+ FILE *fp;
-+ const char *append;
-+ char *cmd;
-+ COMPRESS_INFO *ci = (COMPRESS_INFO *) ctx->compressinfo;
-+
-+ dprint (2, (debugfile, "mutt_slow_close_compressed called on '%s'\n",
-+ ctx->path));
-+
-+ if (! (ctx->append
-+ && ((append = get_append_command (ctx->realpath, ctx))
-+ || (append = ci->close))))
-+ {
-+ /* if we can not or should not append, we only have to remove the */
-+ /* compressed info, because sync was already called */
-+ mutt_fast_close_compressed (ctx);
-+ return (0);
-+ }
-+
-+ if (ctx->fp)
-+ fclose (ctx->fp);
-+ ctx->fp = NULL;
-+
-+ if (!ctx->quiet)
-+ {
-+ if (append == ci->close)
-+ mutt_message (_("Compressing %s..."), ctx->realpath);
-+ else
-+ mutt_message (_("Compressed-appending to %s..."), ctx->realpath);
-+ }
-+
-+ cmd = get_compression_cmd (append, ctx);
-+ if (cmd == NULL)
-+ return (-1);
-+
-+ if ((fp = fopen (ctx->realpath, "a")) == NULL)
-+ {
-+ mutt_perror (ctx->realpath);
-+ FREE (&cmd);
-+ return (-1);
-+ }
-+ mutt_block_signals ();
-+ if (mbox_lock_compressed (ctx, fp, 1, 1) == -1)
-+ {
-+ fclose (fp);
-+ mutt_unblock_signals ();
-+ mutt_error _("Unable to lock mailbox!");
-+ FREE (&cmd);
-+ return (-1);
-+ }
-+
-+ dprint (2, (debugfile, "CompressCmd: '%s'\n", cmd));
-+
-+ endwin ();
-+ fflush (stdout);
-+
-+ if (append == ci->close)
-+ fprintf (stderr, _("Compressing %s...\n"), ctx->realpath);
-+ else
-+ fprintf (stderr, _("Compressed-appending to %s...\n"), ctx->realpath);
-+
-+ if (mutt_system (cmd))
-+ {
-+ mutt_any_key_to_continue (NULL);
-+ mutt_error (_(" %s: Error compressing mailbox! Uncompressed one kept!\n"),
-+ ctx->path);
-+ FREE (&cmd);
-+ mbox_unlock_compressed (ctx, fp);
-+ mutt_unblock_signals ();
-+ fclose (fp);
-+ return (-1);
-+ }
-+
-+ mbox_unlock_compressed (ctx, fp);
-+ mutt_unblock_signals ();
-+ fclose (fp);
-+ remove_file (ctx);
-+ restore_path (ctx);
-+ FREE (&cmd);
-+ FREE (&ctx->compressinfo);
-+
-+ return (0);
-+}
-+
-+#endif /* USE_COMPRESSED */
---- /dev/null
-+++ b/compress.h
-@@ -0,0 +1,27 @@
-+/*
-+ * Copyright (C) 1997 Alain Penders <Alain@Finale-Dev.com>
-+ *
-+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ */
-+
-+int mutt_can_read_compressed (const char *);
-+int mutt_can_append_compressed (const char *);
-+int mutt_open_read_compressed (CONTEXT *);
-+int mutt_open_append_compressed (CONTEXT *);
-+int mutt_slow_close_compressed (CONTEXT *);
-+int mutt_sync_compressed (CONTEXT *);
-+int mutt_test_compress_command (const char *);
-+int mutt_check_mailbox_compressed (CONTEXT *);
-+void mutt_fast_close_compressed (CONTEXT *);
---- a/configure.ac
-+++ b/configure.ac
-@@ -795,6 +795,11 @@ AC_ARG_ENABLE(locales-fix, AC_HELP_STRIN
- AC_DEFINE(LOCALES_HACK,1,[ Define if the result of isprint() is unreliable. ])
- fi])
-
-+AC_ARG_ENABLE(compressed, AC_HELP_STRING([--enable-compressed], [Enable compressed folders support]),
-+ [if test x$enableval = xyes; then
-+ AC_DEFINE(USE_COMPRESSED,1, [ Define to support compressed folders. ])
-+ fi])
-+
- AC_ARG_WITH(exec-shell, AC_HELP_STRING([--with-exec-shell=SHELL], [Specify alternate shell (ONLY if /bin/sh is broken)]),
- [if test $withval != yes; then
- AC_DEFINE_UNQUOTED(EXECSHELL, "$withval",
---- a/curs_main.c
-+++ b/curs_main.c
-@@ -1128,6 +1128,11 @@ int mutt_index_menu (void)
- {
- int check;
-
-+#ifdef USE_COMPRESSED
-+ if (Context->compressinfo && Context->realpath)
-+ mutt_str_replace (&LastFolder, Context->realpath);
-+ else
-+#endif
- mutt_str_replace (&LastFolder, Context->path);
- oldcount = Context ? Context->msgcount : 0;
-
---- a/doc/manual.xml.head
-+++ b/doc/manual.xml.head
-@@ -5160,6 +5160,205 @@ macro pager \cb |urlview\n
-
- </chapter>
-
-+<sect1 id="compressedfolders">
-+<title>Compressed folders Support (OPTIONAL)</title>
-+
-+<para>
-+If Mutt was compiled with compressed folders support (by running the
-+<emphasis>configure</emphasis> script with the
-+<emphasis>--enable-compressed</emphasis> flag), Mutt can open folders
-+stored in an arbitrary format, provided that the user has a script to
-+convert from/to this format to one of the accepted.
-+
-+The most common use is to open compressed archived folders e.g. with
-+gzip.
-+
-+In addition, the user can provide a script that gets a folder in an
-+accepted format and appends its context to the folder in the
-+user-defined format, which may be faster than converting the entire
-+folder to the accepted format, appending to it and converting back to
-+the user-defined format.
-+
-+There are three hooks defined (<link
-+linkend="open-hook">open-hook</link>, <link
-+linkend="close-hook">close-hook</link> and <link
-+linkend="append-hook">append-hook</link>) which define commands to
-+uncompress and compress a folder and to append messages to an existing
-+compressed folder respectively.
-+
-+For example:
-+
-+<screen>
-+open-hook \\.gz$ "gzip -cd %f > %t"
-+close-hook \\.gz$ "gzip -c %t > %f"
-+append-hook \\.gz$ "gzip -c %t >> %f"
-+</screen>
-+
-+You do not have to specify all of the commands. If you omit <link
-+linkend="append-hook">append-hook</link>, the folder will be open and
-+closed again each time you will add to it. If you omit <link
-+linkend="close-hook">close-hook</link> (or give empty command) , the
-+folder will be open in the mode. If you specify <link
-+linkend="append-hook">append-hook</link> though you'll be able to
-+append to the folder.
-+
-+Note that Mutt will only try to use hooks if the file is not in one of
-+the accepted formats. In particular, if the file is empty, mutt
-+supposes it is not compressed. This is important because it allows the
-+use of programs that do not have well defined extensions. Just use
-+"." as a regexp. But this may be surprising if your
-+compressing script produces empty files. In this situation, unset
-+<link linkend="save-empty">$save_empty</link>, so that
-+the compressed file will be removed if you delete all of the messages.
-+</para>
-+
-+<sect2 id="open-hook">
-+<title>Open a compressed mailbox for reading</title>
-+
-+<para>
-+Usage: <literal>open-hook</literal> <emphasis>regexp</emphasis> "<emphasis>command</emphasis>"
-+
-+The <emphasis>command</emphasis> is the command that can be used for
-+opening the folders whose names match <emphasis>regexp</emphasis>.
-+
-+The <emphasis>command</emphasis> string is the printf-like format
-+string, and it should accept two parameters: %f, which is
-+replaced with the (compressed) folder name, and %t which is
-+replaced with the name of the temporary folder to which to write.
-+
-+%f and %t can be repeated any number of times in the
-+command string, and all of the entries are replaced with the
-+appropriate folder name. In addition, %% is replaced by
-+%, as in printf, and any other %anything is left as is.
-+
-+The <emphasis>command</emphasis> should <emphasis
-+role="bold">not</emphasis> remove the original compressed file. The
-+<emphasis>command</emphasis> should return non-zero exit status if it
-+fails, so mutt knows something's wrong.
-+
-+Example:
-+
-+<screen>
-+open-hook \\.gz$ "gzip -cd %f > %t"
-+</screen>
-+
-+If the <emphasis>command</emphasis> is empty, this operation is
-+disabled for this file type.
-+</para>
-+</sect2>
-+
-+<sect2 id="close-hook">
-+<title>Write a compressed mailbox</title>
-+
-+<para>
-+Usage: <literal>close-hook</literal> <emphasis>regexp</emphasis> "<emphasis>command</emphasis>"
-+
-+This is used to close the folder that was open with the <link
-+linkend="open-hook">open-hook</link> command after some changes were
-+made to it.
-+
-+The <emphasis>command</emphasis> string is the command that can be
-+used for closing the folders whose names match
-+<emphasis>regexp</emphasis>. It has the same format as in the <link
-+linkend="open-hook">open-hook</link> command. Temporary folder in this
-+case is the folder previously produced by the <link
-+linkend="open-hook">open-hook</link> command.
-+
-+The <emphasis>command</emphasis> should <emphasis
-+role="bold">not</emphasis> remove the decompressed file. The
-+<emphasis>command</emphasis> should return non-zero exit status if it
-+fails, so mutt knows something's wrong.
-+
-+Example:
-+
-+<screen>
-+close-hook \\.gz$ "gzip -c %t > %f"
-+</screen>
-+
-+If the <emphasis>command</emphasis> is empty, this operation is
-+disabled for this file type, and the file can only be open in the
-+read-only mode.
-+
-+<link linkend="close-hook">close-hook</link> is not called when you
-+exit from the folder if the folder was not changed.
-+</para>
-+</sect2>
-+
-+<sect2 id="append-hook">
-+<title>Append a message to a compressed mailbox</title>
-+
-+<para>
-+Usage: <literal>append-hook</literal> <emphasis>regexp</emphasis> "<emphasis>command</emphasis>"
-+
-+This command is used for saving to an existing compressed folder. The
-+<emphasis>command</emphasis> is the command that can be used for
-+appending to the folders whose names match
-+<emphasis>regexp</emphasis>. It has the same format as in the <link
-+linkend="open-hook">open-hook</link> command. The temporary folder in
-+this case contains the messages that are being appended.
-+
-+The <emphasis>command</emphasis> should <emphasis
-+role="bold">not</emphasis> remove the decompressed file. The
-+<emphasis>command</emphasis> should return non-zero exit status if it
-+fails, so mutt knows something's wrong.
-+
-+Example:
-+
-+<screen>
-+append-hook \\.gz$ "gzip -c %t >> %f"
-+</screen>
-+
-+When <link linkend="append-hook">append-hook</link> is used, the folder
-+is not opened, which saves time, but this means that we can not find
-+out what the folder type is. Thus the default (<link
-+linkend="mbox-type">$mbox_type</link>) type is always
-+supposed (i.e. this is the format used for the temporary folder).
-+
-+If the file does not exist when you save to it, <link
-+linkend="close-hook">close-hook</link> is called, and not <link
-+linkend="append-hook">append-hook</link>. <link
-+linkend="append-hook">append-hook</link> is only for appending to
-+existing folders.
-+
-+If the <emphasis>command</emphasis> is empty, this operation is
-+disabled for this file type. In this case, the folder will be open and
-+closed again (using <link linkend="open-hook">open-hook</link> and
-+<link linkend="close-hook">close-hook</link>respectively) each time you
-+will add to it.
-+</para>
-+</sect2>
-+
-+<sect2>
-+<title>Encrypted folders</title>
-+
-+<para>
-+The compressed folders support can also be used to handle encrypted
-+folders. If you want to encrypt a folder with PGP, you may want to use
-+the following hooks:
-+
-+<screen>
-+open-hook \\.pgp$ "pgp -f < %f > %t"
-+close-hook \\.pgp$ "pgp -fe YourPgpUserIdOrKeyId < %t > %f"
-+</screen>
-+
-+Please note, that PGP does not support appending to an encrypted
-+folder, so there is no append-hook defined.
-+
-+If you are using GnuPG instead of PGP, you may use the following hooks
-+instead:
-+
-+<screen>
-+open-hook \\.gpg$ "gpg --decrypt < %f > %t"
-+close-hook \\.gpg$ "gpg --encrypt --recipient YourGpgUserIdOrKeyId < %t > %f"
-+</screen>
-+
-+<emphasis role="bold">Note:</emphasis> the folder is temporary stored
-+decrypted in the /tmp directory, where it can be read by your system
-+administrator. So think about the security aspects of this.
-+</para>
-+</sect2>
-+</sect1>
-+
- <chapter id="mimesupport">
- <title>Mutt's MIME Support</title>
-
---- a/doc/Muttrc.head
-+++ b/doc/Muttrc.head
-@@ -29,6 +29,11 @@ macro generic,pager <F1> "<shell-escape>
- macro index,pager y "<change-folder>?<toggle-mailboxes>" "show incoming mailboxes list"
- bind browser y exit
-
-+# Use folders which match on \\.gz$ as gzipped folders:
-+# open-hook \\.gz$ "gzip -cd %f > %t"
-+# close-hook \\.gz$ "gzip -c %t > %f"
-+# append-hook \\.gz$ "gzip -c %t >> %f"
-+
- # If Mutt is unable to determine your site's domain name correctly, you can
- # set the default here.
- #
---- a/doc/muttrc.man.head
-+++ b/doc/muttrc.man.head
-@@ -345,6 +345,24 @@ specify the ID of the public key to be u
- to a certain recipient. The meaning of "key ID" is to be taken
- broadly: This can be a different e-mail address, a numerical key ID,
- or even just an arbitrary search string.
-+.PP
-+.nf
-+\fBopen-hook\fP \fIregexp\fP "\fIcommand\fP"
-+\fBclose-hook\fP \fIregexp\fP "\fIcommand\fP"
-+\fBappend-hook\fP \fIregexp\fP "\fIcommand\fP"
-+.fi
-+.IP
-+These commands provide a way to handle compressed folders. The given
-+\fBregexp\fP specifies which folders are taken as compressed (e.g.
-+"\fI\\\\.gz$\fP"). The commands tell Mutt how to uncompress a folder
-+(\fBopen-hook\fP), compress a folder (\fBclose-hook\fP) or append a
-+compressed mail to a compressed folder (\fBappend-hook\fP). The
-+\fIcommand\fP string is the
-+.BR printf (3)
-+like format string, and it should accept two parameters: \fB%f\fP,
-+which is replaced with the (compressed) folder name, and \fB%t\fP
-+which is replaced with the name of the temporary folder to which to
-+write.
- .TP
- \fBpush\fP \fIstring\fP
- This command adds the named \fIstring\fP to the keyboard buffer.
---- a/hook.c
-+++ b/hook.c
-@@ -24,6 +24,10 @@
- #include "mailbox.h"
- #include "mutt_crypt.h"
-
-+#ifdef USE_COMPRESSED
-+#include "compress.h"
-+#endif
-+
- #include <limits.h>
- #include <string.h>
- #include <stdlib.h>
-@@ -92,6 +96,16 @@ int mutt_parse_hook (BUFFER *buf, BUFFER
- memset (&pattern, 0, sizeof (pattern));
- pattern.data = safe_strdup (path);
- }
-+#ifdef USE_COMPRESSED
-+ else if (data & (M_APPENDHOOK | M_OPENHOOK | M_CLOSEHOOK))
-+ {
-+ if (mutt_test_compress_command (command.data))
-+ {
-+ strfcpy (err->data, _("badly formatted command string"), err->dsize);
-+ return (-1);
-+ }
-+ }
-+#endif
- else if (DefaultHook && !(data & (M_CHARSETHOOK | M_ICONVHOOK | M_ACCOUNTHOOK))
- && (!WithCrypto || !(data & M_CRYPTHOOK))
- )
---- a/init.h
-+++ b/init.h
-@@ -3452,6 +3452,11 @@ struct command_t Commands[] = {
- { "fcc-hook", mutt_parse_hook, M_FCCHOOK },
- { "fcc-save-hook", mutt_parse_hook, M_FCCHOOK | M_SAVEHOOK },
- { "folder-hook", mutt_parse_hook, M_FOLDERHOOK },
-+#ifdef USE_COMPRESSED
-+ { "open-hook", mutt_parse_hook, M_OPENHOOK },
-+ { "close-hook", mutt_parse_hook, M_CLOSEHOOK },
-+ { "append-hook", mutt_parse_hook, M_APPENDHOOK },
-+#endif
- { "group", parse_group, 0 },
- { "ungroup", parse_ungroup, 0 },
- { "hdr_order", parse_list, UL &HeaderOrderList },
---- a/main.c
-+++ b/main.c
-@@ -402,6 +402,12 @@ static void show_version (void)
- #else
- "-LOCALES_HACK "
- #endif
-+
-+#ifdef USE_COMPRESSED
-+ "+COMPRESSED "
-+#else
-+ "-COMPRESSED "
-+#endif
-
- #ifdef HAVE_WC_FUNCS
- "+HAVE_WC_FUNCS "
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -18,7 +18,7 @@ BUILT_SOURCES = keymap_defs.h patchlist.
- bin_PROGRAMS = mutt @DOTLOCK_TARGET@ @PGPAUX_TARGET@
- mutt_SOURCES = \
- addrbook.c alias.c attach.c base64.c browser.c buffy.c color.c \
-- crypt.c cryptglue.c \
-+ crypt.c cryptglue.c compress.c \
- commands.c complete.c compose.c copy.c curs_lib.c curs_main.c date.c \
- edit.c enter.c flags.c init.c filter.c from.c \
- getdomain.c group.c \
-@@ -57,7 +57,7 @@ EXTRA_mutt_SOURCES = account.c bcache.c
- bcache.h browser.h hcache.h mbyte.h mutt_idna.h remailer.h url.h
-
- EXTRA_DIST = COPYRIGHT GPL OPS OPS.PGP OPS.CRYPT OPS.SMIME TODO UPDATING \
-- configure account.h \
-+ configure account.h compress.h \
- attach.h buffy.h charset.h copy.h crypthash.h dotlock.h functions.h gen_defs \
- globals.h hash.h history.h init.h keymap.h mutt_crypt.h \
- mailbox.h mapping.h md5.h mime.h mutt.h mutt_curses.h mutt_menu.h \
---- a/mbox.c
-+++ b/mbox.c
-@@ -29,6 +29,10 @@
- #include "copy.h"
- #include "mutt_curses.h"
-
-+#ifdef USE_COMPRESSED
-+#include "compress.h"
-+#endif
-+
- #include <sys/stat.h>
- #include <dirent.h>
- #include <string.h>
-@@ -1038,6 +1042,12 @@ bail: /* Come here in case of disaster
- int mbox_close_mailbox (CONTEXT *ctx)
- {
- mx_unlock_file (ctx->path, fileno (ctx->fp), 1);
-+
-+#ifdef USE_COMPRESSED
-+ if (ctx->compressinfo)
-+ mutt_slow_close_compressed (ctx);
-+#endif
-+
- mutt_unblock_signals ();
- mx_fastclose_mailbox (ctx);
- return 0;
---- a/mutt.h
-+++ b/mutt.h
-@@ -140,6 +140,11 @@ typedef enum
- #define M_ACCOUNTHOOK (1<<9)
- #define M_REPLYHOOK (1<<10)
- #define M_SEND2HOOK (1<<11)
-+#ifdef USE_COMPRESSED
-+#define M_OPENHOOK (1<<12)
-+#define M_APPENDHOOK (1<<13)
-+#define M_CLOSEHOOK (1<<14)
-+#endif
-
- /* tree characters for linearize_tree and print_enriched_string */
- #define M_TREE_LLCORNER 1
-@@ -872,6 +877,11 @@ typedef struct _context
- int flagged; /* how many flagged messages */
- int msgnotreadyet; /* which msg "new" in pager, -1 if none */
-
-+#ifdef USE_COMPRESSED
-+ void *compressinfo; /* compressed mbox module private data */
-+ char *realpath; /* path to compressed mailbox */
-+#endif /* USE_COMPRESSED */
-+
- short magic; /* mailbox type */
-
- unsigned char rights[(RIGHTSMAX + 7)/8]; /* ACL bits */
---- a/mx.c
-+++ b/mx.c
-@@ -30,6 +30,10 @@
- #include "keymap.h"
- #include "url.h"
-
-+#ifdef USE_COMPRESSED
-+#include "compress.h"
-+#endif
-+
- #ifdef USE_IMAP
- #include "imap.h"
- #endif
-@@ -445,6 +449,10 @@ int mx_get_magic (const char *path)
- return (-1);
- }
-
-+#ifdef USE_COMPRESSED
-+ if (magic == 0 && mutt_can_read_compressed (path))
-+ return M_COMPRESSED;
-+#endif
- return (magic);
- }
-
-@@ -484,6 +492,13 @@ static int mx_open_mailbox_append (CONTE
- {
- struct stat sb;
-
-+#ifdef USE_COMPRESSED
-+ /* special case for appending to compressed folders -
-+ * even if we can not open them for reading */
-+ if (mutt_can_append_compressed (ctx->path))
-+ mutt_open_append_compressed (ctx);
-+#endif
-+
- ctx->append = 1;
-
- #ifdef USE_IMAP
-@@ -647,7 +662,12 @@ CONTEXT *mx_open_mailbox (const char *pa
- }
-
- ctx->magic = mx_get_magic (path);
--
-+
-+#ifdef USE_COMPRESSED
-+ if (ctx->magic == M_COMPRESSED)
-+ mutt_open_read_compressed (ctx);
-+#endif
-+
- if(ctx->magic == 0)
- mutt_error (_("%s is not a mailbox."), path);
-
-@@ -748,6 +768,10 @@ void mx_fastclose_mailbox (CONTEXT *ctx)
- mutt_free_header (&ctx->hdrs[i]);
- FREE (&ctx->hdrs);
- FREE (&ctx->v2r);
-+#ifdef USE_COMPRESSED
-+ if (ctx->compressinfo)
-+ mutt_fast_close_compressed (ctx);
-+#endif
- FREE (&ctx->path);
- FREE (&ctx->pattern);
- if (ctx->limit_pattern)
-@@ -800,6 +824,12 @@ static int sync_mailbox (CONTEXT *ctx, i
-
- if (tmp && tmp->new == 0)
- mutt_update_mailbox (tmp);
-+
-+#ifdef USE_COMPRESSED
-+ if (rc == 0 && ctx->compressinfo)
-+ return mutt_sync_compressed (ctx);
-+#endif
-+
- return rc;
- }
-
-@@ -1058,6 +1088,11 @@ int mx_close_mailbox (CONTEXT *ctx, int
- !mutt_is_spool(ctx->path) && !option (OPTSAVEEMPTY))
- mx_unlink_empty (ctx->path);
-
-+#ifdef USE_COMPRESSED
-+ if (ctx->compressinfo && mutt_slow_close_compressed (ctx))
-+ return (-1);
-+#endif
-+
- mx_fastclose_mailbox (ctx);
-
- return 0;
-@@ -1373,6 +1408,11 @@ int mx_check_mailbox (CONTEXT *ctx, int
- {
- int rc;
-
-+#ifdef USE_COMPRESSED
-+ if (ctx->compressinfo)
-+ return mutt_check_mailbox_compressed (ctx);
-+#endif
-+
- if (ctx)
- {
- if (ctx->locked) lock = 0;
---- a/mx.h
-+++ b/mx.h
-@@ -40,6 +40,9 @@ enum
- #ifdef USE_POP
- , M_POP
- #endif
-+#ifdef USE_COMPRESSED
-+ , M_COMPRESSED
-+#endif
- };
-
- WHERE short DefaultMagic INITVAL (M_MBOX);
---- a/po/de.po
-+++ b/po/de.po
-@@ -3,7 +3,7 @@ msgstr ""
- "Project-Id-Version: 1.5.18\n"
- "Report-Msgid-Bugs-To: \n"
- "POT-Creation-Date: 2009-01-05 16:36-0800\n"
--"PO-Revision-Date: 2008-05-18 10:28+0200\n"
-+"PO-Revision-Date: 2009-01-15 23:09+0100\n"
- "Last-Translator: Roland Rosenfeld <roland@spinnaker.de>\n"
- "Language-Team: German <mutt-po@mutt.org>\n"
- "MIME-Version: 1.0\n"
-@@ -1975,6 +1975,10 @@ msgstr "Hilfe für %s"
- msgid "Bad history file format (line %d)"
- msgstr "Falsches Format der Datei früherer Eingaben (Zeile %d)"
-
-+#: hook.c:96
-+msgid "badly formatted command string"
-+msgstr "Hook enthält nicht die Muster %f und %t"
-+
- #: hook.c:251
- #, c-format
- msgid "unhook: Can't do unhook * from within a hook."
-@@ -2718,18 +2722,10 @@ msgstr "Lese %s..."
- msgid "Mailbox is corrupt!"
- msgstr "Mailbox fehlerhaft!"
-
--#: mbox.c:678
--msgid "Mailbox was corrupted!"
--msgstr "Mailbox wurde zerstört!"
--
- #: mbox.c:719 mbox.c:976
- msgid "Fatal error! Could not reopen mailbox!"
- msgstr "Fataler Fehler, konnte Mailbox nicht erneut öffnen!"
-
--#: mbox.c:728
--msgid "Unable to lock mailbox!"
--msgstr "Kann Mailbox nicht für exklusiven Zugriff sperren!"
--
- #. this means ctx->changed or ctx->deleted was set, but no
- #. * messages were found to be changed or deleted. This should
- #. * never happen, is we presume it is a bug in mutt.
-@@ -5298,3 +5294,45 @@ msgstr "Zeige S/MIME Optionen"
-
- #~ msgid "Authentication method is unknown."
- #~ msgstr "Authentifizierungsmethode unbekannt."
-+
-+#: compress.c:203 mbox.c:661
-+msgid "Mailbox was corrupted!"
-+msgstr "Mailbox wurde zerstört!"
-+
-+#: compress.c:228 compress.c:253
-+#, c-format
-+msgid "Decompressing %s...\n"
-+msgstr "Entpacke %s...\n"
-+
-+#: compress.c:246 compress.c:367 compress.c:443 mbox.c:706
-+msgid "Unable to lock mailbox!"
-+msgstr "Kann Mailbox nicht für exklusiven Zugriff sperren!"
-+
-+#: compress.c:264
-+#, c-format
-+msgid "Error executing: %s : unable to open the mailbox!\n"
-+msgstr "Fehler beim Ausführen von %s : Kann die Mailbox nicht öffnen!\n"
-+
-+#: compress.c:350 compress.c:377 compress.c:423 compress.c:454
-+#, c-format
-+msgid "Compressing %s...\n"
-+msgstr "Komprimiere %s...\n"
-+
-+#: compress.c:381
-+#, c-format
-+msgid ""
-+"%s: Error compressing mailbox! Original mailbox deleted, uncompressed one "
-+"kept!\n"
-+msgstr ""
-+"%s: Fehler beim Komprimieren der Mailbox! Ursprüngliche Mailbox gelöscht, "
-+"entpackte gespeichert!\n"
-+
-+#: compress.c:425 compress.c:456
-+#, c-format
-+msgid "Compressed-appending to %s...\n"
-+msgstr "Hänge komprimiert an %s... an\n"
-+
-+#: compress.c:461
-+#, c-format
-+msgid " %s: Error compressing mailbox! Uncompressed one kept!\n"
-+msgstr " %s: Fehler beim packen der Mailbox! Entpackte Mailbox gespeichert!\n"
---- a/po/POTFILES.in
-+++ b/po/POTFILES.in
-@@ -8,6 +8,7 @@ charset.c
- color.c
- commands.c
- compose.c
-+compress.c
- crypt-gpgme.c
- crypt.c
- cryptglue.c
---- a/status.c
-+++ b/status.c
-@@ -96,6 +96,14 @@ status_format_str (char *buf, size_t buf
-
- case 'f':
- snprintf (fmt, sizeof(fmt), "%%%ss", prefix);
-+#ifdef USE_COMPRESSED
-+ if (Context && Context->compressinfo && Context->realpath)
-+ {
-+ strfcpy (tmp, Context->realpath, sizeof (tmp));
-+ mutt_pretty_mailbox (tmp, sizeof (tmp));
-+ }
-+ else
-+#endif
- if (Context && Context->path)
- {
- strfcpy (tmp, Context->path, sizeof (tmp));
---- a/PATCHES
-+++ b/PATCHES
-@@ -0,0 +1 @@
-+patch-1.5.18.rr.compressed.1
+++ /dev/null
---- a/config-debian.h
-+++ b/config-debian.h
-@@ -0,0 +1,4 @@
-+#ifndef USE_COMPRESSED
-+#error "You forgot to update debian/patches/autotools-update."
-+#error "Run sh debian/update-autotools.sh"
-+#endif
+++ /dev/null
-# vim:ft=diff:
-This is the ifdef patch by Cedric Duval <cedricduval@free.fr>.
-
-This command allows to test if a feature has been compiled in before actually
-attempting to configure / use it.
-
-Syntax:
-
-ifdef <item> <command>
-
-where <item> can be the name of a variable, function, or command.
-
-Examples:
-
-ifdef imap-fetch-mail 'source ~/.mutt/imap_setup'
-ifdef trash set trash=~/Mail/trash
-
-* Patch last synced with upstream:
- - Date: 2007-02-15
- - File:
- http://cedricduval.free.fr/mutt/patches/download/patch-1.5.4.cd.ifdef.1
-
-* Changes made:
- - Updated to 1.5.13
- - Also look for commands
- - Use mutt_strcmp in favor of ascii_strncasecmp to compare strings.
-
-== END PATCH
-Index: mutt/init.c
-===================================================================
---- mutt.orig/init.c 2006-12-12 14:15:03.000000000 +0100
-+++ mutt/init.c 2007-02-15 23:38:45.597907432 +0100
-@@ -624,6 +624,65 @@ static int remove_from_rx_list (RX_LIST
- return (rv);
- }
-
-+static int parse_ifdef (BUFFER *tmp, BUFFER *s, unsigned long data, BUFFER *err)
-+{
-+ int i, j, res = 0;
-+ BUFFER token;
-+
-+ memset (&token, 0, sizeof (token));
-+ mutt_extract_token (tmp, s, 0);
-+
-+ /* is the item defined as a variable? */
-+ res = (mutt_option_index (tmp->data) != -1);
-+
-+ /* a function? */
-+ if (!res)
-+ for (i = 0; !res && i < MENU_MAX; i++)
-+ {
-+ struct binding_t *b = km_get_table (Menus[i].value);
-+
-+ if (!b)
-+ continue;
-+
-+ for (j = 0; b[j].name; j++)
-+ if (!mutt_strcmp (tmp->data, b[j].name))
-+ {
-+ res = 1;
-+ break;
-+ }
-+ }
-+
-+ /* a command? */
-+ if (!res)
-+ for (i = 0; Commands[i].name; i++)
-+ {
-+ if (!mutt_strcmp (tmp->data, Commands[i].name))
-+ {
-+ res = 1;
-+ break;
-+ }
-+ }
-+
-+ if (!MoreArgs (s))
-+ {
-+ snprintf (err->data, err->dsize, _("ifdef: too few arguments"));
-+ return (-1);
-+ }
-+ mutt_extract_token (tmp, s, M_TOKEN_SPACE);
-+
-+ if (res)
-+ {
-+ if (mutt_parse_rc_line (tmp->data, &token, err) == -1)
-+ {
-+ mutt_error ("Erreur: %s", err->data);
-+ FREE (&token.data);
-+ return (-1);
-+ }
-+ FREE (&token.data);
-+ }
-+ return 0;
-+}
-+
- static int parse_unignore (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err)
- {
- do
-Index: mutt/init.h
-===================================================================
---- mutt.orig/init.h 2006-12-12 14:15:03.000000000 +0100
-+++ mutt/init.h 2007-02-15 23:26:21.160079184 +0100
-@@ -3017,6 +3017,7 @@ static int parse_lists (BUFFER *, BUFFER
- static int parse_unlists (BUFFER *, BUFFER *, unsigned long, BUFFER *);
- static int parse_alias (BUFFER *, BUFFER *, unsigned long, BUFFER *);
- static int parse_unalias (BUFFER *, BUFFER *, unsigned long, BUFFER *);
-+static int parse_ifdef (BUFFER *, BUFFER *, unsigned long, BUFFER *);
- static int parse_ignore (BUFFER *, BUFFER *, unsigned long, BUFFER *);
- static int parse_unignore (BUFFER *, BUFFER *, unsigned long, BUFFER *);
- static int parse_source (BUFFER *, BUFFER *, unsigned long, BUFFER *);
-@@ -3068,6 +3069,7 @@ struct command_t Commands[] = {
- { "group", parse_group, 0 },
- { "ungroup", parse_ungroup, 0 },
- { "hdr_order", parse_list, UL &HeaderOrderList },
-+ { "ifdef", parse_ifdef, 0 },
- #ifdef HAVE_ICONV
- { "iconv-hook", mutt_parse_hook, M_ICONVHOOK },
- #endif
-Index: mutt/doc/manual.xml.head
-===================================================================
---- mutt.orig/doc/manual.xml.head 2007-02-15 21:53:09.312169280 +0100
-+++ mutt/doc/manual.xml.head 2007-02-15 23:42:23.875724160 +0100
-@@ -3091,6 +3091,28 @@ considered to be an executable program f
-
- </sect1>
-
-+<sect1 id="ifdef">
-+
-+<title>Configuring features conditionnaly</title>
-+
-+<para>
-+Usage: <literal>ifdef</literal> <emphasis>item</emphasis> <emphasis>command</emphasis>
-+</para>
-+
-+<para>
-+This command allows to test if a feature has been compiled in, before
-+actually executing the command. Item can be either the name of a
-+function, variable, or command. Example:
-+</para>
-+
-+<para>
-+<screen>
-+ifdef imap_keepalive 'source ~/.mutt/imap_setup'
-+</screen>
-+</para>
-+
-+</sect1>
-+
- <sect1 id="unhook">
- <title>Removing hooks</title>
-
---- a/PATCHES
-+++ b/PATCHES
-@@ -0,0 +1 @@
-+patch-1.5.13.cd.ifdef.2
+++ /dev/null
-# vi: ft=diff
-This is the maildir mtime patch by Dale Woolridge.
-
-The home page for this patch is:
-
- http://www.mutt.ca/maildir-mtime.html
-
-* Patch last synced with upstream:
- - Date: 2004-08-10
- - File: http://www.mutt.ca/patches/patch-1.5.6.dw.maildir-mtime.1
-
-* Changes made:
- - removed a spurious const in add_folder() definition.
- - added a $maildir_mtime option to allow this patch to be disabled at
- runtime (see Bug#253261, comments from Zephaniah E. Hull).
- - 2007-04-03 myon: resolved conflict in browser.c
-
-== END PATCH
---- a/buffy.c
-+++ b/buffy.c
-@@ -226,6 +226,7 @@ int mutt_parse_mailboxes (BUFFER *path,
- (*tmp)->new = 0;
- (*tmp)->notified = 1;
- (*tmp)->newly_created = 0;
-+ (*tmp)->mtime = 0;
-
- /* for check_mbox_size, it is important that if the folder is new (tested by
- * reading it), the size is set to 0 so that later when we check we see
-@@ -254,6 +255,7 @@ int mutt_buffy_check (int force)
- {
- BUFFY *tmp;
- struct stat sb;
-+ struct stat smd;
- struct dirent *de;
- DIR *dirp;
- char path[_POSIX_PATH_MAX];
-@@ -298,6 +300,7 @@ int mutt_buffy_check (int force)
- if (tmp->magic != M_IMAP)
- #endif
- tmp->new = 0;
-+ tmp->mtime = 0;
-
- #ifdef USE_IMAP
- if (tmp->magic != M_IMAP)
-@@ -380,10 +383,20 @@ int mutt_buffy_check (int force)
- if (*de->d_name != '.' &&
- (!(p = strstr (de->d_name, ":2,")) || !strchr (p + 3, 'T')))
- {
-- /* one new and undeleted message is enough */
-- BuffyCount++;
-- tmp->new = 1;
-- break;
-+ if (!tmp->new)
-+ {
-+ /* one new and undeleted message is enough */
-+ BuffyCount++;
-+ tmp->new = 1;
-+
-+ if (! option (OPTMAILDIRMTIME)) /* prevent stat calls */
-+ break;
-+ }
-+ snprintf (path, sizeof (path), "%s/new/%s", tmp->path, de->d_name);
-+ if (!stat (path, &smd) && smd.st_mtime > tmp->mtime)
-+ {
-+ tmp->mtime = smd.st_mtime;
-+ }
- }
- }
- closedir (dirp);
---- a/init.h
-+++ b/init.h
-@@ -1086,6 +1086,16 @@ struct option_t MuttVars[] = {
- ** \fBDON'T CHANGE THIS SETTING UNLESS YOU ARE REALLY SURE WHAT YOU ARE
- ** DOING!\fP
- */
-+ { "maildir_mtime", DT_BOOL, R_NONE, OPTMAILDIRMTIME, 0 },
-+ /*
-+ ** .pp
-+ ** If set, the sort-by-date option in the browser will sort maildirs
-+ ** smartly, not using the mtime of the maildir itself but that of the
-+ ** newest message in the new subdirectory, making the sorting by
-+ ** reverse date much more useful. People with maildirs over NFS may
-+ ** wish to leave this option unset.
-+ **
-+ */
- #ifdef USE_HCACHE
- { "header_cache", DT_PATH, R_NONE, UL &HeaderCache, 0 },
- /*
---- a/mutt.h
-+++ b/mutt.h
-@@ -395,6 +395,7 @@ enum
- OPTINCLUDEONLYFIRST,
- OPTKEEPFLAGGED,
- OPTMAILCAPSANITIZE,
-+ OPTMAILDIRMTIME,
- OPTMAILDIRTRASH,
- OPTMARKERS,
- OPTMARKOLD,
---- a/browser.c
-+++ b/browser.c
-@@ -32,6 +32,7 @@
- #ifdef USE_IMAP
- #include "imap.h"
- #endif
-+#include "mx.h"
-
- #include <stdlib.h>
- #include <dirent.h>
-@@ -307,8 +308,10 @@ folder_format_str (char *dest, size_t de
- }
-
- static void add_folder (MUTTMENU *m, struct browser_state *state,
-- const char *name, const struct stat *s, int new)
-+ const char *name, /*DEB const IAN*/ struct stat *s, BUFFY *mbuf)
- {
-+ int new = (mbuf) ? mbuf->new : 0;
-+
- if (state->entrylen == state->entrymax)
- {
- /* need to allocate more space */
-@@ -320,6 +323,9 @@ static void add_folder (MUTTMENU *m, str
- m->data = state->entry;
- }
-
-+ if (mbuf && mbuf->magic == M_MAILDIR && mbuf->mtime)
-+ s->st_mtime = mbuf->mtime;
-+
- if (s != NULL)
- {
- (state->entry)[state->entrylen].mode = s->st_mode;
-@@ -414,7 +420,7 @@ static int examine_directory (MUTTMENU *
- tmp = Incoming;
- while (tmp && mutt_strcmp (buffer, tmp->path))
- tmp = tmp->next;
-- add_folder (menu, state, de->d_name, &s, (tmp) ? tmp->new : 0);
-+ add_folder (menu, state, de->d_name, &s, tmp);
- }
- closedir (dp);
- browser_sort (state);
-@@ -438,14 +444,15 @@ static int examine_mailboxes (MUTTMENU *
- if (mx_is_imap (tmp->path))
- {
- imap_mailbox_state (tmp->path, &mbox);
-- add_folder (menu, state, tmp->path, NULL, mbox.new);
-+ tmp->new = mbox.new;
-+ add_folder (menu, state, tmp->path, NULL, tmp);
- continue;
- }
- #endif
- #ifdef USE_POP
- if (mx_is_pop (tmp->path))
- {
-- add_folder (menu, state, tmp->path, NULL, tmp->new);
-+ add_folder (menu, state, tmp->path, NULL, tmp);
- continue;
- }
- #endif
-@@ -459,7 +466,7 @@ static int examine_mailboxes (MUTTMENU *
- strfcpy (buffer, NONULL(tmp->path), sizeof (buffer));
- mutt_pretty_mailbox (buffer);
-
-- add_folder (menu, state, buffer, &s, tmp->new);
-+ add_folder (menu, state, buffer, &s, tmp);
- }
- while ((tmp = tmp->next));
- browser_sort (state);
---- a/buffy.h
-+++ b/buffy.h
-@@ -25,6 +25,7 @@ typedef struct buffy_t
- char *path;
- long size;
- struct buffy_t *next;
-+ time_t mtime; /* for maildirs...time of newest entry */
- short new; /* mailbox has new mail */
- short notified; /* user has been notified */
- short magic; /* mailbox type */
---- a/PATCHES
-+++ b/PATCHES
-@@ -0,0 +1 @@
-+patch-1.5.6.dw.maildir-mtime.1
+++ /dev/null
-# vim:ft=diff:
-This is the purge message patch by Cedric Duval <cedricduval@free.fr>.
-
-(requires trash folder patch)
-
-This patch adds the purge-message function, which, unlike delete-message, will
-bypass the trash folder and really delete the mail.
-
-You can bind this function to <esc>D, for instance, by adding the following
-lines to your muttrc:
-
-bind index \eD purge-message
-bind pager \eD purge-message
-
-Please be very careful with this function, and try to use it as less as
-possible. The risk resides in getting into the habit of always using
-purge-message instead of delete-message, which would really defeat the purpose
-of having a trash folder feature.
-
-* Patch last synced with upstream:
- - Date: 2007-02-15
- - File: http://cedricduval.free.fr/mutt/patches/download/patch-1.5.5.1.cd.purge_message.3.4
-
-* Changes made:
- - Updated to 1.5.13
- - Fixed indentation of "purged" in mutt.h.
-
-== END PATCH
-Index: trash/OPS
-===================================================================
---- trash.orig/OPS 2006-12-12 14:15:02.000000000 +0100
-+++ trash/OPS 2007-02-15 19:39:57.479112576 +0100
-@@ -140,6 +140,7 @@ OP_PREV_ENTRY "move to the previous entr
- OP_PREV_LINE "scroll up one line"
- OP_PREV_PAGE "move to the previous page"
- OP_PRINT "print the current entry"
-+OP_PURGE_MESSAGE "really delete the current entry, bypassing the trash folder"
- OP_QUERY "query external program for addresses"
- OP_QUERY_APPEND "append new query results to current results"
- OP_QUIT "save changes to mailbox and quit"
-Index: trash/curs_main.c
-===================================================================
---- trash.orig/curs_main.c 2006-12-12 14:15:02.000000000 +0100
-+++ trash/curs_main.c 2007-02-15 19:39:57.480112424 +0100
-@@ -1778,6 +1778,7 @@ int mutt_index_menu (void)
- MAYBE_REDRAW (menu->redraw);
- break;
-
-+ case OP_PURGE_MESSAGE:
- case OP_DELETE:
-
- CHECK_MSGCOUNT;
-@@ -1788,6 +1789,7 @@ int mutt_index_menu (void)
- if (tag)
- {
- mutt_tag_set_flag (M_DELETE, 1);
-+ mutt_tag_set_flag (M_PURGED, (op != OP_PURGE_MESSAGE) ? 0 : 1);
- if (option (OPTDELETEUNTAG))
- mutt_tag_set_flag (M_TAG, 0);
- menu->redraw = REDRAW_INDEX;
-@@ -1795,6 +1797,8 @@ int mutt_index_menu (void)
- else
- {
- mutt_set_flag (Context, CURHDR, M_DELETE, 1);
-+ mutt_set_flag (Context, CURHDR, M_PURGED,
-+ (op != OP_PURGE_MESSAGE) ? 0 : 1);
- if (option (OPTDELETEUNTAG))
- mutt_set_flag (Context, CURHDR, M_TAG, 0);
- if (option (OPTRESOLVE))
-@@ -2088,11 +2092,13 @@ int mutt_index_menu (void)
- if (tag)
- {
- mutt_tag_set_flag (M_DELETE, 0);
-+ mutt_tag_set_flag (M_PURGED, 0);
- menu->redraw = REDRAW_INDEX;
- }
- else
- {
- mutt_set_flag (Context, CURHDR, M_DELETE, 0);
-+ mutt_set_flag (Context, CURHDR, M_PURGED, 0);
- if (option (OPTRESOLVE) && menu->current < Context->vcount - 1)
- {
- menu->current++;
-@@ -2113,9 +2119,11 @@ int mutt_index_menu (void)
- CHECK_ACL(M_ACL_DELETE, _("undelete message(s)"));
-
- rc = mutt_thread_set_flag (CURHDR, M_DELETE, 0,
-- op == OP_UNDELETE_THREAD ? 0 : 1);
-+ op == OP_UNDELETE_THREAD ? 0 : 1)
-+ + mutt_thread_set_flag (CURHDR, M_PURGED, 0,
-+ op == OP_UNDELETE_THREAD ? 0 : 1);
-
-- if (rc != -1)
-+ if (rc > -1)
- {
- if (option (OPTRESOLVE))
- {
-Index: trash/flags.c
-===================================================================
---- trash.orig/flags.c 2007-02-15 19:38:00.433906152 +0100
-+++ trash/flags.c 2007-02-15 19:39:57.480112424 +0100
-@@ -105,6 +105,16 @@ void _mutt_set_flag (CONTEXT *ctx, HEADE
- }
- break;
-
-+ case M_PURGED:
-+ if (bf)
-+ {
-+ if (!h->purged)
-+ h->purged = 1;
-+ }
-+ else if (h->purged)
-+ h->purged = 0;
-+ break;
-+
- case M_NEW:
-
- if (!mutt_bit_isset(ctx->rights,M_ACL_SEEN))
-Index: trash/functions.h
-===================================================================
---- trash.orig/functions.h 2005-09-18 13:16:40.000000000 +0200
-+++ trash/functions.h 2007-02-15 19:39:57.481112272 +0100
-@@ -103,6 +103,7 @@ struct binding_t OpMain[] = {
- { "toggle-write", OP_TOGGLE_WRITE, "%" },
- { "next-thread", OP_MAIN_NEXT_THREAD, "\016" },
- { "next-subthread", OP_MAIN_NEXT_SUBTHREAD, "\033n" },
-+ { "purge-message", OP_PURGE_MESSAGE, NULL },
- { "query", OP_QUERY, "Q" },
- { "quit", OP_QUIT, "q" },
- { "reply", OP_REPLY, "r" },
-@@ -189,6 +190,7 @@ struct binding_t OpPager[] = {
- { "print-message", OP_PRINT, "p" },
- { "previous-thread", OP_MAIN_PREV_THREAD, "\020" },
- { "previous-subthread",OP_MAIN_PREV_SUBTHREAD, "\033p" },
-+ { "purge-message", OP_PURGE_MESSAGE, NULL },
- { "quit", OP_QUIT, "Q" },
- { "exit", OP_EXIT, "q" },
- { "reply", OP_REPLY, "r" },
-Index: trash/mutt.h
-===================================================================
---- trash.orig/mutt.h 2007-02-15 19:38:00.435905848 +0100
-+++ trash/mutt.h 2007-02-15 19:40:38.768835584 +0100
-@@ -201,6 +201,7 @@ enum
- M_UNDELETE,
- M_DELETED,
- M_APPENDED,
-+ M_PURGED,
- M_FLAG,
- M_TAG,
- M_UNTAG,
-@@ -705,6 +706,7 @@ typedef struct header
- unsigned int flagged : 1; /* marked important? */
- unsigned int tagged : 1;
- unsigned int appended : 1; /* has been saved */
-+ unsigned int purged : 1; /* bypassing the trash folder */
- unsigned int deleted : 1;
- unsigned int changed : 1;
- unsigned int attach_del : 1; /* has an attachment marked for deletion */
-Index: trash/mx.c
-===================================================================
---- trash.orig/mx.c 2007-02-15 19:38:00.436905696 +0100
-+++ trash/mx.c 2007-02-15 19:39:57.482112120 +0100
-@@ -852,6 +852,7 @@ static int trash_append (CONTEXT *ctx)
- {
- for (i = 0 ; i < ctx->msgcount ; i++)
- if (ctx->hdrs[i]->deleted && !ctx->hdrs[i]->appended
-+ && !ctx->hdrs[i]->purged
- && mutt_append_message (ctx_trash, ctx, ctx->hdrs[i], 0, 0) == -1)
- {
- mx_close_mailbox (ctx_trash, NULL);
-Index: trash/pager.c
-===================================================================
---- trash.orig/pager.c 2006-12-12 14:15:03.000000000 +0100
-+++ trash/pager.c 2007-02-15 19:39:57.482112120 +0100
-@@ -2254,12 +2254,15 @@ search_next:
- MAYBE_REDRAW (redraw);
- break;
-
-+ case OP_PURGE_MESSAGE:
- case OP_DELETE:
- CHECK_MODE(IsHeader (extra));
- CHECK_READONLY;
- CHECK_ACL(M_ACL_DELETE, _("delete message"));
-
- mutt_set_flag (Context, extra->hdr, M_DELETE, 1);
-+ mutt_set_flag (Context, extra->hdr, M_PURGED,
-+ ch != OP_PURGE_MESSAGE ? 0 : 1);
- if (option (OPTDELETEUNTAG))
- mutt_set_flag (Context, extra->hdr, M_TAG, 0);
- redraw = REDRAW_STATUS | REDRAW_INDEX;
-@@ -2572,6 +2575,7 @@ search_next:
- CHECK_ACL(M_ACL_DELETE, _("undelete message"));
-
- mutt_set_flag (Context, extra->hdr, M_DELETE, 0);
-+ mutt_set_flag (Context, extra->hdr, M_PURGED, 0);
- redraw = REDRAW_STATUS | REDRAW_INDEX;
- if (option (OPTRESOLVE))
- {
-@@ -2587,9 +2591,11 @@ search_next:
- CHECK_ACL(M_ACL_DELETE, _("undelete message(s)"));
-
- r = mutt_thread_set_flag (extra->hdr, M_DELETE, 0,
-+ ch == OP_UNDELETE_THREAD ? 0 : 1)
-+ + mutt_thread_set_flag (extra->hdr, M_PURGED, 0,
- ch == OP_UNDELETE_THREAD ? 0 : 1);
-
-- if (r != -1)
-+ if (r > -1)
- {
- if (option (OPTRESOLVE))
- {
-Index: trash/pattern.c
-===================================================================
---- trash.orig/pattern.c 2007-01-25 21:44:41.000000000 +0100
-+++ trash/pattern.c 2007-02-15 19:39:57.483111968 +0100
-@@ -1338,8 +1338,10 @@ int mutt_pattern_func (int op, char *pro
- {
- switch (op)
- {
-- case M_DELETE:
- case M_UNDELETE:
-+ mutt_set_flag (Context, Context->hdrs[Context->v2r[i]], M_PURGED,
-+ 0);
-+ case M_DELETE:
- mutt_set_flag (Context, Context->hdrs[Context->v2r[i]], M_DELETE,
- (op == M_DELETE));
- break;
---- a/PATCHES
-+++ b/PATCHES
-@@ -0,0 +1 @@
-+patch-1.5.13.cd.purge_message.3.4
+++ /dev/null
-# vi: ft=diff
-This is the sensible browser position patch by Haakon Riiser.
-
- * Found in: <20050309162127.GA5656@s>
- http://lists.df7cb.de/mutt/message/20050309.162127.a244a894.en.html
- * myon 2009-01-15: refreshed for mutt-1.5.19
-
-== END PATCH
---- a/menu.c
-+++ b/menu.c
-@@ -859,8 +859,12 @@ int menu_redraw (MUTTMENU *menu)
-
- int mutt_menuLoop (MUTTMENU *menu)
- {
-+ static int last_position = -1;
- int i = OP_NULL;
-
-+ if (menu->is_mailbox_list && last_position >= 0)
-+ menu->current = last_position;
-+
- FOREVER
- {
- if (option (OPTMENUCALLER))
-@@ -1088,6 +1092,8 @@ int mutt_menuLoop (MUTTMENU *menu)
- break;
-
- default:
-+ if (menu->is_mailbox_list)
-+ last_position = menu->current;
- return (i);
- }
- }
---- a/browser.c
-+++ b/browser.c
-@@ -56,6 +56,7 @@ typedef struct folder_t
- int num;
- } FOLDER;
-
-+static char OldLastDir[_POSIX_PATH_MAX] = "";
- static char LastDir[_POSIX_PATH_MAX] = "";
- static char LastDirBackup[_POSIX_PATH_MAX] = "";
-
-@@ -511,9 +512,13 @@ static void init_menu (struct browser_st
- menu->tagged = 0;
-
- if (buffy)
-+ {
-+ menu->is_mailbox_list = 1;
- snprintf (title, titlelen, _("Mailboxes [%d]"), mutt_buffy_check (0));
-+ }
- else
- {
-+ menu->is_mailbox_list = 0;
- strfcpy (path, LastDir, sizeof (path));
- mutt_pretty_mailbox (path, sizeof (path));
- #ifdef USE_IMAP
-@@ -522,8 +527,23 @@ static void init_menu (struct browser_st
- path, NONULL (Mask.pattern));
- else
- #endif
-- snprintf (title, titlelen, _("Directory [%s], File mask: %s"),
-- path, NONULL(Mask.pattern));
-+ {
-+ char *p = strrchr (OldLastDir, '/');
-+ if (p && p - OldLastDir == mutt_strlen (LastDir) &&
-+ mutt_strncmp (LastDir, OldLastDir, p - OldLastDir) == 0)
-+ {
-+ /* If we get here, it means that LastDir is the parent directory of
-+ * OldLastDir. I.e., we're returning from a subdirectory, and we want
-+ * to position the cursor on the directory we're returning from. */
-+ int i;
-+ for (i = 0; i < state->entrymax; i++)
-+ if (mutt_strcmp (state->entry[i].name, p + 1) == 0)
-+ menu->current = i;
-+ }
-+ snprintf (title, titlelen, _("Directory [%s], File mask: %s"),
-+ path, NONULL(Mask.pattern));
-+ }
-+
- }
- menu->redraw = REDRAW_FULL;
- }
-@@ -706,7 +726,6 @@ void _mutt_select_file (char *f, size_t
- #endif
- )
- {
-- char OldLastDir[_POSIX_PATH_MAX];
-
- /* save the old directory */
- strfcpy (OldLastDir, LastDir, sizeof (OldLastDir));
---- a/mutt_menu.h
-+++ b/mutt_menu.h
-@@ -49,6 +49,7 @@ typedef struct menu_t
- int offset; /* which screen row to start the index */
- int pagelen; /* number of entries per screen */
- int tagprefix;
-+ int is_mailbox_list;
-
- /* Setting dialog != NULL overrides normal menu behaviour.
- * In dialog mode menubar is hidden and prompt keys are checked before
+++ /dev/null
-# vim:ft=diff:
-This is the trash folder patch by Cedric Duval <cedricduval@free.fr>.
-
-With this patch, if the trash variable is set to a path (unset by default), the
-deleted mails will be moved to a trash folder instead of being irremediably
-purged when syncing the mailbox.
-
-For instance, set trash="~/Mail/trash" will cause every deleted mail to go to
-this folder.
-
-Note that the append to the trash folder doesn't occur until the resync is
-done. This allows you to change your mind and undo deletes, and thus the moves
-to the trash folder are unnecessary.
-
-Notes
-
- * You might also want to have a look at the purge message feature below
- which is related to this patch.
- * IMAP is now supported. To retain the previous behavior, add this to your
- muttrc:
- folder-hook ^imap:// 'unset trash'
-
-FAQ
-
-Every once in a while, someone asks what are the advantages of this patch over
-a macro based solution. Here's an attempt to answer this question:
-
- * The folder history doesn't clutter up with unwanted trash entries.
- * Delayed move to the trash allows to change one's mind.
- * No need to treat the case of "normal folders" and trash folders
- separately with folder-hooks, and to create two sets of macros (one for
- the index, one for the pager).
- * Works not only with delete-message, but also with every deletion
- functions like delete-pattern, delete-thread or delete-subthread.
-
-To sum up, it's more integrated and transparent to the user.
-
-* Patch last synced with upstream:
- - Date: 2007-02-15
- - File: http://cedricduval.free.fr/mutt/patches/download/patch-1.5.5.1.cd.trash_folder.3.4
-
-* Changes made:
- - Updated to 1.5.13:
- - structure of _mutt_save_message changed (commands.c)
- - context of option (OPTCONFIRMAPPEND) changed (muttlib.c)
- - Fixed indentation of "appended" in mutt.h.
-
-== END PATCH
---- a/commands.c
-+++ b/commands.c
-@@ -688,6 +688,7 @@ int _mutt_save_message (HEADER *h, CONTE
- if (option (OPTDELETEUNTAG))
- mutt_set_flag (Context, h, M_TAG, 0);
- }
-+ mutt_set_flag (Context, h, M_APPENDED, 1);
-
- return 0;
- }
---- a/flags.c
-+++ b/flags.c
-@@ -69,7 +69,13 @@ void _mutt_set_flag (CONTEXT *ctx, HEADE
- {
- h->deleted = 0;
- update = 1;
-- if (upd_ctx) ctx->deleted--;
-+ if (upd_ctx)
-+ {
-+ ctx->deleted--;
-+ if (h->appended)
-+ ctx->appended--;
-+ }
-+ h->appended = 0; /* when undeleting, also reset the appended flag */
- #ifdef USE_IMAP
- /* see my comment above */
- if (ctx->magic == M_IMAP)
-@@ -91,6 +97,17 @@ void _mutt_set_flag (CONTEXT *ctx, HEADE
- }
- break;
-
-+ case M_APPENDED:
-+ if (bf)
-+ {
-+ if (!h->appended)
-+ {
-+ h->appended = 1;
-+ if (upd_ctx) ctx->appended++;
-+ }
-+ }
-+ break;
-+
- case M_NEW:
-
- if (!mutt_bit_isset(ctx->rights,M_ACL_SEEN))
---- a/globals.h
-+++ b/globals.h
-@@ -142,6 +142,7 @@ WHERE char *StChars;
- WHERE char *Status;
- WHERE char *Tempdir;
- WHERE char *Tochars;
-+WHERE char *TrashPath;
- WHERE char *Username;
- WHERE char *Visual;
- WHERE char *XtermTitle;
---- a/imap/message.c
-+++ b/imap/message.c
-@@ -816,6 +816,7 @@ int imap_copy_messages (CONTEXT* ctx, HE
- if (ctx->hdrs[n]->tagged)
- {
- mutt_set_flag (ctx, ctx->hdrs[n], M_DELETE, 1);
-+ mutt_set_flag (ctx, ctx->hdrs[n], M_APPENDED, 1);
- if (option (OPTDELETEUNTAG))
- mutt_set_flag (ctx, ctx->hdrs[n], M_TAG, 0);
- }
-@@ -823,6 +824,7 @@ int imap_copy_messages (CONTEXT* ctx, HE
- else
- {
- mutt_set_flag (ctx, h, M_DELETE, 1);
-+ mutt_set_flag (ctx, h, M_APPENDED, 1);
- if (option (OPTDELETEUNTAG))
- mutt_set_flag (ctx, h, M_TAG, 0);
- }
---- a/init.h
-+++ b/init.h
-@@ -2881,6 +2881,16 @@ struct option_t MuttVars[] = {
- ** by \fIyou\fP. The sixth character is used to indicate when a mail
- ** was sent to a mailing-list you subscribe to (default: L).
- */
-+ { "trash", DT_PATH, R_NONE, UL &TrashPath, 0 },
-+ /*
-+ ** .pp
-+ ** If set, this variable specifies the path of the trash folder where the
-+ ** mails marked for deletion will be moved, instead of being irremediably
-+ ** purged.
-+ ** .pp
-+ ** NOTE: When you delete a message in the trash folder, it is really
-+ ** deleted, so that you have a way to clean the trash.
-+ */
- #ifdef USE_SOCKET
- { "tunnel", DT_STR, R_NONE, UL &Tunnel, UL 0 },
- /*
---- a/mutt.h
-+++ b/mutt.h
-@@ -201,6 +201,7 @@ enum
- M_DELETE,
- M_UNDELETE,
- M_DELETED,
-+ M_APPENDED,
- M_FLAG,
- M_TAG,
- M_UNTAG,
-@@ -712,6 +713,7 @@ typedef struct header
- unsigned int mime : 1; /* has a MIME-Version header? */
- unsigned int flagged : 1; /* marked important? */
- unsigned int tagged : 1;
-+ unsigned int appended : 1; /* has been saved */
- unsigned int deleted : 1;
- unsigned int changed : 1;
- unsigned int attach_del : 1; /* has an attachment marked for deletion */
-@@ -883,6 +885,7 @@ typedef struct _context
- int new; /* how many new messages? */
- int unread; /* how many unread messages? */
- int deleted; /* how many deleted messages */
-+ int appended; /* how many saved messages? */
- int flagged; /* how many flagged messages */
- int msgnotreadyet; /* which msg "new" in pager, -1 if none */
-
---- a/muttlib.c
-+++ b/muttlib.c
-@@ -1430,7 +1430,9 @@ int mutt_save_confirm (const char *s, st
-
- if (magic > 0 && !mx_access (s, W_OK))
- {
-- if (option (OPTCONFIRMAPPEND))
-+ if (option (OPTCONFIRMAPPEND) &&
-+ (!TrashPath || (mutt_strcmp (s, TrashPath) != 0)))
-+ /* if we're appending to the trash, there's no point in asking */
- {
- snprintf (tmp, sizeof (tmp), _("Append messages to %s?"), s);
- if ((rc = mutt_yesorno (tmp, M_YES)) == M_NO)
---- a/mx.c
-+++ b/mx.c
-@@ -803,6 +803,53 @@ static int sync_mailbox (CONTEXT *ctx, i
- return rc;
- }
-
-+/* move deleted mails to the trash folder */
-+static int trash_append (CONTEXT *ctx)
-+{
-+ CONTEXT *ctx_trash;
-+ int i = 0;
-+ struct stat st, stc;
-+
-+ if (!TrashPath || !ctx->deleted ||
-+ (ctx->magic == M_MAILDIR && option (OPTMAILDIRTRASH)))
-+ return 0;
-+
-+ for (;i < ctx->msgcount && (!ctx->hdrs[i]->deleted ||
-+ ctx->hdrs[i]->appended); i++);
-+ if (i == ctx->msgcount)
-+ return 0; /* nothing to be done */
-+
-+ if (mutt_save_confirm (TrashPath, &st) != 0)
-+ {
-+ mutt_error _("message(s) not deleted");
-+ return -1;
-+ }
-+
-+ if (lstat (ctx->path, &stc) == 0 && stc.st_ino == st.st_ino
-+ && stc.st_dev == st.st_dev && stc.st_rdev == st.st_rdev)
-+ return 0; /* we are in the trash folder: simple sync */
-+
-+ if ((ctx_trash = mx_open_mailbox (TrashPath, M_APPEND, NULL)) != NULL)
-+ {
-+ for (i = 0 ; i < ctx->msgcount ; i++)
-+ if (ctx->hdrs[i]->deleted && !ctx->hdrs[i]->appended
-+ && mutt_append_message (ctx_trash, ctx, ctx->hdrs[i], 0, 0) == -1)
-+ {
-+ mx_close_mailbox (ctx_trash, NULL);
-+ return -1;
-+ }
-+
-+ mx_close_mailbox (ctx_trash, NULL);
-+ }
-+ else
-+ {
-+ mutt_error _("Can't open trash folder");
-+ return -1;
-+ }
-+
-+ return 0;
-+}
-+
- /* save changes and close mailbox */
- int mx_close_mailbox (CONTEXT *ctx, int *index_hint)
- {
-@@ -938,6 +985,7 @@ int mx_close_mailbox (CONTEXT *ctx, int
- if (mutt_append_message (&f, ctx, ctx->hdrs[i], 0, CH_UPDATE_LEN) == 0)
- {
- mutt_set_flag (ctx, ctx->hdrs[i], M_DELETE, 1);
-+ mutt_set_flag (ctx, ctx->hdrs[i], M_APPENDED, 1);
- }
- else
- {
-@@ -959,6 +1007,14 @@ int mx_close_mailbox (CONTEXT *ctx, int
- return 0;
- }
-
-+ /* copy mails to the trash before expunging */
-+ if (purge && ctx->deleted)
-+ if (trash_append (ctx) != 0)
-+ {
-+ ctx->closing = 0;
-+ return -1;
-+ }
-+
- #ifdef USE_IMAP
- /* allow IMAP to preserve the deleted flag across sessions */
- if (ctx->magic == M_IMAP)
-@@ -1154,6 +1210,12 @@ int mx_sync_mailbox (CONTEXT *ctx, int *
- msgcount = ctx->msgcount;
- deleted = ctx->deleted;
-
-+ if (purge && ctx->deleted)
-+ {
-+ if (trash_append (ctx) == -1)
-+ return -1;
-+ }
-+
- #ifdef USE_IMAP
- if (ctx->magic == M_IMAP)
- rc = imap_sync_mailbox (ctx, purge, index_hint);
---- a/postpone.c
-+++ b/postpone.c
-@@ -279,6 +279,9 @@ int mutt_get_postponed (CONTEXT *ctx, HE
- /* finished with this message, so delete it. */
- mutt_set_flag (PostContext, h, M_DELETE, 1);
-
-+ /* and consider it saved, so that it won't be moved to the trash folder */
-+ mutt_set_flag (PostContext, h, M_APPENDED, 1);
-+
- /* update the count for the status display */
- PostCount = PostContext->msgcount - PostContext->deleted;
-
+++ /dev/null
-# vi: ft=diff
-This is the xterm title patch as found on the mutt mailing lists.
-
-* Changes made:
- - 2007-01-27 myon: using %P caused a segfault, updated status.c to catch
- menu==NULL.
- - 2007-02-20 myon: make the note about the xterm_set_titles defaults a
- comment.
- - 2008-08-02 myon: move set_xterm_* prototypes into the proper header file
- (cleaner code, no functional change, evades conflict with sidebar patch)
-
-== END PATCH
---- a/curs_main.c
-+++ b/curs_main.c
-@@ -112,6 +112,19 @@ static const char *No_visible = N_("No v
-
- extern size_t UngetCount;
-
-+#define ASCII_CTRL_G 0x07
-+#define ASCII_CTRL_OPEN_SQUARE_BRAKET 0x1b
-+
-+void set_xterm_title_bar(char *title)
-+{
-+ fprintf(stderr ,"%c]2;%s%c", ASCII_CTRL_OPEN_SQUARE_BRAKET, title, ASCII_CTRL_G);
-+}
-+
-+void set_xterm_icon_name(char *name)
-+{
-+ fprintf(stderr, "%c]1;%s%c", ASCII_CTRL_OPEN_SQUARE_BRAKET, name, ASCII_CTRL_G);
-+}
-+
- void index_make_entry (char *s, size_t l, MUTTMENU *menu, int num)
- {
- format_flag flag = M_FORMAT_MAKEPRINT | M_FORMAT_ARROWCURSOR | M_FORMAT_INDEX;
-@@ -574,6 +587,13 @@ int mutt_index_menu (void)
- SETCOLOR (MT_COLOR_NORMAL);
- BKGDSET (MT_COLOR_NORMAL);
- menu->redraw &= ~REDRAW_STATUS;
-+ if (option(OPTXTERMSETTITLES))
-+ {
-+ menu_status_line (buf, sizeof (buf), menu, NONULL (XtermTitle));
-+ set_xterm_title_bar(buf);
-+ menu_status_line (buf, sizeof (buf), menu, NONULL (XtermIcon));
-+ set_xterm_icon_name(buf);
-+ }
- }
-
- menu->redraw = 0;
---- a/globals.h
-+++ b/globals.h
-@@ -145,6 +145,8 @@ WHERE char *Tempdir;
- WHERE char *Tochars;
- WHERE char *Username;
- WHERE char *Visual;
-+WHERE char *XtermTitle;
-+WHERE char *XtermIcon;
-
- WHERE char *CurrentFolder;
- WHERE char *LastFolder;
---- a/init.c
-+++ b/init.c
-@@ -1870,6 +1870,26 @@ static int parse_set (BUFFER *tmp, BUFFE
- toggle_option (MuttVars[idx].data);
- else
- set_option (MuttVars[idx].data);
-+
-+ /* sanity check for xterm */
-+ if ((mutt_strcmp (MuttVars[idx].option, "xterm_set_titles") == 0)
-+ && option (OPTXTERMSETTITLES))
-+ {
-+ char *ep = getenv ("TERM");
-+ /* Make sure that the terminal can take the control codes */
-+ if (ep == NULL) unset_option (MuttVars[idx].data);
-+ else if (mutt_strncasecmp (ep, "xterm", 5) &&
-+ mutt_strncasecmp (ep, "color-xterm", 11) &&
-+ mutt_strncasecmp (ep, "eterm", 5) &&
-+ mutt_strncasecmp (ep, "kterm", 5) &&
-+ mutt_strncasecmp (ep, "nxterm", 6) &&
-+ mutt_strncasecmp (ep, "putty", 5) &&
-+ mutt_strncasecmp (ep, "screen", 6) &&
-+ mutt_strncasecmp (ep, "cygwin", 6) &&
-+ mutt_strncasecmp (ep, "rxvt", 4) )
-+ unset_option (MuttVars[idx]. data);
-+
-+ }
- }
- else if (myvar || DTYPE (MuttVars[idx].type) == DT_STR ||
- DTYPE (MuttVars[idx].type) == DT_PATH ||
---- a/init.h
-+++ b/init.h
-@@ -3104,6 +3104,27 @@ struct option_t MuttVars[] = {
- ** option does nothing: mutt will never write out the BCC header
- ** in this case.
- */
-+ {"xterm_icon", DT_STR, R_BOTH, UL &XtermIcon, UL "M%?n?AIL&ail?"},
-+ /*
-+ ** .pp
-+ ** Controls the format of the icon title, as long as xterm_set_titles
-+ ** is enabled. This string is identical in formatting to the one used by
-+ ** ``$$status_format''.
-+ */
-+ {"xterm_set_titles", DT_BOOL, R_BOTH, OPTXTERMSETTITLES, 0},
-+ /* The default must be off to force in the validity checking. */
-+ /*
-+ ** .pp
-+ ** Controls whether mutt sets the xterm title bar and icon name
-+ ** (as long as you are in an appropriate terminal).
-+ */
-+ {"xterm_title", DT_STR, R_BOTH, UL &XtermTitle, UL "Mutt with %?m?%m messages&no messages?%?n? [%n NEW]?"},
-+ /*
-+ ** .pp
-+ ** Controls the format of the title bar of the xterm provided that
-+ ** xterm_set_titles has been set. This string is identical in formatting
-+ ** to the one used by ``$$status_format''.
-+ */
- /*--*/
- { NULL }
- };
---- a/mutt.h
-+++ b/mutt.h
-@@ -458,6 +458,7 @@ enum
- OPTWRAPSEARCH,
- OPTWRITEBCC, /* write out a bcc header? */
- OPTXMAILER,
-+ OPTXTERMSETTITLES,
-
- OPTCRYPTUSEGPGME,
- OPTCRYPTUSEPKA,
---- a/pager.c
-+++ b/pager.c
-@@ -1767,6 +1767,13 @@ mutt_pager (const char *banner, const ch
- mutt_paddstr (COLS, IsHeader (extra) || IsMsgAttach (extra) ? buffer : banner);
- BKGDSET (MT_COLOR_NORMAL);
- SETCOLOR (MT_COLOR_NORMAL);
-+ if (option(OPTXTERMSETTITLES))
-+ {
-+ menu_status_line (buffer, sizeof (buffer), index, NONULL (XtermTitle));
-+ set_xterm_title_bar(buffer);
-+ menu_status_line (buffer, sizeof (buffer), index, NONULL (XtermIcon));
-+ set_xterm_icon_name(buffer);
-+ }
- }
-
- if ((redraw & REDRAW_INDEX) && index)
---- a/status.c
-+++ b/status.c
-@@ -195,6 +195,8 @@ status_format_str (char *buf, size_t buf
- break;
-
- case 'P':
-+ if (!menu)
-+ break;
- if (menu->top + menu->pagelen >= menu->max)
- cp = menu->top ? "end" : "all";
- else
---- a/mutt_menu.h
-+++ b/mutt_menu.h
-@@ -103,6 +103,8 @@ void menu_current_middle (MUTTMENU *);
- void menu_current_bottom (MUTTMENU *);
- void menu_check_recenter (MUTTMENU *);
- void menu_status_line (char *, size_t, MUTTMENU *, const char *);
-+void set_xterm_title_bar (char *title);
-+void set_xterm_icon_name (char *name);
-
- MUTTMENU *mutt_new_menu (void);
- void mutt_menuDestroy (MUTTMENU **);
---- a/PATCHES
-+++ b/PATCHES
-@@ -0,0 +1 @@
-+patch-1.5.13.nt+ab.xtitles.4
+++ /dev/null
-Index: debian-mutt-sidebar/configure.ac
-===================================================================
---- debian-mutt-sidebar.orig/configure.ac 2007-08-11 16:42:36.000000000 +0200
-+++ debian-mutt-sidebar/configure.ac 2007-08-11 16:42:49.000000000 +0200
-@@ -9,6 +9,7 @@ AM_CONFIG_HEADER([config.h])
-
- mutt_cv_version=`cat $srcdir/VERSION`
- AM_INIT_AUTOMAKE(mutt, $mutt_cv_version)
-+AM_MAINTAINER_MODE
- AC_SUBST([CONFIG_STATUS_DEPENDENCIES], ['$(top_srcdir)/VERSION'])
-
- AC_GNU_SOURCE
+++ /dev/null
---- a/contrib/gpg.rc
-+++ b/contrib/gpg.rc
-@@ -72,6 +72,8 @@ set pgp_list_secring_command="gpg --no-v
-
- # fetch keys
- # set pgp_getkeys_command="pkspxycwrap %r"
-+# This will work when #172960 will be fixed upstream
-+# set pgp_getkeys_command="gpg --recv-keys %r"
-
- # pattern for good signature - may need to be adapted to locale!
-
+++ /dev/null
-Index: debian-mutt/contrib/gpg.rc
-===================================================================
---- debian-mutt.orig/contrib/gpg.rc 2007-03-20 22:20:31.000000000 +0100
-+++ debian-mutt/contrib/gpg.rc 2007-03-20 22:25:55.000000000 +0100
-@@ -49,11 +49,11 @@ set pgp_clearsign_command="gpg --no-verb
-
- # create a pgp/mime encrypted attachment
- # set pgp_encrypt_only_command="pgpewrap gpg-2comp -v --batch --output - --encrypt --textmode --armor --always-trust -- -r %r -- %f"
--set pgp_encrypt_only_command="pgpewrap gpg --batch --quiet --no-verbose --output - --encrypt --textmode --armor --always-trust -- -r %r -- %f"
-+set pgp_encrypt_only_command="/usr/lib/mutt/pgpewrap gpg --batch --quiet --no-verbose --output - --encrypt --textmode --armor --always-trust -- -r %r -- %f"
-
- # create a pgp/mime encrypted and signed attachment
- # set pgp_encrypt_sign_command="pgpewrap gpg-2comp %?p?--passphrase-fd 0? -v --batch --output - --encrypt --sign %?a?-u %a? --armor --always-trust -- -r %r -- %f"
--set pgp_encrypt_sign_command="pgpewrap gpg %?p?--passphrase-fd 0? --batch --quiet --no-verbose --textmode --output - --encrypt --sign %?a?-u %a? --armor --always-trust -- -r %r -- %f"
-+set pgp_encrypt_sign_command="/usr/lib/mutt/pgpewrap gpg %?p?--passphrase-fd 0? --batch --quiet --no-verbose --textmode --output - --encrypt --sign %?a?-u %a? --armor --always-trust -- -r %r -- %f"
-
- # import a key into the public key ring
- set pgp_import_command="gpg --no-verbose --import %f"
+++ /dev/null
---- a/contrib/smime.rc
-+++ b/contrib/smime.rc
-@@ -4,33 +4,34 @@
-
- # If you compiled mutt with support for both PGP and S/MIME, PGP
- # will be the default method unless the following option is set
--set smime_is_default
-+#set smime_is_default
-
- # Uncoment this if you don't want to set labels for certificates you add.
- # unset smime_ask_cert_label
-
- # Passphrase expiration
--set smime_timeout=300
-+#set smime_timeout=300
-
- # Global crypto options -- these affect PGP operations as well.
--set crypt_autosign = yes
--set crypt_replyencrypt = yes
--set crypt_replysign = yes
--set crypt_replysignencrypted = yes
--set crypt_verify_sig = yes
-+#set crypt_autosign = yes
-+#set crypt_replyencrypt = yes
-+#set crypt_replysign = yes
-+#set crypt_replysignencrypted = yes
-+#set crypt_verify_sig = yes
-
- # Section A: Key Management.
-
- # The (default) keyfile for signing/decrypting. Uncomment the following
- # line and replace the keyid with your own.
--set smime_default_key="12345678.0"
-+#set smime_default_key="12345678.0"
-
- # Uncommen to make mutt ask what key to use when trying to decrypt a message.
- # It will use the default key above (if that was set) else.
- # unset smime_decrypt_use_default_key
-
- # Path to a file or directory with trusted certificates
--set smime_ca_location="~/.smime/ca-bundle.crt"
-+#set smime_ca_location="~/.smime/ca-bundle.crt"
-+set smime_ca_location=`for f in $HOME/.smime/ca-certificates.crt $HOME/.smime/ca-bundle.crt /etc/ssl/certs/ca-certificates.crt ; do if [ -e $f ] ; then echo $f ; exit ; fi ; done`
-
- # Path to where all known certificates go. (must exist!)
- set smime_certificates="~/.smime/certificates"
+++ /dev/null
-# vim:ft=diff:
-This is the sidebar patch.
-
-When enabled, mutt will show a list of mailboxes with (new) message counts in a
-separate column on the left side of the screen.
-
-As this feature is still considered to be unstable, this patch is only applied
-in the "mutt-patched" package.
-
-* Configuration variables:
-
- sidebar_delim (string, default "|")
-
- This specifies the delimiter between the sidebar (if visible) and
- other screens.
-
- sidebar_visible (boolean, default no)
-
- This specifies whether or not to show sidebar (left-side list of folders).
-
- sidebar_width (integer, default 0)
-
- The width of the sidebar.
-
-* Patch source:
- - http://www.lunar-linux.org/index.php?page=mutt-sidebar
- - http://lunar-linux.org/~tchan/mutt/patch-1.5.18.sidebar.20080611.txt
-
-* Changes made:
- - 2008-08-02 myon: Refreshed patch using quilt push -f to remove hunks we do
- not need (Makefile.in).
-
-== END PATCH
---- a/buffy.c
-+++ b/buffy.c
-@@ -261,7 +261,7 @@ int mutt_buffy_check (int force)
- char path[_POSIX_PATH_MAX];
- struct stat contex_sb;
- time_t t;
--
-+ CONTEXT *ctx;
- #ifdef USE_IMAP
- /* update postponed count as well, on force */
- if (force)
-@@ -296,6 +296,8 @@ int mutt_buffy_check (int force)
-
- for (tmp = Incoming; tmp; tmp = tmp->next)
- {
-+ if ( tmp->new == 1 )
-+ tmp->has_new = 1;
- #ifdef USE_IMAP
- if (tmp->magic != M_IMAP)
- #endif
-@@ -353,48 +355,112 @@ int mutt_buffy_check (int force)
- case M_MBOX:
- case M_MMDF:
-
-- if (STAT_CHECK)
-+ {
-+ if (STAT_CHECK || tmp->msgcount == 0)
- {
-- BuffyCount++;
-- tmp->new = 1;
-+ BUFFY b = *tmp;
-+ int msgcount = 0;
-+ int msg_unread = 0;
-+ /* parse the mailbox, to see how much mail there is */
-+ ctx = mx_open_mailbox( tmp->path, M_READONLY | M_QUIET | M_NOSORT | M_PEEK, NULL);
-+ if(ctx)
-+ {
-+ msgcount = ctx->msgcount;
-+ msg_unread = ctx->unread;
-+ mx_close_mailbox(ctx, 0);
-+ }
-+ *tmp = b;
-+ tmp->msgcount = msgcount;
-+ tmp->msg_unread = msg_unread;
-+ if(STAT_CHECK) {
-+ tmp->has_new = tmp->new = 1;
-+ BuffyCount++;
-+ }
- }
- else if (option(OPTCHECKMBOXSIZE))
- {
- /* some other program has deleted mail from the folder */
- tmp->size = (long) sb.st_size;
- }
-- if (tmp->newly_created &&
-- (sb.st_ctime != sb.st_mtime || sb.st_ctime != sb.st_atime))
-- tmp->newly_created = 0;
--
-- break;
-+ if (tmp->newly_created &&
-+ (sb.st_ctime != sb.st_mtime || sb.st_ctime != sb.st_atime))
-+ tmp->newly_created = 0;
-+ }
-+ break;
-
- case M_MAILDIR:
-
-+ /* count new message */
- snprintf (path, sizeof (path), "%s/new", tmp->path);
- if ((dirp = opendir (path)) == NULL)
- {
- tmp->magic = 0;
- break;
- }
-+ tmp->msgcount = 0;
-+ tmp->msg_unread = 0;
-+ tmp->msg_flagged = 0;
- while ((de = readdir (dirp)) != NULL)
- {
- char *p;
- if (*de->d_name != '.' &&
- (!(p = strstr (de->d_name, ":2,")) || !strchr (p + 3, 'T')))
- {
-- /* one new and undeleted message is enough */
-- BuffyCount++;
-- tmp->new = 1;
-- break;
-+ tmp->has_new = tmp->new = 1;
-+ tmp->msgcount++;
-+ tmp->msg_unread++;
-+ }
-+ }
-+ if(tmp->msg_unread)
-+ BuffyCount++;
-+
-+ closedir (dirp);
-+
-+ /*
-+ * count read messages (for folderlist (sidebar) we also need to count
-+ * messages in cur so that we the total number of messages
-+ */
-+ snprintf (path, sizeof (path), "%s/cur", tmp->path);
-+ if ((dirp = opendir (path)) == NULL)
-+ {
-+ tmp->magic = 0;
-+ break;
-+ }
-+ while ((de = readdir (dirp)) != NULL)
-+ {
-+ char *p;
-+ if (*de->d_name != '.' &&
-+ (!(p = strstr (de->d_name, ":2,")) || !strchr (p + 3, 'T')))
-+ {
-+ tmp->msgcount++;
-+ if (p && strchr(p + 3, 'F')) {
-+ tmp->msg_flagged++;
-+ }
- }
- }
- closedir (dirp);
- break;
-
- case M_MH:
-- if ((tmp->new = mh_buffy (tmp->path)) > 0)
-- BuffyCount++;
-+ {
-+ DIR *dp;
-+ struct dirent *de;
-+ if ((tmp->new = mh_buffy (tmp->path)) > 0)
-+ BuffyCount++;
-+
-+ if ((dp = opendir (path)) == NULL)
-+ break;
-+ tmp->msgcount = 0;
-+ while ((de = readdir (dp)))
-+ {
-+ if (mh_valid_message (de->d_name))
-+ {
-+ tmp->msgcount++;
-+ tmp->has_new = tmp->new = 1;
-+ }
-+ }
-+ closedir (dp);
-+ }
- break;
- }
- }
---- a/buffy.h
-+++ b/buffy.h
-@@ -25,7 +25,12 @@ typedef struct buffy_t
- char *path;
- long size;
- struct buffy_t *next;
-+ struct buffy_t *prev;
- short new; /* mailbox has new mail */
-+ short has_new; /* set it new if new and not read */
-+ int msgcount; /* total number of messages */
-+ int msg_unread; /* number of unread messages */
-+ int msg_flagged; /* number of flagged messages */
- short notified; /* user has been notified */
- short magic; /* mailbox type */
- short newly_created; /* mbox or mmdf just popped into existence */
---- a/color.c
-+++ b/color.c
-@@ -93,6 +93,8 @@ static struct mapping_t Fields[] =
- { "bold", MT_COLOR_BOLD },
- { "underline", MT_COLOR_UNDERLINE },
- { "index", MT_COLOR_INDEX },
-+ { "sidebar_new", MT_COLOR_NEW },
-+ { "sidebar_flagged", MT_COLOR_FLAGGED },
- { NULL, 0 }
- };
-
---- a/compose.c
-+++ b/compose.c
-@@ -72,7 +72,7 @@ enum
-
- #define HDR_XOFFSET 10
- #define TITLE_FMT "%10s" /* Used for Prompts, which are ASCII */
--#define W (COLS - HDR_XOFFSET)
-+#define W (COLS - HDR_XOFFSET - SidebarWidth)
-
- static char *Prompts[] =
- {
-@@ -115,16 +115,16 @@ static void redraw_crypt_lines (HEADER *
- if ((WithCrypto & APPLICATION_PGP) && (WithCrypto & APPLICATION_SMIME))
- {
- if (!msg->security)
-- mvaddstr (HDR_CRYPT, 0, "Security: ");
-+ mvaddstr (HDR_CRYPT, SidebarWidth, "Security: ");
- else if (msg->security & APPLICATION_SMIME)
-- mvaddstr (HDR_CRYPT, 0, " S/MIME: ");
-+ mvaddstr (HDR_CRYPT, SidebarWidth, " S/MIME: ");
- else if (msg->security & APPLICATION_PGP)
-- mvaddstr (HDR_CRYPT, 0, " PGP: ");
-+ mvaddstr (HDR_CRYPT, SidebarWidth, " PGP: ");
- }
- else if ((WithCrypto & APPLICATION_SMIME))
-- mvaddstr (HDR_CRYPT, 0, " S/MIME: ");
-+ mvaddstr (HDR_CRYPT, SidebarWidth, " S/MIME: ");
- else if ((WithCrypto & APPLICATION_PGP))
-- mvaddstr (HDR_CRYPT, 0, " PGP: ");
-+ mvaddstr (HDR_CRYPT, SidebarWidth, " PGP: ");
- else
- return;
-
-@@ -148,7 +148,7 @@ static void redraw_crypt_lines (HEADER *
- }
- clrtoeol ();
-
-- move (HDR_CRYPTINFO, 0);
-+ move (HDR_CRYPTINFO, SidebarWidth);
- clrtoeol ();
- if ((WithCrypto & APPLICATION_PGP)
- && msg->security & APPLICATION_PGP && msg->security & SIGN)
-@@ -164,7 +164,7 @@ static void redraw_crypt_lines (HEADER *
- && (msg->security & ENCRYPT)
- && SmimeCryptAlg
- && *SmimeCryptAlg) {
-- mvprintw (HDR_CRYPTINFO, 40, "%s%s", _("Encrypt with: "),
-+ mvprintw (HDR_CRYPTINFO, SidebarWidth + 40, "%s%s", _("Encrypt with: "),
- NONULL(SmimeCryptAlg));
- off = 20;
- }
-@@ -178,7 +178,7 @@ static void redraw_mix_line (LIST *chain
- int c;
- char *t;
-
-- mvaddstr (HDR_MIX, 0, " Mix: ");
-+ mvaddstr (HDR_MIX, SidebarWidth, " Mix: ");
-
- if (!chain)
- {
-@@ -193,7 +193,7 @@ static void redraw_mix_line (LIST *chain
- if (t && t[0] == '0' && t[1] == '\0')
- t = "<random>";
-
-- if (c + mutt_strlen (t) + 2 >= COLS)
-+ if (c + mutt_strlen (t) + 2 >= COLS - SidebarWidth)
- break;
-
- addstr (NONULL(t));
-@@ -245,7 +245,7 @@ static void draw_envelope_addr (int line
-
- buf[0] = 0;
- rfc822_write_address (buf, sizeof (buf), addr, 1);
-- mvprintw (line, 0, TITLE_FMT, Prompts[line - 1]);
-+ mvprintw (line, SidebarWidth, TITLE_FMT, Prompts[line - 1]);
- mutt_paddstr (W, buf);
- }
-
-@@ -255,10 +255,10 @@ static void draw_envelope (HEADER *msg,
- draw_envelope_addr (HDR_TO, msg->env->to);
- draw_envelope_addr (HDR_CC, msg->env->cc);
- draw_envelope_addr (HDR_BCC, msg->env->bcc);
-- mvprintw (HDR_SUBJECT, 0, TITLE_FMT, Prompts[HDR_SUBJECT - 1]);
-+ mvprintw (HDR_SUBJECT, SidebarWidth, TITLE_FMT, Prompts[HDR_SUBJECT - 1]);
- mutt_paddstr (W, NONULL (msg->env->subject));
- draw_envelope_addr (HDR_REPLYTO, msg->env->reply_to);
-- mvprintw (HDR_FCC, 0, TITLE_FMT, Prompts[HDR_FCC - 1]);
-+ mvprintw (HDR_FCC, SidebarWidth, TITLE_FMT, Prompts[HDR_FCC - 1]);
- mutt_paddstr (W, fcc);
-
- if (WithCrypto)
-@@ -269,7 +269,7 @@ static void draw_envelope (HEADER *msg,
- #endif
-
- SETCOLOR (MT_COLOR_STATUS);
-- mvaddstr (HDR_ATTACH - 1, 0, _("-- Attachments"));
-+ mvaddstr (HDR_ATTACH - 1, SidebarWidth, _("-- Attachments"));
- BKGDSET (MT_COLOR_STATUS);
- clrtoeol ();
-
-@@ -307,7 +307,7 @@ static int edit_address_list (int line,
- /* redraw the expanded list so the user can see the result */
- buf[0] = 0;
- rfc822_write_address (buf, sizeof (buf), *addr, 1);
-- move (line, HDR_XOFFSET);
-+ move (line, HDR_XOFFSET+SidebarWidth);
- mutt_paddstr (W, buf);
-
- return 0;
-@@ -553,7 +553,7 @@ int mutt_compose_menu (HEADER *msg, /*
- if (mutt_get_field ("Subject: ", buf, sizeof (buf), 0) == 0)
- {
- mutt_str_replace (&msg->env->subject, buf);
-- move (HDR_SUBJECT, HDR_XOFFSET);
-+ move (HDR_SUBJECT, HDR_XOFFSET + SidebarWidth);
- clrtoeol ();
- if (msg->env->subject)
- mutt_paddstr (W, msg->env->subject);
-@@ -570,7 +570,7 @@ int mutt_compose_menu (HEADER *msg, /*
- {
- strfcpy (fcc, buf, _POSIX_PATH_MAX);
- mutt_pretty_mailbox (fcc);
-- move (HDR_FCC, HDR_XOFFSET);
-+ move (HDR_FCC, HDR_XOFFSET + SidebarWidth);
- mutt_paddstr (W, fcc);
- fccSet = 1;
- }
---- a/curs_main.c
-+++ b/curs_main.c
-@@ -29,6 +29,7 @@
- #include "sort.h"
- #include "buffy.h"
- #include "mx.h"
-+#include "sidebar.h"
-
- #ifdef USE_POP
- #include "pop.h"
-@@ -544,8 +545,12 @@ int mutt_index_menu (void)
- menu->redraw |= REDRAW_STATUS;
- if (do_buffy_notify)
- {
-- if (mutt_buffy_notify () && option (OPTBEEPNEW))
-- beep ();
-+ if (mutt_buffy_notify ())
-+ {
-+ menu->redraw |= REDRAW_FULL;
-+ if (option (OPTBEEPNEW))
-+ beep ();
-+ }
- }
- else
- do_buffy_notify = 1;
-@@ -557,6 +562,7 @@ int mutt_index_menu (void)
- if (menu->redraw & REDRAW_FULL)
- {
- menu_redraw_full (menu);
-+ draw_sidebar(menu->menu);
- mutt_show_error ();
- }
-
-@@ -579,10 +585,13 @@ int mutt_index_menu (void)
-
- if (menu->redraw & REDRAW_STATUS)
- {
-+ DrawFullLine = 1;
- menu_status_line (buf, sizeof (buf), menu, NONULL (Status));
-+ DrawFullLine = 0;
- CLEARLINE (option (OPTSTATUSONTOP) ? 0 : LINES-2);
- SETCOLOR (MT_COLOR_STATUS);
- BKGDSET (MT_COLOR_STATUS);
-+ set_buffystats(Context);
- mutt_paddstr (COLS, buf);
- SETCOLOR (MT_COLOR_NORMAL);
- BKGDSET (MT_COLOR_NORMAL);
-@@ -603,7 +612,7 @@ int mutt_index_menu (void)
- menu->oldcurrent = -1;
-
- if (option (OPTARROWCURSOR))
-- move (menu->current - menu->top + menu->offset, 2);
-+ move (menu->current - menu->top + menu->offset, SidebarWidth + 2);
- else if (option (OPTBRAILLEFRIENDLY))
- move (menu->current - menu->top + menu->offset, 0);
- else
-@@ -1072,6 +1081,7 @@ int mutt_index_menu (void)
- menu->redraw = REDRAW_FULL;
- break;
-
-+ case OP_SIDEBAR_OPEN:
- case OP_MAIN_CHANGE_FOLDER:
- case OP_MAIN_NEXT_UNREAD_MAILBOX:
-
-@@ -1103,7 +1113,11 @@ int mutt_index_menu (void)
- {
- mutt_buffy (buf, sizeof (buf));
-
-- if (mutt_enter_fname (cp, buf, sizeof (buf), &menu->redraw, 1) == -1)
-+ if ( op == OP_SIDEBAR_OPEN ) {
-+ if(!CurBuffy)
-+ break;
-+ strncpy( buf, CurBuffy->path, sizeof(buf) );
-+ } else if (mutt_enter_fname (cp, buf, sizeof (buf), &menu->redraw, 1) == -1)
- {
- if (menu->menu == MENU_PAGER)
- {
-@@ -1121,6 +1135,7 @@ int mutt_index_menu (void)
- }
-
- mutt_expand_path (buf, sizeof (buf));
-+ set_curbuffy(buf);
- if (mx_get_magic (buf) <= 0)
- {
- mutt_error (_("%s is not a mailbox."), buf);
-@@ -2213,6 +2228,12 @@ int mutt_index_menu (void)
- mutt_what_key();
- break;
-
-+ case OP_SIDEBAR_SCROLL_UP:
-+ case OP_SIDEBAR_SCROLL_DOWN:
-+ case OP_SIDEBAR_NEXT:
-+ case OP_SIDEBAR_PREV:
-+ scroll_sidebar(op, menu->menu);
-+ break;
- default:
- if (menu->menu == MENU_MAIN)
- km_error_key (MENU_MAIN);
---- a/flags.c
-+++ b/flags.c
-@@ -22,8 +22,10 @@
-
- #include "mutt.h"
- #include "mutt_curses.h"
-+#include "mutt_menu.h"
- #include "sort.h"
- #include "mx.h"
-+#include "sidebar.h"
-
- #ifdef USE_IMAP
- #include "imap_private.h"
-@@ -294,6 +296,7 @@ void _mutt_set_flag (CONTEXT *ctx, HEADE
- */
- if (h->searched && (changed != h->changed || deleted != ctx->deleted || tagged != ctx->tagged || flagged != ctx->flagged))
- h->searched = 0;
-+ draw_sidebar(0);
- }
-
- void mutt_tag_set_flag (int flag, int bf)
---- a/functions.h
-+++ b/functions.h
-@@ -169,6 +169,11 @@ struct binding_t OpMain[] = { /* map: in
- { "decrypt-save", OP_DECRYPT_SAVE, NULL },
-
-
-+ { "sidebar-scroll-up", OP_SIDEBAR_SCROLL_UP, NULL },
-+ { "sidebar-scroll-down", OP_SIDEBAR_SCROLL_DOWN, NULL },
-+ { "sidebar-next", OP_SIDEBAR_NEXT, NULL },
-+ { "sidebar-prev", OP_SIDEBAR_PREV, NULL },
-+ { "sidebar-open", OP_SIDEBAR_OPEN, NULL },
- { NULL, 0, NULL }
- };
-
-@@ -267,6 +272,11 @@ struct binding_t OpPager[] = { /* map: p
- { "decrypt-save", OP_DECRYPT_SAVE, NULL },
-
-
-+ { "sidebar-scroll-up", OP_SIDEBAR_SCROLL_UP, NULL },
-+ { "sidebar-scroll-down", OP_SIDEBAR_SCROLL_DOWN, NULL },
-+ { "sidebar-next", OP_SIDEBAR_NEXT, NULL },
-+ { "sidebar-prev", OP_SIDEBAR_PREV, NULL },
-+ { "sidebar-open", OP_SIDEBAR_OPEN, NULL },
- { NULL, 0, NULL }
- };
-
---- a/globals.h
-+++ b/globals.h
-@@ -116,6 +116,7 @@ WHERE char *Realname;
- WHERE char *SendCharset;
- WHERE char *Sendmail;
- WHERE char *Shell;
-+WHERE char *SidebarDelim;
- WHERE char *Signature;
- WHERE char *SimpleSearch;
- #if USE_SMTP
-@@ -212,6 +213,9 @@ WHERE short ScoreThresholdDelete;
- WHERE short ScoreThresholdRead;
- WHERE short ScoreThresholdFlag;
-
-+WHERE struct buffy_t *CurBuffy INITVAL(0);
-+WHERE short DrawFullLine INITVAL(0);
-+WHERE short SidebarWidth;
- #ifdef USE_IMAP
- WHERE short ImapKeepalive;
- #endif
---- a/init.h
-+++ b/init.h
-@@ -1532,6 +1532,22 @@ struct option_t MuttVars[] = {
- ** you may unset this setting.
- ** (Crypto only)
- */
-+ {"sidebar_delim", DT_STR, R_BOTH, UL &SidebarDelim, "|"},
-+ /*
-+ ** .pp
-+ ** This specifies the delimiter between the sidebar (if visible) and
-+ ** other screens.
-+ */
-+ { "sidebar_visible", DT_BOOL, R_BOTH, OPTSIDEBAR, 0 },
-+ /*
-+ ** .pp
-+ ** This specifies whether or not to show sidebar (left-side list of folders).
-+ */
-+ { "sidebar_width", DT_NUM, R_BOTH, UL &SidebarWidth, 0 },
-+ /*
-+ ** .pp
-+ ** The width of the sidebar.
-+ */
- { "pgp_use_gpg_agent", DT_BOOL, R_NONE, OPTUSEGPGAGENT, 0},
- /*
- ** .pp
---- a/mailbox.h
-+++ b/mailbox.h
-@@ -27,6 +27,7 @@
- #define M_NEWFOLDER (1<<4) /* create a new folder - same as M_APPEND, but uses
- * safe_fopen() for mbox-style folders.
- */
-+#define M_PEEK (1<<5) /* revert atime back after taking a look (if applicable) */
-
- /* mx_open_new_message() */
- #define M_ADD_FROM 1 /* add a From_ line */
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -29,7 +29,8 @@ mutt_SOURCES = \
- score.c send.c sendlib.c signal.c sort.c \
- status.c system.c thread.c charset.c history.c lib.c \
- muttlib.c editmsg.c mbyte.c \
-- url.c ascii.c mutt_idna.c crypt-mod.c crypt-mod.h
-+ url.c ascii.c mutt_idna.c crypt-mod.c crypt-mod.h \
-+ sidebar.c
-
- nodist_mutt_SOURCES = $(BUILT_SOURCES)
-
---- a/mbox.c
-+++ b/mbox.c
-@@ -104,6 +104,7 @@ int mmdf_parse_mailbox (CONTEXT *ctx)
- mutt_perror (ctx->path);
- return (-1);
- }
-+ ctx->atime = sb.st_atime;
- ctx->mtime = sb.st_mtime;
- ctx->size = sb.st_size;
-
-@@ -259,6 +260,7 @@ int mbox_parse_mailbox (CONTEXT *ctx)
-
- ctx->size = sb.st_size;
- ctx->mtime = sb.st_mtime;
-+ ctx->atime = sb.st_atime;
-
- #ifdef NFS_ATTRIBUTE_HACK
- if (sb.st_mtime > sb.st_atime)
---- a/menu.c
-+++ b/menu.c
-@@ -24,6 +24,7 @@
- #include "mutt_curses.h"
- #include "mutt_menu.h"
- #include "mbyte.h"
-+#include "sidebar.h"
-
- #ifdef USE_IMAP
- #include "imap.h"
-@@ -158,7 +159,7 @@ void menu_pad_string (char *s, size_t n)
- {
- char *scratch = safe_strdup (s);
- int shift = option (OPTARROWCURSOR) ? 3 : 0;
-- int cols = COLS - shift;
-+ int cols = COLS - shift - SidebarWidth;
-
- mutt_format_string (s, n, cols, cols, FMT_LEFT, ' ', scratch, mutt_strlen (scratch), 1);
- s[n - 1] = 0;
-@@ -209,6 +210,7 @@ void menu_redraw_index (MUTTMENU *menu)
- char buf[LONG_STRING];
- int i;
-
-+ draw_sidebar(1);
- for (i = menu->top; i < menu->top + menu->pagelen; i++)
- {
- if (i < menu->max)
-@@ -219,7 +221,7 @@ void menu_redraw_index (MUTTMENU *menu)
- if (option (OPTARROWCURSOR))
- {
- attrset (menu->color (i));
-- CLEARLINE (i - menu->top + menu->offset);
-+ CLEARLINE_WIN (i - menu->top + menu->offset);
-
- if (i == menu->current)
- {
-@@ -248,14 +250,14 @@ void menu_redraw_index (MUTTMENU *menu)
- BKGDSET (MT_COLOR_INDICATOR);
- }
-
-- CLEARLINE (i - menu->top + menu->offset);
-+ CLEARLINE_WIN (i - menu->top + menu->offset);
- print_enriched_string (menu->color(i), (unsigned char *) buf, i != menu->current);
- SETCOLOR (MT_COLOR_NORMAL);
- BKGDSET (MT_COLOR_NORMAL);
- }
- }
- else
-- CLEARLINE (i - menu->top + menu->offset);
-+ CLEARLINE_WIN (i - menu->top + menu->offset);
- }
- menu->redraw = 0;
- }
-@@ -270,7 +272,7 @@ void menu_redraw_motion (MUTTMENU *menu)
- return;
- }
-
-- move (menu->oldcurrent + menu->offset - menu->top, 0);
-+ move (menu->oldcurrent + menu->offset - menu->top, SidebarWidth);
- SETCOLOR (MT_COLOR_NORMAL);
- BKGDSET (MT_COLOR_NORMAL);
-
-@@ -285,13 +287,13 @@ void menu_redraw_motion (MUTTMENU *menu)
- clrtoeol ();
- menu_make_entry (buf, sizeof (buf), menu, menu->oldcurrent);
- menu_pad_string (buf, sizeof (buf));
-- move (menu->oldcurrent + menu->offset - menu->top, 3);
-+ move (menu->oldcurrent + menu->offset - menu->top, SidebarWidth + 3);
- print_enriched_string (menu->color(menu->oldcurrent), (unsigned char *) buf, 1);
- SETCOLOR (MT_COLOR_NORMAL);
- }
-
- /* now draw it in the new location */
-- move (menu->current + menu->offset - menu->top, 0);
-+ move (menu->current + menu->offset - menu->top, SidebarWidth);
- attrset (menu->color (menu->current));
- ADDCOLOR (MT_COLOR_INDICATOR);
- addstr ("->");
-@@ -312,7 +314,7 @@ void menu_redraw_motion (MUTTMENU *menu)
- attrset (menu->color (menu->current));
- ADDCOLOR (MT_COLOR_INDICATOR);
- BKGDSET (MT_COLOR_INDICATOR);
-- CLEARLINE (menu->current - menu->top + menu->offset);
-+ CLEARLINE_WIN (menu->current - menu->top + menu->offset);
- print_enriched_string (menu->color(menu->current), (unsigned char *) buf, 0);
- SETCOLOR (MT_COLOR_NORMAL);
- BKGDSET (MT_COLOR_NORMAL);
-@@ -324,7 +326,7 @@ void menu_redraw_current (MUTTMENU *menu
- {
- char buf[LONG_STRING];
-
-- move (menu->current + menu->offset - menu->top, 0);
-+ move (menu->current + menu->offset - menu->top, SidebarWidth);
- menu_make_entry (buf, sizeof (buf), menu, menu->current);
- menu_pad_string (buf, sizeof (buf));
-
-@@ -871,7 +873,7 @@ int mutt_menuLoop (MUTTMENU *menu)
-
-
- if (option (OPTARROWCURSOR))
-- move (menu->current - menu->top + menu->offset, 2);
-+ move (menu->current - menu->top + menu->offset, SidebarWidth + 2);
- else if (option (OPTBRAILLEFRIENDLY))
- move (menu->current - menu->top + menu->offset, 0);
- else
---- a/mutt_curses.h
-+++ b/mutt_curses.h
-@@ -64,6 +64,7 @@
- #undef lines
- #endif /* lines */
-
-+#define CLEARLINE_WIN(x) move(x,SidebarWidth), clrtoeol()
- #define CLEARLINE(x) move(x,0), clrtoeol()
- #define CENTERLINE(x,y) move(y, (COLS-strlen(x))/2), addstr(x)
- #define BEEP() do { if (option (OPTBEEP)) beep(); } while (0)
-@@ -126,6 +127,8 @@ enum
- MT_COLOR_BOLD,
- MT_COLOR_UNDERLINE,
- MT_COLOR_INDEX,
-+ MT_COLOR_NEW,
-+ MT_COLOR_FLAGGED,
- MT_COLOR_MAX
- };
-
---- a/mutt.h
-+++ b/mutt.h
-@@ -437,6 +437,7 @@ enum
- OPTSAVEEMPTY,
- OPTSAVENAME,
- OPTSCORE,
-+ OPTSIDEBAR,
- OPTSIGDASHES,
- OPTSIGONTOP,
- OPTSORTRE,
-@@ -874,6 +875,7 @@ typedef struct _context
- {
- char *path;
- FILE *fp;
-+ time_t atime;
- time_t mtime;
- off_t size;
- off_t vsize;
-@@ -914,6 +916,7 @@ typedef struct _context
- unsigned int quiet : 1; /* inhibit status messages? */
- unsigned int collapsed : 1; /* are all threads collapsed? */
- unsigned int closing : 1; /* mailbox is being closed */
-+ unsigned int peekonly : 1; /* just taking a glance, revert atime */
-
- /* driver hooks */
- void *data; /* driver specific data */
---- a/muttlib.c
-+++ b/muttlib.c
-@@ -1205,6 +1205,8 @@ void mutt_FormatString (char *dest, /*
- pl = pw = 1;
-
- /* see if there's room to add content, else ignore */
-+ if ( DrawFullLine )
-+ {
- if ((col < COLS && wlen < destlen) || soft)
- {
- int pad;
-@@ -1247,6 +1249,52 @@ void mutt_FormatString (char *dest, /*
- col += wid;
- src += pl;
- }
-+ }
-+ else
-+ {
-+ if ((col < COLS-SidebarWidth && wlen < destlen) || soft)
-+ {
-+ int pad;
-+
-+ /* get contents after padding */
-+ mutt_FormatString (buf, sizeof (buf), 0, src + pl, callback, data, flags);
-+ len = mutt_strlen (buf);
-+ wid = mutt_strwidth (buf);
-+
-+ /* try to consume as many columns as we can, if we don't have
-+ * memory for that, use as much memory as possible */
-+ pad = (COLS - SidebarWidth - col - wid) / pw;
-+ if (pad > 0 && wlen + (pad * pl) + len > destlen)
-+ pad = ((signed)(destlen - wlen - len)) / pl;
-+ if (pad > 0)
-+ {
-+ while (pad--)
-+ {
-+ memcpy (wptr, src, pl);
-+ wptr += pl;
-+ wlen += pl;
-+ col += pw;
-+ }
-+ }
-+ else if (soft && pad < 0)
-+ {
-+ /* \0-terminate dest for length computation in mutt_wstr_trunc() */
-+ *wptr = 0;
-+ /* make sure right part is at most as wide as display */
-+ len = mutt_wstr_trunc (buf, destlen, COLS, &wid);
-+ /* truncate left so that right part fits completely in */
-+ wlen = mutt_wstr_trunc (dest, destlen - len, col + pad, &col);
-+ wptr = dest + wlen;
-+ }
-+ if (len + wlen > destlen)
-+ len = mutt_wstr_trunc (buf, destlen - wlen, COLS - SidebarWidth - col, NULL);
-+ memcpy (wptr, buf, len);
-+ wptr += len;
-+ wlen += len;
-+ col += wid;
-+ src += pl;
-+ }
-+ }
- break; /* skip rest of input */
- }
- else if (ch == '|')
---- a/mx.c
-+++ b/mx.c
-@@ -626,6 +626,7 @@ static int mx_open_mailbox_append (CONTE
- * M_APPEND open mailbox for appending
- * M_READONLY open mailbox in read-only mode
- * M_QUIET only print error messages
-+ * M_PEEK revert atime where applicable
- * ctx if non-null, context struct to use
- */
- CONTEXT *mx_open_mailbox (const char *path, int flags, CONTEXT *pctx)
-@@ -648,6 +649,8 @@ CONTEXT *mx_open_mailbox (const char *pa
- ctx->quiet = 1;
- if (flags & M_READONLY)
- ctx->readonly = 1;
-+ if (flags & M_PEEK)
-+ ctx->peekonly = 1;
-
- if (flags & (M_APPEND|M_NEWFOLDER))
- {
-@@ -752,9 +755,21 @@ CONTEXT *mx_open_mailbox (const char *pa
- void mx_fastclose_mailbox (CONTEXT *ctx)
- {
- int i;
-+#ifndef BUFFY_SIZE
-+ struct utimbuf ut;
-+#endif
-
- if(!ctx)
- return;
-+#ifndef BUFFY_SIZE
-+ /* fix up the times so buffy won't get confused */
-+ if (ctx->peekonly && ctx->path && ctx->mtime > ctx->atime)
-+ {
-+ ut.actime = ctx->atime;
-+ ut.modtime = ctx->mtime;
-+ utime (ctx->path, &ut);
-+ }
-+#endif
-
- if (ctx->mx_close)
- ctx->mx_close (ctx);
---- a/OPS
-+++ b/OPS
-@@ -179,3 +179,8 @@ OP_WHAT_KEY "display the keycode for a k
- OP_MAIN_SHOW_LIMIT "show currently active limit pattern"
- OP_MAIN_COLLAPSE_THREAD "collapse/uncollapse current thread"
- OP_MAIN_COLLAPSE_ALL "collapse/uncollapse all threads"
-+OP_SIDEBAR_SCROLL_UP "scroll the mailbox pane up 1 page"
-+OP_SIDEBAR_SCROLL_DOWN "scroll the mailbox pane down 1 page"
-+OP_SIDEBAR_NEXT "go down to next mailbox"
-+OP_SIDEBAR_PREV "go to previous mailbox"
-+OP_SIDEBAR_OPEN "open hilighted mailbox"
---- a/pager.c
-+++ b/pager.c
-@@ -30,6 +30,7 @@
- #include "pager.h"
- #include "attach.h"
- #include "mbyte.h"
-+#include "sidebar.h"
-
- #include "mx.h"
-
-@@ -1067,6 +1068,8 @@ static int format_line (struct line_t **
- mbstate_t mbstate;
-
- int wrap_cols = mutt_term_width ((flags & M_PAGER_NOWRAP) ? 0 : Wrap);
-+
-+ wrap_cols -= SidebarWidth;
-
- /* FIXME: this should come from lineInfo */
- memset(&mbstate, 0, sizeof(mbstate));
-@@ -1700,7 +1703,7 @@ mutt_pager (const char *banner, const ch
- if ((redraw & REDRAW_BODY) || topline != oldtopline)
- {
- do {
-- move (bodyoffset, 0);
-+ move (bodyoffset, SidebarWidth);
- curline = oldtopline = topline;
- lines = 0;
- force_redraw = 0;
-@@ -1713,6 +1716,7 @@ mutt_pager (const char *banner, const ch
- &QuoteList, &q_level, &force_redraw, &SearchRE) > 0)
- lines++;
- curline++;
-+ move(lines + bodyoffset, SidebarWidth);
- }
- last_offset = lineInfo[curline].offset;
- } while (force_redraw);
-@@ -1726,6 +1730,7 @@ mutt_pager (const char *banner, const ch
- addch ('~');
- addch ('\n');
- lines++;
-+ move(lines + bodyoffset, SidebarWidth);
- }
- /* We are going to update the pager status bar, so it isn't
- * necessary to reset to normal color now. */
-@@ -1749,22 +1754,22 @@ mutt_pager (const char *banner, const ch
- /* print out the pager status bar */
- SETCOLOR (MT_COLOR_STATUS);
- BKGDSET (MT_COLOR_STATUS);
-- CLEARLINE (statusoffset);
-+ CLEARLINE_WIN (statusoffset);
- if (IsHeader (extra))
- {
-- size_t l1 = COLS * MB_LEN_MAX;
-+ size_t l1 = (COLS-SidebarWidth) * MB_LEN_MAX;
- size_t l2 = sizeof (buffer);
- hfi.hdr = extra->hdr;
- mutt_make_string_info (buffer, l1 < l2 ? l1 : l2, NONULL (PagerFmt), &hfi, M_FORMAT_MAKEPRINT);
- }
- else if (IsMsgAttach (extra))
- {
-- size_t l1 = COLS * MB_LEN_MAX;
-+ size_t l1 = (COLS-SidebarWidth) * MB_LEN_MAX;
- size_t l2 = sizeof (buffer);
- hfi.hdr = extra->bdy->hdr;
- mutt_make_string_info (buffer, l1 < l2 ? l1 : l2, NONULL (PagerFmt), &hfi, M_FORMAT_MAKEPRINT);
- }
-- mutt_paddstr (COLS, IsHeader (extra) || IsMsgAttach (extra) ? buffer : banner);
-+ mutt_paddstr (COLS-SidebarWidth, IsHeader (extra) || IsMsgAttach (extra) ? buffer : banner);
- BKGDSET (MT_COLOR_NORMAL);
- SETCOLOR (MT_COLOR_NORMAL);
- if (option(OPTXTERMSETTITLES))
-@@ -1781,18 +1786,23 @@ mutt_pager (const char *banner, const ch
- /* redraw the pager_index indicator, because the
- * flags for this message might have changed. */
- menu_redraw_current (index);
-+ draw_sidebar(MENU_PAGER);
-
- /* print out the index status bar */
- menu_status_line (buffer, sizeof (buffer), index, NONULL(Status));
-
-- move (indexoffset + (option (OPTSTATUSONTOP) ? 0 : (indexlen - 1)), 0);
-+ move (indexoffset + (option (OPTSTATUSONTOP) ? 0 : (indexlen - 1)), SidebarWidth);
- SETCOLOR (MT_COLOR_STATUS);
- BKGDSET (MT_COLOR_STATUS);
-- mutt_paddstr (COLS, buffer);
-+ mutt_paddstr (COLS-SidebarWidth, buffer);
- SETCOLOR (MT_COLOR_NORMAL);
- BKGDSET (MT_COLOR_NORMAL);
- }
-
-+ /* if we're not using the index, update every time */
-+ if ( index == 0 )
-+ draw_sidebar(MENU_PAGER);
-+
- redraw = 0;
-
- if (option(OPTBRAILLEFRIENDLY)) {
-@@ -2671,6 +2681,13 @@ search_next:
- redraw = REDRAW_FULL;
- break;
-
-+ case OP_SIDEBAR_SCROLL_UP:
-+ case OP_SIDEBAR_SCROLL_DOWN:
-+ case OP_SIDEBAR_NEXT:
-+ case OP_SIDEBAR_PREV:
-+ scroll_sidebar(ch, MENU_PAGER);
-+ break;
-+
- default:
- ch = -1;
- break;
---- /dev/null
-+++ b/sidebar.c
-@@ -0,0 +1,333 @@
-+/*
-+ * Copyright (C) ????-2004 Justin Hibbits <jrh29@po.cwru.edu>
-+ * Copyright (C) 2004 Thomer M. Gil <mutt@thomer.com>
-+ *
-+ * 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., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
-+ */
-+
-+
-+#if HAVE_CONFIG_H
-+# include "config.h"
-+#endif
-+
-+#include "mutt.h"
-+#include "mutt_menu.h"
-+#include "mutt_curses.h"
-+#include "sidebar.h"
-+#include "buffy.h"
-+#include <libgen.h>
-+#include "keymap.h"
-+#include <stdbool.h>
-+
-+/*BUFFY *CurBuffy = 0;*/
-+static BUFFY *TopBuffy = 0;
-+static BUFFY *BottomBuffy = 0;
-+static int known_lines = 0;
-+
-+static int quick_log10(int n)
-+{
-+ char string[32];
-+ sprintf(string, "%d", n);
-+ return strlen(string);
-+}
-+
-+void calc_boundaries (int menu)
-+{
-+ BUFFY *tmp = Incoming;
-+
-+ if ( known_lines != LINES ) {
-+ TopBuffy = BottomBuffy = 0;
-+ known_lines = LINES;
-+ }
-+ for ( ; tmp->next != 0; tmp = tmp->next )
-+ tmp->next->prev = tmp;
-+
-+ if ( TopBuffy == 0 && BottomBuffy == 0 )
-+ TopBuffy = Incoming;
-+ if ( BottomBuffy == 0 ) {
-+ int count = LINES - 2 - (menu != MENU_PAGER || option(OPTSTATUSONTOP));
-+ BottomBuffy = TopBuffy;
-+ while ( --count && BottomBuffy->next )
-+ BottomBuffy = BottomBuffy->next;
-+ }
-+ else if ( TopBuffy == CurBuffy->next ) {
-+ int count = LINES - 2 - (menu != MENU_PAGER);
-+ BottomBuffy = CurBuffy;
-+ tmp = BottomBuffy;
-+ while ( --count && tmp->prev)
-+ tmp = tmp->prev;
-+ TopBuffy = tmp;
-+ }
-+ else if ( BottomBuffy == CurBuffy->prev ) {
-+ int count = LINES - 2 - (menu != MENU_PAGER);
-+ TopBuffy = CurBuffy;
-+ tmp = TopBuffy;
-+ while ( --count && tmp->next )
-+ tmp = tmp->next;
-+ BottomBuffy = tmp;
-+ }
-+}
-+
-+char *make_sidebar_entry(char *box, int size, int new, int flagged)
-+{
-+ static char *entry = 0;
-+ char *c;
-+ int i = 0;
-+ int delim_len = strlen(SidebarDelim);
-+
-+ c = realloc(entry, SidebarWidth - delim_len + 2);
-+ if ( c ) entry = c;
-+ entry[SidebarWidth - delim_len + 1] = 0;
-+ for (; i < SidebarWidth - delim_len + 1; entry[i++] = ' ' );
-+ i = strlen(box);
-+ strncpy( entry, box, i < (SidebarWidth - delim_len + 1) ? i : (SidebarWidth - delim_len + 1) );
-+
-+ if (size == -1)
-+ sprintf(entry + SidebarWidth - delim_len - 3, "?");
-+ else if ( new ) {
-+ if (flagged > 0) {
-+ sprintf(
-+ entry + SidebarWidth - delim_len - 5 - quick_log10(size) - quick_log10(new) - quick_log10(flagged),
-+ "% d(%d)[%d]", size, new, flagged);
-+ } else {
-+ sprintf(
-+ entry + SidebarWidth - delim_len - 3 - quick_log10(size) - quick_log10(new),
-+ "% d(%d)", size, new);
-+ }
-+ } else if (flagged > 0) {
-+ sprintf( entry + SidebarWidth - delim_len - 3 - quick_log10(size) - quick_log10(flagged), "% d[%d]", size, flagged);
-+ } else {
-+ sprintf( entry + SidebarWidth - delim_len - 1 - quick_log10(size), "% d", size);
-+ }
-+ return entry;
-+}
-+
-+void set_curbuffy(char buf[LONG_STRING])
-+{
-+ BUFFY* tmp = CurBuffy = Incoming;
-+
-+ if (!Incoming)
-+ return;
-+
-+ while(1) {
-+ if(!strcmp(tmp->path, buf)) {
-+ CurBuffy = tmp;
-+ break;
-+ }
-+
-+ if(tmp->next)
-+ tmp = tmp->next;
-+ else
-+ break;
-+ }
-+}
-+
-+int draw_sidebar(int menu) {
-+
-+ int lines = option(OPTHELP) ? 1 : 0;
-+ BUFFY *tmp;
-+#ifndef USE_SLANG_CURSES
-+ attr_t attrs;
-+#endif
-+ short delim_len = strlen(SidebarDelim);
-+ short color_pair;
-+
-+ static bool initialized = false;
-+ static int prev_show_value;
-+ static short saveSidebarWidth;
-+
-+ /* initialize first time */
-+ if(!initialized) {
-+ prev_show_value = option(OPTSIDEBAR);
-+ saveSidebarWidth = SidebarWidth;
-+ if(!option(OPTSIDEBAR)) SidebarWidth = 0;
-+ initialized = true;
-+ }
-+
-+ /* save or restore the value SidebarWidth */
-+ if(prev_show_value != option(OPTSIDEBAR)) {
-+ if(prev_show_value && !option(OPTSIDEBAR)) {
-+ saveSidebarWidth = SidebarWidth;
-+ SidebarWidth = 0;
-+ } else if(!prev_show_value && option(OPTSIDEBAR)) {
-+ SidebarWidth = saveSidebarWidth;
-+ }
-+ prev_show_value = option(OPTSIDEBAR);
-+ }
-+
-+
-+// if ( SidebarWidth == 0 ) return 0;
-+ if (SidebarWidth > 0 && option (OPTSIDEBAR)
-+ && delim_len >= SidebarWidth) {
-+ unset_option (OPTSIDEBAR);
-+ /* saveSidebarWidth = SidebarWidth; */
-+ if (saveSidebarWidth > delim_len) {
-+ SidebarWidth = saveSidebarWidth;
-+ mutt_error (_("Value for sidebar_delim is too long. Disabling sidebar."));
-+ sleep (2);
-+ } else {
-+ SidebarWidth = 0;
-+ mutt_error (_("Value for sidebar_delim is too long. Disabling sidebar. Please set your sidebar_width to a sane value."));
-+ sleep (4); /* the advise to set a sane value should be seen long enough */
-+ }
-+ saveSidebarWidth = 0;
-+ return (0);
-+ }
-+
-+ if ( SidebarWidth == 0 || !option(OPTSIDEBAR)) {
-+ if (SidebarWidth > 0) {
-+ saveSidebarWidth = SidebarWidth;
-+ SidebarWidth = 0;
-+ }
-+ unset_option(OPTSIDEBAR);
-+ return 0;
-+ }
-+
-+ /* get attributes for divider */
-+ SETCOLOR(MT_COLOR_STATUS);
-+#ifndef USE_SLANG_CURSES
-+ attr_get(&attrs, &color_pair, 0);
-+#else
-+ color_pair = attr_get();
-+#endif
-+ SETCOLOR(MT_COLOR_NORMAL);
-+
-+ /* draw the divider */
-+
-+ for ( ; lines < LINES-1-(menu != MENU_PAGER || option(OPTSTATUSONTOP)); lines++ ) {
-+ move(lines, SidebarWidth - delim_len);
-+ addstr(NONULL(SidebarDelim));
-+#ifndef USE_SLANG_CURSES
-+ mvchgat(lines, SidebarWidth - delim_len, delim_len, 0, color_pair, NULL);
-+#endif
-+ }
-+
-+ if ( Incoming == 0 ) return 0;
-+ lines = option(OPTHELP) ? 1 : 0; /* go back to the top */
-+
-+ if ( known_lines != LINES || TopBuffy == 0 || BottomBuffy == 0 )
-+ calc_boundaries(menu);
-+ if ( CurBuffy == 0 ) CurBuffy = Incoming;
-+
-+ tmp = TopBuffy;
-+
-+ SETCOLOR(MT_COLOR_NORMAL);
-+
-+ for ( ; tmp && lines < LINES-1 - (menu != MENU_PAGER || option(OPTSTATUSONTOP)); tmp = tmp->next ) {
-+ if ( tmp == CurBuffy )
-+ SETCOLOR(MT_COLOR_INDICATOR);
-+ else if ( tmp->msg_unread > 0 )
-+ SETCOLOR(MT_COLOR_NEW);
-+ else if ( tmp->msg_flagged > 0 )
-+ SETCOLOR(MT_COLOR_FLAGGED);
-+ else
-+ SETCOLOR(MT_COLOR_NORMAL);
-+
-+ move( lines, 0 );
-+ if ( Context && !strcmp( tmp->path, Context->path ) ) {
-+ tmp->msg_unread = Context->unread;
-+ tmp->msgcount = Context->msgcount;
-+ tmp->msg_flagged = Context->flagged;
-+ }
-+ // check whether Maildir is a prefix of the current folder's path
-+ short maildir_is_prefix = 0;
-+ if ( (strlen(tmp->path) > strlen(Maildir)) &&
-+ (strncmp(Maildir, tmp->path, strlen(Maildir)) == 0) )
-+ maildir_is_prefix = 1;
-+ // calculate depth of current folder and generate its display name with indented spaces
-+ int sidebar_folder_depth = 0;
-+ char *sidebar_folder_name;
-+ sidebar_folder_name = basename(tmp->path);
-+ if ( maildir_is_prefix ) {
-+ char *tmp_folder_name;
-+ int i;
-+ tmp_folder_name = tmp->path + strlen(Maildir);
-+ for (i = 0; i < strlen(tmp->path) - strlen(Maildir); i++) {
-+ if (tmp_folder_name[i] == '/') sidebar_folder_depth++;
-+ }
-+ if (sidebar_folder_depth > 0) {
-+ sidebar_folder_name = malloc(strlen(basename(tmp->path)) + sidebar_folder_depth + 1);
-+ for (i=0; i < sidebar_folder_depth; i++)
-+ sidebar_folder_name[i]=' ';
-+ sidebar_folder_name[i]=0;
-+ strncat(sidebar_folder_name, basename(tmp->path), strlen(basename(tmp->path)) + sidebar_folder_depth);
-+ }
-+ }
-+ printw( "%.*s", SidebarWidth - delim_len + 1,
-+ make_sidebar_entry(sidebar_folder_name, tmp->msgcount,
-+ tmp->msg_unread, tmp->msg_flagged));
-+ if (sidebar_folder_depth > 0)
-+ free(sidebar_folder_name);
-+ lines++;
-+ }
-+ SETCOLOR(MT_COLOR_NORMAL);
-+ for ( ; lines < LINES-1 - (menu != MENU_PAGER || option(OPTSTATUSONTOP)); lines++ ) {
-+ int i = 0;
-+ move( lines, 0 );
-+ for ( ; i < SidebarWidth - delim_len; i++ )
-+ addch(' ');
-+ }
-+ return 0;
-+}
-+
-+
-+void set_buffystats(CONTEXT* Context)
-+{
-+ BUFFY *tmp = Incoming;
-+ while(tmp) {
-+ if(Context && !strcmp(tmp->path, Context->path)) {
-+ tmp->msg_unread = Context->unread;
-+ tmp->msgcount = Context->msgcount;
-+ break;
-+ }
-+ tmp = tmp->next;
-+ }
-+}
-+
-+void scroll_sidebar(int op, int menu)
-+{
-+ if(!SidebarWidth) return;
-+ if(!CurBuffy) return;
-+
-+ switch (op) {
-+ case OP_SIDEBAR_NEXT:
-+ if ( CurBuffy->next == NULL ) return;
-+ CurBuffy = CurBuffy->next;
-+ break;
-+ case OP_SIDEBAR_PREV:
-+ if ( CurBuffy->prev == NULL ) return;
-+ CurBuffy = CurBuffy->prev;
-+ break;
-+ case OP_SIDEBAR_SCROLL_UP:
-+ CurBuffy = TopBuffy;
-+ if ( CurBuffy != Incoming ) {
-+ calc_boundaries(menu);
-+ CurBuffy = CurBuffy->prev;
-+ }
-+ break;
-+ case OP_SIDEBAR_SCROLL_DOWN:
-+ CurBuffy = BottomBuffy;
-+ if ( CurBuffy->next ) {
-+ calc_boundaries(menu);
-+ CurBuffy = CurBuffy->next;
-+ }
-+ break;
-+ default:
-+ return;
-+ }
-+ calc_boundaries(menu);
-+ draw_sidebar(menu);
-+}
-+
---- /dev/null
-+++ b/sidebar.h
-@@ -0,0 +1,36 @@
-+/*
-+ * Copyright (C) ????-2004 Justin Hibbits <jrh29@po.cwru.edu>
-+ * Copyright (C) 2004 Thomer M. Gil <mutt@thomer.com>
-+ *
-+ * 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., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
-+ */
-+
-+#ifndef SIDEBAR_H
-+#define SIDEBAR_H
-+
-+struct MBOX_LIST {
-+ char *path;
-+ int msgcount;
-+ int new;
-+} MBLIST;
-+
-+/* parameter is whether or not to go to the status line */
-+/* used for omitting the last | that covers up the status bar in the index */
-+int draw_sidebar(int);
-+void scroll_sidebar(int, int);
-+void set_curbuffy(char*);
-+void set_buffystats(CONTEXT*);
-+
-+#endif /* SIDEBAR_H */
---- a/doc/Muttrc
-+++ b/doc/Muttrc
-@@ -2090,6 +2090,26 @@ attachments -I message/external-body
- # function.
- #
- #
-+# set sidebar_visible=no
-+#
-+# Name: sidebar_visible
-+# Type: boolean
-+# Default: no
-+#
-+#
-+# This specifies whether or not to show sidebar (left-side list of folders).
-+#
-+#
-+# set sidebar_width=0
-+#
-+# Name: sidebar_width
-+# Type: number
-+# Default: 0
-+#
-+#
-+# The width of the sidebar.
-+#
-+#
- # set crypt_autosign=no
- #
- # Name: crypt_autosign
---- a/imap/imap.c
-+++ b/imap/imap.c
-@@ -1484,7 +1484,7 @@ int imap_buffy_check (int force)
-
- imap_munge_mbox_name (munged, sizeof (munged), name);
- snprintf (command, sizeof (command),
-- "STATUS %s (UIDNEXT UIDVALIDITY UNSEEN RECENT)", munged);
-+ "STATUS %s (UIDNEXT UIDVALIDITY UNSEEN RECENT MESSAGES)", munged);
-
- if (imap_cmd_queue (idata, command) < 0)
- {
---- a/imap/command.c
-+++ b/imap/command.c
-@@ -911,6 +911,13 @@ static void cmd_parse_status (IMAP_DATA*
- opened */
- status->uidnext = oldun;
-
-+ /* Added to make the sidebar show the correct numbers */
-+ if (status->messages)
-+ {
-+ inc->msgcount = status->messages;
-+ inc->msg_unread = status->unseen;
-+ }
-+
- FREE (&value);
- return;
- }
---- a/PATCHES
-+++ b/PATCHES
-@@ -0,0 +1 @@
-+patch-1.5.18.sidebar.20080611.txt
+++ /dev/null
-# vim:ft=diff:
-[continued from sidebar-compat-revert]
-
-After having applied the sidebar patch, we now re-apply the relevant part of
-the maildir-mtime patch. The hunk is considerably shorter as we are always
-counting messages; the if..break part has been dropped.
---- a/buffy.c
-+++ b/buffy.c
-@@ -409,6 +409,11 @@ int mutt_buffy_check (int force)
- tmp->has_new = tmp->new = 1;
- tmp->msgcount++;
- tmp->msg_unread++;
-+ snprintf (path, sizeof (path), "%s/new/%s", tmp->path, de->d_name);
-+ if (!stat (path, &smd) && smd.st_mtime > tmp->mtime)
-+ {
-+ tmp->mtime = smd.st_mtime;
-+ }
- }
- }
- if(tmp->msg_unread)
---- a/buffy.h
-+++ b/buffy.h
-@@ -26,6 +26,7 @@ typedef struct buffy_t
- long size;
- struct buffy_t *next;
- struct buffy_t *prev;
-+ time_t mtime; /* for maildirs...time of newest entry */
- short new; /* mailbox has new mail */
- short has_new; /* set it new if new and not read */
- int msgcount; /* total number of messages */
+++ /dev/null
-# vim:ft=diff:
-The sidebar and maildir-mtime patches touch the same part of buffy.c and
-generate a non-trivial conflict. This patch reverts the affected hunk from the
-maildir-mtime patch so we can cleanly apply the sidebar patch from the patch
-upstream site. While we are at it, we also revert the trivial buffy.h change.
-
-Previously, the mutt maintainer would manually re-resolve the conflict for each
-new sidebar patch version which turned out to be too error-prone.
-(cf. #484537, #484538)
-
-[see sidebar-compat-apply for part 2]
---- a/buffy.c
-+++ b/buffy.c
-@@ -383,20 +383,10 @@ int mutt_buffy_check (int force)
- if (*de->d_name != '.' &&
- (!(p = strstr (de->d_name, ":2,")) || !strchr (p + 3, 'T')))
- {
-- if (!tmp->new)
-- {
-- /* one new and undeleted message is enough */
-- BuffyCount++;
-- tmp->new = 1;
--
-- if (! option (OPTMAILDIRMTIME)) /* prevent stat calls */
-- break;
-- }
-- snprintf (path, sizeof (path), "%s/new/%s", tmp->path, de->d_name);
-- if (!stat (path, &smd) && smd.st_mtime > tmp->mtime)
-- {
-- tmp->mtime = smd.st_mtime;
-- }
-+ /* one new and undeleted message is enough */
-+ BuffyCount++;
-+ tmp->new = 1;
-+ break;
- }
- }
- closedir (dirp);
---- a/buffy.h
-+++ b/buffy.h
-@@ -25,7 +25,6 @@ typedef struct buffy_t
- char *path;
- long size;
- struct buffy_t *next;
-- time_t mtime; /* for maildirs...time of newest entry */
- short new; /* mailbox has new mail */
- short notified; /* user has been notified */
- short magic; /* mailbox type */
+++ /dev/null
---- /dev/null
-+++ b/.mutt.org
-@@ -0,0 +1 @@
-+# dummy patch to serve as marker separating patches for mutt-patched
+++ /dev/null
-# vim:ft=diff:
-This is the chdir patch by Christoph Berg <cb@df7cb.de>.
-
-* Homepage: http://www.df7cb.de/projects/mutt/chdir/
-
-== END PATCH
-Index: mutt/init.c
-===================================================================
---- mutt.orig/init.c 2006-12-12 14:15:03.000000000 +0100
-+++ mutt/init.c 2007-02-15 20:46:18.950836872 +0100
-@@ -2214,6 +2214,35 @@ static int parse_source (BUFFER *tmp, BU
- return (source_rc (path, err));
- }
-
-+static int parse_cd (BUFFER *tmp, BUFFER *s, unsigned long data, BUFFER *err)
-+{
-+ char path[_POSIX_PATH_MAX];
-+
-+ if (mutt_extract_token (tmp, s, 0) != 0)
-+ {
-+ snprintf (err->data, err->dsize, _("cd: error at %s"), s->dptr);
-+ return (-1);
-+ }
-+ if (MoreArgs (s))
-+ {
-+ strfcpy (err->data, _("cd: too many arguments"), err->dsize);
-+ return (-1);
-+ }
-+ strfcpy (path, tmp->data, sizeof (path));
-+ mutt_expand_path (path, sizeof (path));
-+ if (!*path) {
-+ char *home = getenv("HOME");
-+ if (home)
-+ strfcpy (path, home, sizeof (path));
-+ }
-+ if (chdir(path) != 0) {
-+ snprintf (err->data, err->dsize, _("cd: %s"), strerror(errno));
-+ return (-1);
-+ }
-+ return (0);
-+}
-+
-+
- /* line command to execute
-
- token scratch buffer to be used by parser. caller should free
-Index: mutt/init.h
-===================================================================
---- mutt.orig/init.h 2006-12-12 14:15:03.000000000 +0100
-+++ mutt/init.h 2007-02-15 20:46:18.951836720 +0100
-@@ -3020,6 +3020,7 @@ static int parse_unalias (BUFFER *, BUFF
- static int parse_ignore (BUFFER *, BUFFER *, unsigned long, BUFFER *);
- static int parse_unignore (BUFFER *, BUFFER *, unsigned long, BUFFER *);
- static int parse_source (BUFFER *, BUFFER *, unsigned long, BUFFER *);
-+static int parse_cd (BUFFER *, BUFFER *, unsigned long, BUFFER *);
- static int parse_set (BUFFER *, BUFFER *, unsigned long, BUFFER *);
- static int parse_my_hdr (BUFFER *, BUFFER *, unsigned long, BUFFER *);
- static int parse_unmy_hdr (BUFFER *, BUFFER *, unsigned long, BUFFER *);
-@@ -3056,6 +3057,7 @@ struct command_t Commands[] = {
- { "auto_view", parse_list, UL &AutoViewList },
- { "alternative_order", parse_list, UL &AlternativeOrderList},
- { "bind", mutt_parse_bind, 0 },
-+ { "cd", parse_cd, 0 },
- { "charset-hook", mutt_parse_hook, M_CHARSETHOOK },
- #ifdef HAVE_COLOR
- { "color", mutt_parse_color, 0 },
-Index: mutt/doc/manual.xml.head
-===================================================================
---- mutt.orig/doc/manual.xml.head 2007-02-15 20:51:41.226843472 +0100
-+++ mutt/doc/manual.xml.head 2007-02-15 20:51:45.303223768 +0100
-@@ -1701,6 +1701,25 @@ sequence.
-
- </sect1>
-
-+<sect1 id="cd">
-+<title>Changing the current working directory</title>
-+
-+<para>
-+<literallayout>
-+Usage: <literal>cd</literal> <emphasis>directory</emphasis>
-+</literallayout>
-+</para>
-+
-+<para>
-+The <literal>cd</literal> command changes Mutt's current working directory.
-+This affects commands and functions like <literal>source</literal>,
-+<literal>change-folder</literal>, and <literal>save-entry</literal> that use
-+relative paths. Using <literal>cd</literal> without directory changes to your
-+home directory.
-+</para>
-+
-+</sect1>
-+
- <sect1 id="charset-hook">
- <title>Defining aliases for character sets </title>
-
---- a/PATCHES
-+++ b/PATCHES
-@@ -0,0 +1 @@
-+patch-1.5.13.cb.chdir.1
+++ /dev/null
-# vim:ft=diff:
-This is the indexcolor patch by Christian Aichinger <Greek0@gmx.net>.
-
-This patch enables different colorings for different parts of the index
-display. For example you can choose one color for the subject, another one for
-the author, and a third one for the flags.
-
-* Patch last synced with upstream:
- - Date: 2007-02-15
- - File: http://greek0.net/mutt.html
- http://greek0.net/patches/mutt-1.5.12-indexcolor-3+cb.diff
-
-* Changes made:
- - Repatch for 1.5.13.
- - Remove trailing whitespace.
-
-== END PATCH
-Index: mutt/color.c
-===================================================================
---- mutt.orig/color.c 2007-02-15 21:26:09.140472816 +0100
-+++ mutt/color.c 2007-02-15 21:26:47.860586464 +0100
-@@ -35,6 +35,8 @@ int ColorDefs[MT_COLOR_MAX];
- COLOR_LINE *ColorHdrList = NULL;
- COLOR_LINE *ColorBodyList = NULL;
- COLOR_LINE *ColorIndexList = NULL;
-+COLOR_LINE *ColorIndexSubjectList = NULL;
-+COLOR_LINE *ColorIndexAuthorList = NULL;
-
- /* local to this file */
- static int ColorQuoteSize;
-@@ -93,6 +95,14 @@ static struct mapping_t Fields[] =
- { "bold", MT_COLOR_BOLD },
- { "underline", MT_COLOR_UNDERLINE },
- { "index", MT_COLOR_INDEX },
-+ { "index_subject", MT_COLOR_INDEX_SUBJECT },
-+ { "index_author", MT_COLOR_INDEX_AUTHOR },
-+ { "index_collapsed", MT_COLOR_INDEX_COLLAPSED },
-+ { "index_date", MT_COLOR_INDEX_DATE },
-+ { "index_flags", MT_COLOR_INDEX_FLAGS },
-+ { "index_label", MT_COLOR_INDEX_LABEL },
-+ { "index_number", MT_COLOR_INDEX_NUMBER },
-+ { "index_size", MT_COLOR_INDEX_SIZE },
- { NULL, 0 }
- };
-
-@@ -364,12 +374,55 @@ int mutt_parse_unmono (BUFFER *buf, BUFF
- return _mutt_parse_uncolor(buf, s, data, err, 0);
- }
-
-+static void
-+mutt_do_uncolor (BUFFER *buf, BUFFER *s, COLOR_LINE **ColorList,
-+ int *do_cache, int parse_uncolor)
-+{
-+ COLOR_LINE *tmp, *last = NULL;
-+
-+ do
-+ {
-+ mutt_extract_token (buf, s, 0);
-+ if (!mutt_strcmp ("*", buf->data))
-+ {
-+ for (tmp = *ColorList; tmp; )
-+ {
-+ if (!*do_cache)
-+ *do_cache = 1;
-+ last = tmp;
-+ tmp = tmp->next;
-+ mutt_free_color_line(&last, parse_uncolor);
-+ }
-+ *ColorList = NULL;
-+ }
-+ else
-+ {
-+ for (last = NULL, tmp = *ColorList; tmp; last = tmp, tmp = tmp->next)
-+ {
-+ if (!mutt_strcmp (buf->data, tmp->pattern))
-+ {
-+ if (!*do_cache)
-+ *do_cache = 1;
-+ dprint(1,(debugfile,"Freeing pattern \"%s\" from ColorList\n",
-+ tmp->pattern));
-+ if (last)
-+ last->next = tmp->next;
-+ else
-+ *ColorList = tmp->next;
-+ mutt_free_color_line(&tmp, parse_uncolor);
-+ break;
-+ }
-+ }
-+ }
-+ }
-+ while (MoreArgs (s));
-+}
-+
- static int
- _mutt_parse_uncolor (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err,
- short parse_uncolor)
- {
- int object = 0, do_cache = 0;
-- COLOR_LINE *tmp, *last = NULL;
-
- mutt_extract_token (buf, s, 0);
-
-@@ -379,6 +432,13 @@ _mutt_parse_uncolor (BUFFER *buf, BUFFER
- return (-1);
- }
-
-+ if (object > MT_COLOR_INDEX_AUTHOR) /* uncolor index column */
-+ {
-+ ColorDefs[object] = 0;
-+ set_option (OPTFORCEREDRAWINDEX);
-+ return (0);
-+ }
-+
- if (mutt_strncmp (buf->data, "index", 5) != 0)
- {
- snprintf (err->data, err->dsize,
-@@ -416,44 +476,12 @@ _mutt_parse_uncolor (BUFFER *buf, BUFFER
- return 0;
- }
-
--
-- do
-- {
-- mutt_extract_token (buf, s, 0);
-- if (!mutt_strcmp ("*", buf->data))
-- {
-- for (tmp = ColorIndexList; tmp; )
-- {
-- if (!do_cache)
-- do_cache = 1;
-- last = tmp;
-- tmp = tmp->next;
-- mutt_free_color_line(&last, parse_uncolor);
-- }
-- ColorIndexList = NULL;
-- }
-- else
-- {
-- for (last = NULL, tmp = ColorIndexList; tmp; last = tmp, tmp = tmp->next)
-- {
-- if (!mutt_strcmp (buf->data, tmp->pattern))
-- {
-- if (!do_cache)
-- do_cache = 1;
-- dprint(1,(debugfile,"Freeing pattern \"%s\" from ColorIndexList\n",
-- tmp->pattern));
-- if (last)
-- last->next = tmp->next;
-- else
-- ColorIndexList = tmp->next;
-- mutt_free_color_line(&tmp, parse_uncolor);
-- break;
-- }
-- }
-- }
-- }
-- while (MoreArgs (s));
--
-+ if (object == MT_COLOR_INDEX)
-+ mutt_do_uncolor(buf, s, &ColorIndexList, &do_cache, parse_uncolor);
-+ if (object == MT_COLOR_INDEX_SUBJECT)
-+ mutt_do_uncolor(buf, s, &ColorIndexSubjectList, &do_cache, parse_uncolor);
-+ if (object == MT_COLOR_INDEX_AUTHOR)
-+ mutt_do_uncolor(buf, s, &ColorIndexAuthorList, &do_cache, parse_uncolor);
-
- if (do_cache && !option (OPTNOCURSES))
- {
-@@ -693,7 +721,7 @@ _mutt_parse_color (BUFFER *buf, BUFFER *
-
- /* extract a regular expression if needed */
-
-- if (object == MT_COLOR_HEADER || object == MT_COLOR_BODY || object == MT_COLOR_INDEX)
-+ if (object == MT_COLOR_HEADER || object == MT_COLOR_BODY || object == MT_COLOR_INDEX || object == MT_COLOR_INDEX_SUBJECT || object == MT_COLOR_INDEX_AUTHOR)
- {
- if (!MoreArgs (s))
- {
-@@ -737,6 +765,18 @@ _mutt_parse_color (BUFFER *buf, BUFFER *
- r = add_pattern (&ColorIndexList, buf->data, 1, fg, bg, attr, err, 1);
- set_option (OPTFORCEREDRAWINDEX);
- }
-+ else if (object == MT_COLOR_INDEX_SUBJECT)
-+ {
-+ r = add_pattern (&ColorIndexSubjectList, buf->data,
-+ 1, fg, bg, attr, err, 1);
-+ set_option (OPTFORCEREDRAWINDEX);
-+ }
-+ else if (object == MT_COLOR_INDEX_AUTHOR)
-+ {
-+ r = add_pattern (&ColorIndexAuthorList, buf->data,
-+ 1, fg, bg, attr, err, 1);
-+ set_option (OPTFORCEREDRAWINDEX);
-+ }
- else if (object == MT_COLOR_QUOTED)
- {
- if (q_level >= ColorQuoteSize)
-@@ -762,7 +802,11 @@ _mutt_parse_color (BUFFER *buf, BUFFER *
- ColorQuote[q_level] = fgbgattr_to_color(fg, bg, attr);
- }
- else
-+ {
- ColorDefs[object] = fgbgattr_to_color(fg, bg, attr);
-+ if (object > MT_COLOR_INDEX_AUTHOR)
-+ set_option (OPTFORCEREDRAWINDEX);
-+ }
-
- #ifdef HAVE_COLOR
- # ifdef HAVE_BKGDSET
-Index: mutt/curs_lib.c
-===================================================================
---- mutt.orig/curs_lib.c 2007-02-15 21:26:09.183466280 +0100
-+++ mutt/curs_lib.c 2007-02-15 21:26:15.898445448 +0100
-@@ -648,6 +648,7 @@ void mutt_format_string (char *dest, siz
- size_t k, k2;
- char scratch[MB_LEN_MAX];
- mbstate_t mbstate1, mbstate2;
-+ int escaped = 0;
-
- memset(&mbstate1, 0, sizeof (mbstate1));
- memset(&mbstate2, 0, sizeof (mbstate2));
-@@ -663,7 +664,15 @@ void mutt_format_string (char *dest, siz
- k = (k == (size_t)(-1)) ? 1 : n;
- wc = replacement_char ();
- }
-- if (arboreal && wc < M_TREE_MAX)
-+ if (escaped) {
-+ escaped = 0;
-+ w = 0;
-+ }
-+ else if (arboreal && wc == M_SPECIAL_INDEX) {
-+ escaped = 1;
-+ w = 0;
-+ }
-+ else if (arboreal && wc < M_TREE_MAX)
- w = 1; /* hack */
- else
- {
-Index: mutt/hdrline.c
-===================================================================
---- mutt.orig/hdrline.c 2007-02-15 21:26:09.226459744 +0100
-+++ mutt/hdrline.c 2007-02-15 21:26:15.899445296 +0100
-@@ -99,6 +99,34 @@ static int first_mailing_list (char *buf
- return 0;
- }
-
-+/* Takes the color to embed, the buffer to manipulate and the buffer length as
-+ * arguments.
-+ * Returns the number of chars written. */
-+static size_t add_index_color(char *buf, size_t buflen,
-+ format_flag flags, char color)
-+{
-+ int len;
-+
-+ /* only add color markers if we are operating on main index entries. */
-+ if (!(flags & M_FORMAT_INDEX))
-+ return 0;
-+
-+ if (color == MT_COLOR_INDEX) { /* buf might be uninitialized other cases */
-+ len = mutt_strlen(buf);
-+ buf += len;
-+ buflen -= len;
-+ }
-+
-+ if (buflen < 2)
-+ return 0;
-+
-+ buf[0] = M_SPECIAL_INDEX;
-+ buf[1] = color;
-+ buf[2] = '\0';
-+
-+ return 2;
-+}
-+
- static void make_from (ENVELOPE *hdr, char *buf, size_t len, int do_lists)
- {
- int me;
-@@ -251,6 +279,7 @@ hdr_format_str (char *dest,
- #define THREAD_NEW (threads && hdr->collapsed && hdr->num_hidden > 1 && mutt_thread_contains_unread (ctx, hdr) == 1)
- #define THREAD_OLD (threads && hdr->collapsed && hdr->num_hidden > 1 && mutt_thread_contains_unread (ctx, hdr) == 2)
- size_t len;
-+ size_t colorlen;
-
- hdr = hfi->hdr;
- ctx = hfi->ctx;
-@@ -302,12 +331,17 @@ hdr_format_str (char *dest,
- break;
-
- case 'c':
-+ colorlen = add_index_color(dest, destlen, flags, MT_COLOR_INDEX_SIZE);
- mutt_pretty_size (buf2, sizeof (buf2), (long) hdr->content->length);
-- mutt_format_s (dest, destlen, prefix, buf2);
-+ mutt_format_s (dest+colorlen, destlen-colorlen, prefix, buf2);
-+ add_index_color(dest+colorlen, destlen-colorlen, flags, MT_COLOR_INDEX);
- break;
-
- case 'C':
-- snprintf (fmt, sizeof (fmt), "%%%sd", prefix);
-+ colorlen = add_index_color(fmt, sizeof(fmt), flags, MT_COLOR_INDEX_NUMBER);
-+ snprintf (fmt+colorlen, sizeof(fmt)-colorlen, "%%%sd", prefix);
-+ add_index_color(fmt+colorlen, sizeof(fmt)-colorlen, flags, MT_COLOR_INDEX);
-+
- snprintf (dest, destlen, fmt, hdr->msgno + 1);
- break;
-
-@@ -406,7 +440,10 @@ hdr_format_str (char *dest,
- if (do_locales)
- setlocale (LC_TIME, "C");
-
-- mutt_format_s (dest, destlen, prefix, buf2);
-+ colorlen = add_index_color(dest, destlen, flags, MT_COLOR_INDEX_DATE);
-+ mutt_format_s (dest+colorlen, destlen-colorlen, prefix, buf2);
-+ add_index_color(dest+colorlen, destlen-colorlen, flags, MT_COLOR_INDEX);
-+
- if (len > 0 && op != 'd' && op != 'D') /* Skip ending op */
- src = cp + 1;
- }
-@@ -436,8 +473,10 @@ hdr_format_str (char *dest,
- case 'F':
- if (!optional)
- {
-+ colorlen = add_index_color(dest, destlen, flags, MT_COLOR_INDEX_AUTHOR);
- make_from (hdr->env, buf2, sizeof (buf2), 0);
-- mutt_format_s (dest, destlen, prefix, buf2);
-+ mutt_format_s (dest+colorlen, destlen-colorlen, prefix, buf2);
-+ add_index_color(dest+colorlen, destlen-colorlen, flags, MT_COLOR_INDEX);
- }
- else if (mutt_addr_is_user (hdr->env->from))
- optional = 0;
-@@ -463,7 +502,9 @@ hdr_format_str (char *dest,
- if (!optional)
- {
- snprintf (fmt, sizeof (fmt), "%%%sd", prefix);
-- snprintf (dest, destlen, fmt, (int) hdr->lines);
-+ colorlen = add_index_color(dest, destlen, flags, MT_COLOR_INDEX_SIZE);
-+ snprintf (dest+colorlen, destlen-colorlen, fmt, (int) hdr->lines);
-+ add_index_color(dest+colorlen, destlen-colorlen, flags, MT_COLOR_INDEX);
- }
- else if (hdr->lines <= 0)
- optional = 0;
-@@ -472,8 +513,10 @@ hdr_format_str (char *dest,
- case 'L':
- if (!optional)
- {
-+ colorlen = add_index_color(dest, destlen, flags, MT_COLOR_INDEX_AUTHOR);
- make_from (hdr->env, buf2, sizeof (buf2), 1);
-- mutt_format_s (dest, destlen, prefix, buf2);
-+ mutt_format_s (dest+colorlen, destlen-colorlen, prefix, buf2);
-+ add_index_color(dest+colorlen, destlen-colorlen, flags, MT_COLOR_INDEX);
- }
- else if (!check_for_mailing_list (hdr->env->to, NULL, NULL, 0) &&
- !check_for_mailing_list (hdr->env->cc, NULL, NULL, 0))
-@@ -528,10 +571,16 @@ hdr_format_str (char *dest,
- snprintf (fmt, sizeof (fmt), "%%%sd", prefix);
- if (!optional)
- {
-- if (threads && is_index && hdr->collapsed && hdr->num_hidden > 1)
-- snprintf (dest, destlen, fmt, hdr->num_hidden);
-- else if (is_index && threads)
-- mutt_format_s (dest, destlen, prefix, " ");
-+ colorlen = add_index_color(dest, destlen, flags,
-+ MT_COLOR_INDEX_COLLAPSED);
-+ if (threads && is_index && hdr->collapsed && hdr->num_hidden > 1) {
-+ snprintf (dest+colorlen, destlen-colorlen, fmt, hdr->num_hidden);
-+ add_index_color(dest, destlen-colorlen, flags, MT_COLOR_INDEX);
-+ }
-+ else if (is_index && threads) {
-+ mutt_format_s (dest+colorlen, destlen-colorlen, prefix, " ");
-+ add_index_color(dest, destlen-colorlen, flags, MT_COLOR_INDEX);
-+ }
- else
- *dest = '\0';
- }
-@@ -548,15 +597,23 @@ hdr_format_str (char *dest,
- {
- if (flags & M_FORMAT_FORCESUBJ)
- {
-- mutt_format_s (dest, destlen, "", NONULL (hdr->env->subject));
-+ colorlen = add_index_color(dest, destlen, flags, MT_COLOR_INDEX_SUBJECT);
-+ mutt_format_s (dest+colorlen, destlen-colorlen, "",
-+ NONULL (hdr->env->subject));
-+ add_index_color(dest+colorlen, destlen-colorlen, flags, MT_COLOR_INDEX);
-+
- snprintf (buf2, sizeof (buf2), "%s%s", hdr->tree, dest);
- mutt_format_s_tree (dest, destlen, prefix, buf2);
- }
- else
- mutt_format_s_tree (dest, destlen, prefix, hdr->tree);
- }
-- else
-- mutt_format_s (dest, destlen, prefix, NONULL (hdr->env->subject));
-+ else {
-+ colorlen = add_index_color(dest, destlen, flags, MT_COLOR_INDEX_SUBJECT);
-+ mutt_format_s (dest+colorlen, destlen-colorlen, prefix,
-+ NONULL (hdr->env->subject));
-+ add_index_color(dest+colorlen, destlen-colorlen, flags, MT_COLOR_INDEX);
-+ }
- break;
-
- case 'S':
-@@ -652,7 +709,9 @@ hdr_format_str (char *dest,
- hdr->tagged ? '*' :
- (hdr->flagged ? '!' :
- (Tochars && ((i = mutt_user_is_recipient (hdr)) < mutt_strlen (Tochars)) ? Tochars[i] : ' ')));
-- mutt_format_s (dest, destlen, prefix, buf2);
-+ colorlen = add_index_color(dest, destlen, flags, MT_COLOR_INDEX_FLAGS);
-+ mutt_format_s (dest+colorlen, destlen-colorlen, prefix, buf2);
-+ add_index_color(dest+colorlen, destlen-colorlen, flags, MT_COLOR_INDEX);
- break;
-
- case 'X':
-@@ -672,7 +731,9 @@ hdr_format_str (char *dest,
- if (optional)
- optional = hdr->env->x_label ? 1 : 0;
-
-- mutt_format_s (dest, destlen, prefix, NONULL (hdr->env->x_label));
-+ colorlen = add_index_color(dest, destlen, flags, MT_COLOR_INDEX_LABEL);
-+ mutt_format_s (dest+colorlen, destlen-colorlen, prefix, NONULL (hdr->env->x_label));
-+ add_index_color(dest+colorlen, destlen-colorlen, flags, MT_COLOR_INDEX);
- break;
-
- case 'Y':
-@@ -698,10 +759,12 @@ hdr_format_str (char *dest,
- if (optional)
- optional = i;
-
-+ colorlen = add_index_color(dest, destlen, flags, MT_COLOR_INDEX_LABEL);
- if (i)
-- mutt_format_s (dest, destlen, prefix, NONULL (hdr->env->x_label));
-+ mutt_format_s (dest+colorlen, destlen-colorlen, prefix, NONULL (hdr->env->x_label));
- else
-- mutt_format_s (dest, destlen, prefix, "");
-+ mutt_format_s (dest+colorlen, destlen-colorlen, prefix, "");
-+ add_index_color(dest+colorlen, destlen-colorlen, flags, MT_COLOR_INDEX);
-
- break;
-
-Index: mutt/menu.c
-===================================================================
---- mutt.orig/menu.c 2007-02-15 21:26:09.270453056 +0100
-+++ mutt/menu.c 2007-02-15 21:26:15.900445144 +0100
-@@ -36,7 +36,30 @@ extern int Charset_is_utf8; /* FIXME: ba
-
- extern size_t UngetCount;
-
--static void print_enriched_string (int attr, unsigned char *s, int do_color)
-+static int get_color(int index, int type) {
-+ COLOR_LINE *color;
-+ HEADER *hdr = Context->hdrs[index];
-+
-+ switch (type) {
-+ case MT_COLOR_INDEX_SUBJECT:
-+ color = ColorIndexSubjectList;
-+ break;
-+ case MT_COLOR_INDEX_AUTHOR:
-+ color = ColorIndexAuthorList;
-+ break;
-+ default:
-+ return ColorDefs[type];
-+ }
-+
-+ for (; color; color = color->next)
-+ if (mutt_pattern_exec (color->color_pattern, M_MATCH_FULL_ADDRESS,
-+ Context, hdr))
-+ return color->pair;
-+
-+ return 0;
-+}
-+
-+static void print_enriched_string (int index, int attr, unsigned char *s, int do_color)
- {
- wchar_t wc;
- size_t k;
-@@ -133,6 +156,18 @@ static void print_enriched_string (int a
- }
- if (do_color) attrset(attr);
- }
-+ else if(*s == M_SPECIAL_INDEX)
-+ {
-+ s++;
-+ if (do_color) {
-+ if (*s == MT_COLOR_INDEX)
-+ attrset(attr);
-+ else
-+ attron(get_color(index, *s));
-+ }
-+ s++;
-+ n -= 2;
-+ }
- else if ((k = mbrtowc (&wc, (char *)s, n, &mbstate)) > 0)
- {
- addnstr ((char *)s, k);
-@@ -235,7 +270,7 @@ void menu_redraw_index (MUTTMENU *menu)
- addstr (" ");
- }
-
-- print_enriched_string (menu->color(i), (unsigned char *) buf, 1);
-+ print_enriched_string (i, menu->color(i), (unsigned char *) buf, 1);
- SETCOLOR (MT_COLOR_NORMAL);
- }
- else
-@@ -249,7 +284,7 @@ void menu_redraw_index (MUTTMENU *menu)
- }
-
- CLEARLINE (i - menu->top + menu->offset);
-- print_enriched_string (menu->color(i), (unsigned char *) buf, i != menu->current);
-+ print_enriched_string (i, menu->color(i), (unsigned char *) buf, i != menu->current);
- SETCOLOR (MT_COLOR_NORMAL);
- BKGDSET (MT_COLOR_NORMAL);
- }
-@@ -286,7 +321,7 @@ void menu_redraw_motion (MUTTMENU *menu)
- menu_make_entry (buf, sizeof (buf), menu, menu->oldcurrent);
- menu_pad_string (buf, sizeof (buf));
- move (menu->oldcurrent + menu->offset - menu->top, 3);
-- print_enriched_string (menu->color(menu->oldcurrent), (unsigned char *) buf, 1);
-+ print_enriched_string (menu->oldcurrent, menu->color(menu->oldcurrent), (unsigned char *) buf, 1);
- SETCOLOR (MT_COLOR_NORMAL);
- }
-
-@@ -304,7 +339,7 @@ void menu_redraw_motion (MUTTMENU *menu)
- clrtoeol ();
- menu_make_entry (buf, sizeof (buf), menu, menu->oldcurrent);
- menu_pad_string (buf, sizeof (buf));
-- print_enriched_string (menu->color(menu->oldcurrent), (unsigned char *) buf, 1);
-+ print_enriched_string (menu->oldcurrent, menu->color(menu->oldcurrent), (unsigned char *) buf, 1);
-
- /* now draw the new one to reflect the change */
- menu_make_entry (buf, sizeof (buf), menu, menu->current);
-@@ -313,7 +348,7 @@ void menu_redraw_motion (MUTTMENU *menu)
- ADDCOLOR (MT_COLOR_INDICATOR);
- BKGDSET (MT_COLOR_INDICATOR);
- CLEARLINE (menu->current - menu->top + menu->offset);
-- print_enriched_string (menu->color(menu->current), (unsigned char *) buf, 0);
-+ print_enriched_string (menu->current, menu->color(menu->current), (unsigned char *) buf, 0);
- SETCOLOR (MT_COLOR_NORMAL);
- BKGDSET (MT_COLOR_NORMAL);
- }
-@@ -339,7 +374,7 @@ void menu_redraw_current (MUTTMENU *menu
- attrset (attr);
- addch (' ');
- menu_pad_string (buf, sizeof (buf));
-- print_enriched_string (menu->color(menu->current), (unsigned char *) buf, 1);
-+ print_enriched_string (menu->current, menu->color(menu->current), (unsigned char *) buf, 1);
- SETCOLOR (MT_COLOR_NORMAL);
- }
- else
-@@ -348,7 +383,7 @@ void menu_redraw_current (MUTTMENU *menu
- ADDCOLOR (MT_COLOR_INDICATOR);
- BKGDSET (MT_COLOR_INDICATOR);
- clrtoeol ();
-- print_enriched_string (menu->color(menu->current), (unsigned char *) buf, 0);
-+ print_enriched_string (menu->current, menu->color(menu->current), (unsigned char *) buf, 0);
- SETCOLOR (MT_COLOR_NORMAL);
- BKGDSET (MT_COLOR_NORMAL);
- }
-Index: mutt/mutt_curses.h
-===================================================================
---- mutt.orig/mutt_curses.h 2007-02-15 21:26:09.314446368 +0100
-+++ mutt/mutt_curses.h 2007-02-15 21:26:15.900445144 +0100
-@@ -126,6 +126,16 @@ enum
- MT_COLOR_BOLD,
- MT_COLOR_UNDERLINE,
- MT_COLOR_INDEX,
-+ /* please no non-MT_COLOR_INDEX objects after this point */
-+ MT_COLOR_INDEX_SUBJECT,
-+ MT_COLOR_INDEX_AUTHOR,
-+ /* below only index coloring stuff that doesn't have a colorline! */
-+ MT_COLOR_INDEX_COLLAPSED,
-+ MT_COLOR_INDEX_DATE,
-+ MT_COLOR_INDEX_FLAGS,
-+ MT_COLOR_INDEX_LABEL,
-+ MT_COLOR_INDEX_NUMBER,
-+ MT_COLOR_INDEX_SIZE,
- MT_COLOR_MAX
- };
-
-@@ -165,6 +175,8 @@ extern int ColorDefs[];
- extern COLOR_LINE *ColorHdrList;
- extern COLOR_LINE *ColorBodyList;
- extern COLOR_LINE *ColorIndexList;
-+extern COLOR_LINE *ColorIndexSubjectList;
-+extern COLOR_LINE *ColorIndexAuthorList;
-
- void ci_init_color (void);
- void ci_start_color (void);
-Index: mutt/mutt.h
-===================================================================
---- mutt.orig/mutt.h 2007-02-15 21:26:09.358439680 +0100
-+++ mutt/mutt.h 2007-02-15 21:26:15.901444992 +0100
-@@ -176,6 +176,8 @@ typedef enum
- #define M_TREE_MISSING 13
- #define M_TREE_MAX 14
-
-+#define M_SPECIAL_INDEX M_TREE_MAX
-+
- #define M_THREAD_COLLAPSE (1<<0)
- #define M_THREAD_UNCOLLAPSE (1<<1)
- #define M_THREAD_GET_HIDDEN (1<<2)
-Index: mutt/doc/manual.xml.head
-===================================================================
---- mutt.orig/doc/manual.xml.head 2007-02-15 21:26:09.446426304 +0100
-+++ mutt/doc/manual.xml.head 2007-02-15 21:26:15.903444688 +0100
-@@ -1837,8 +1837,8 @@ silently truncated at the screen width,
- <para>
- <literallayout>
- Usage: <literal>color</literal> <emphasis>object</emphasis> <emphasis>foreground</emphasis> <emphasis>background</emphasis> [ <emphasis>regexp</emphasis> ]
--Usage: <literal>color</literal> index <emphasis>foreground</emphasis> <emphasis>background</emphasis> <emphasis>pattern</emphasis>
--Usage: <literal>uncolor</literal> index <emphasis>pattern</emphasis> [ <emphasis>pattern</emphasis> ... ]
-+Usage: <literal>color</literal> <emphasis>index-object</emphasis> <emphasis>foreground</emphasis> <emphasis>background</emphasis> <emphasis>pattern</emphasis>
-+ Usage: <literal>uncolor</literal> <emphasis>index-object</emphasis> <emphasis>pattern</emphasis> [ <emphasis>pattern</emphasis> ... ]
- </literallayout>
- </para>
-
-@@ -1901,6 +1901,54 @@ index (match <emphasis>pattern</emphasis
- <listitem>
-
- <para>
-+index_author (color of the author name in the index, uses <emphasis>pattern</emphasis>)
-+</para>
-+</listitem>
-+<listitem>
-+
-+<para>
-+index_collapsed (the number of messages in a collapsed thread in the index)
-+</para>
-+</listitem>
-+<listitem>
-+
-+<para>
-+index_date (color of the date field in the index)
-+</para>
-+</listitem>
-+<listitem>
-+
-+<para>
-+index_flags (color of the message flags in the index)
-+</para>
-+</listitem>
-+<listitem>
-+
-+<para>
-+index_label (color of the message label in the index)
-+</para>
-+</listitem>
-+<listitem>
-+
-+<para>
-+index_number (color of the message number in the index)
-+</para>
-+</listitem>
-+<listitem>
-+
-+<para>
-+index_size (color of the message size and line number in the index)
-+</para>
-+</listitem>
-+<listitem>
-+
-+<para>
-+index_subject (color of the subject in the index, uses <emphasis>pattern</emphasis>)
-+</para>
-+</listitem>
-+<listitem>
-+
-+<para>
- indicator (arrow or bar used to indicate the current item in a menu)
- </para>
- </listitem>
---- a/PATCHES
-+++ b/PATCHES
-@@ -0,0 +1 @@
-+patch-1.5.13.greek0.indexcolor-3+cb
+++ /dev/null
-# vim:ft=diff:
-This is the xface (w3mface) patch by TAKAHASHI Tamotsu
-<ttakah@lapis.plala.or.jp>.
-
-Needs w3m-img, compface, and netpbm installed.
-
-* Homepage: http://www.df7cb.de/projects/mutt/x-face/
-
-* Changes made:
- - Remove LIBEXECDIR definition to avoid needing rerunning automake,
- hardcode /usr/lib/w3m/w3mimgdisplay.
-
-== END PATCH
-Index: xface/globals.h
-===================================================================
---- xface.orig/globals.h 2007-02-15 20:28:46.961763520 +0100
-+++ xface/globals.h 2007-02-15 20:28:56.069378952 +0100
-@@ -146,6 +146,11 @@ WHERE const char *ReleaseDate;
-
- WHERE HASH *Groups;
-
-+WHERE char *UncompFace;
-+WHERE char *IconToPbm;
-+WHERE char *W3mImgDisplay;
-+WHERE char *W3mOpt;
-+
- WHERE LIST *AutoViewList INITVAL(0);
- WHERE LIST *AlternativeOrderList INITVAL(0);
- WHERE LIST *AttachAllow INITVAL(0);
-Index: xface/hcache.c
-===================================================================
---- xface.orig/hcache.c 2007-02-15 20:28:46.968762456 +0100
-+++ xface/hcache.c 2007-02-15 20:28:56.069378952 +0100
-@@ -401,6 +401,7 @@ dump_envelope(ENVELOPE * e, unsigned cha
- d = dump_char(e->message_id, d, off);
- d = dump_char(e->supersedes, d, off);
- d = dump_char(e->date, d, off);
-+ d = dump_char(e->x_face, d, off);
- d = dump_char(e->x_label, d, off);
-
- d = dump_buffer(e->spam, d, off);
-@@ -438,6 +439,7 @@ restore_envelope(ENVELOPE * e, const uns
- restore_char(&e->message_id, d, off);
- restore_char(&e->supersedes, d, off);
- restore_char(&e->date, d, off);
-+ restore_char(&e->x_face, d, off);
- restore_char(&e->x_label, d, off);
-
- restore_buffer(&e->spam, d, off);
-Index: xface/init.h
-===================================================================
---- xface.orig/init.h 2007-02-15 20:28:46.976761240 +0100
-+++ xface/init.h 2007-02-15 20:29:15.382442920 +0100
-@@ -2941,6 +2941,31 @@ struct option_t MuttVars[] = {
- ** Controls whether mutt writes out the Bcc header when preparing
- ** messages to be sent. Exim users may wish to unset this.
- */
-+ { "xface", DT_BOOL, R_NONE, OPTXFACE, 0 },
-+ /*
-+ ** .pp
-+ ** Controls whether mutt displays X-Faces.
-+ */
-+ { "xface_icontopbm", DT_PATH, R_NONE, UL &IconToPbm, UL "icontopbm" },
-+ /*
-+ ** .pp
-+ ** Specify the path to ``icontopbm'' program.
-+ */
-+ { "xface_uncompface", DT_PATH, R_NONE, UL &UncompFace, UL "uncompface" },
-+ /*
-+ ** .pp
-+ ** Specify the path to ``uncompface'' program.
-+ */
-+ { "xface_w3mimgdisplay",DT_PATH, R_NONE, UL &W3mImgDisplay, UL "/usr/lib/w3m/w3mimgdisplay" },
-+ /*
-+ ** .pp
-+ ** Specify the path to ``w3mimgdisplay'' program.
-+ */
-+ { "xface_w3mimgdisplay_options",DT_STR, R_NONE, UL &W3mOpt, UL "-x 5 -y 5" },
-+ /*
-+ ** .pp
-+ ** Specify options for ``w3mimgdisplay'' program.
-+ */
- /*--*/
- { NULL }
- };
-Index: xface/mutt.h
-===================================================================
---- xface.orig/mutt.h 2007-02-15 20:28:46.983760176 +0100
-+++ xface/mutt.h 2007-02-15 20:28:56.071378648 +0100
-@@ -450,6 +450,7 @@ enum
- OPTWRAP,
- OPTWRAPSEARCH,
- OPTWRITEBCC, /* write out a bcc header? */
-+ OPTXFACE,
- OPTXMAILER,
-
- OPTCRYPTUSEGPGME,
-@@ -587,6 +588,7 @@ typedef struct envelope
- char *message_id;
- char *supersedes;
- char *date;
-+ char *x_face; /* X-Face header content */
- char *x_label;
- BUFFER *spam;
- LIST *references; /* message references (in reverse order) */
-Index: xface/muttlib.c
-===================================================================
---- xface.orig/muttlib.c 2007-02-15 20:28:46.991758960 +0100
-+++ xface/muttlib.c 2007-02-15 20:28:56.072378496 +0100
-@@ -670,6 +670,7 @@ void mutt_free_envelope (ENVELOPE **p)
- FREE (&(*p)->message_id);
- FREE (&(*p)->supersedes);
- FREE (&(*p)->date);
-+ FREE (&(*p)->x_face);
- FREE (&(*p)->x_label);
-
- mutt_buffer_free (&(*p)->spam);
-Index: xface/pager.c
-===================================================================
---- xface.orig/pager.c 2007-02-15 20:28:47.000757592 +0100
-+++ xface/pager.c 2007-02-15 20:28:56.072378496 +0100
-@@ -1479,6 +1479,89 @@ upNLines (int nlines, struct line_t *inf
- return cur;
- }
-
-+static int
-+display_xface (HEADER *hdr)
-+{
-+ char facefile[_POSIX_PATH_MAX + 1];
-+ char command[LONG_STRING];
-+ char *facedata;
-+ FILE *fpin = NULL, *fpout = NULL;
-+ pid_t pid;
-+
-+ /* everything ready? */
-+ if (!UncompFace || !(*UncompFace) ||
-+ !IconToPbm || !(*IconToPbm) ||
-+ !W3mImgDisplay || !(*W3mImgDisplay) ||
-+ !hdr || !hdr->env || !hdr->env->x_face)
-+ return 0;
-+
-+ /* test w3mimgdisplay */
-+ snprintf (command, sizeof (command), "%s -test >/dev/null", W3mImgDisplay);
-+ if (mutt_system (command) == -1)
-+ return 0;
-+
-+ /* prepare facedata */
-+ facedata = hdr->env->x_face;
-+
-+ /* convert facedata to imagedata
-+ * and store imagedata in facefile
-+ */
-+ mutt_mktemp (facefile);
-+ if ((fpout = safe_fopen (facefile, "w")) == NULL)
-+ {
-+ mutt_error (_("Could not create temporary file!"));
-+ return 0;
-+ }
-+ snprintf (command, sizeof (command),
-+ "( echo '/* Width=48, Height=48 */'; %s ) | %s",
-+ UncompFace, IconToPbm);
-+ pid = mutt_create_filter_fd
-+ (command, &fpin, NULL, NULL, -1, fileno (fpout), -1);
-+ if (pid < 0)
-+ {
-+ mutt_perror (_("face filter"));
-+ safe_fclose (&fpout);
-+ mutt_unlink (facefile);
-+ return 0;
-+ }
-+ /* pass facedata to converters */
-+ fputs (facedata, fpin);
-+ if (safe_fclose (&fpin) != 0 && errno != EPIPE)
-+ {
-+ if (fpout != NULL)
-+ {
-+ mutt_wait_filter (pid);
-+ safe_fclose (&fpout);
-+ }
-+ mutt_unlink (facefile);
-+ return 0;
-+ }
-+ if (fpout != NULL)
-+ mutt_wait_filter (pid);
-+ safe_fclose (&fpout);
-+
-+ /*
-+ * w3mimgdisplay
-+ */
-+ snprintf (command, sizeof (command),
-+ "%s %s", W3mImgDisplay, NONULL (W3mOpt));
-+ pid = mutt_create_filter_fd
-+ (command, &fpin, NULL, NULL, -1, -1, -1);
-+ if (pid < 0)
-+ {
-+ mutt_perror ("w3mdisp");
-+ mutt_unlink (facefile);
-+ return 0;
-+ }
-+ /* pass facefile to w3mimgdisplay */
-+ fprintf (fpin, "2;3;\n0;1;0;0;48;48;0;0;48;48;%s\n4;\n3;\n", facefile);
-+ if (safe_fclose (&fpin) != 0 && errno != EPIPE)
-+ mutt_perror ("w3mdisp");
-+ mutt_wait_filter (pid);
-+ mutt_unlink (facefile);
-+ return 0;
-+}
-+
- static struct mapping_t PagerHelp[] = {
- { N_("Exit"), OP_EXIT },
- { N_("PrevPg"), OP_PREV_PAGE },
-@@ -1514,6 +1597,7 @@ mutt_pager (const char *banner, const ch
- int lines = 0, curline = 0, topline = 0, oldtopline = 0, err, first = 1;
- int r = -1;
- int redraw = REDRAW_FULL;
-+ int xface = 0;
- FILE *fp = NULL;
- LOFF_T last_pos = 0, last_offset = 0;
- int old_smart_wrap, old_markers;
-@@ -1593,6 +1677,8 @@ mutt_pager (const char *banner, const ch
-
- if (redraw & REDRAW_FULL)
- {
-+ xface = 1; /* display xface later */
-+
- SETCOLOR (MT_COLOR_NORMAL);
- /* clear() doesn't optimize screen redraws */
- move (0, 0);
-@@ -1794,6 +1880,11 @@ mutt_pager (const char *banner, const ch
- } else move (statusoffset, COLS-1);
- mutt_refresh ();
-
-+ /* X-Face */
-+ if (option (OPTXFACE) && xface && IsHeader (extra))
-+ display_xface (extra->hdr);
-+ xface = 0;
-+
- if (IsHeader (extra) && OldHdr == extra->hdr && TopLine != topline
- && lineInfo[curline].offset < sb.st_size-1)
- {
-Index: xface/parse.c
-===================================================================
---- xface.orig/parse.c 2007-02-15 20:28:47.007756528 +0100
-+++ xface/parse.c 2007-02-15 20:28:56.073378344 +0100
-@@ -43,6 +43,7 @@ char *mutt_read_rfc822_line (FILE *f, ch
- char *buf = line;
- char ch;
- size_t offset = 0;
-+ int xface = 0;
-
- FOREVER
- {
-@@ -53,6 +54,9 @@ char *mutt_read_rfc822_line (FILE *f, ch
- return (line);
- }
-
-+ if (ascii_strcasecmp (buf, "x-face:") == 0)
-+ xface = 1;
-+
- buf += strlen (buf) - 1;
- if (*buf == '\n')
- {
-@@ -71,9 +75,12 @@ char *mutt_read_rfc822_line (FILE *f, ch
- /* eat tabs and spaces from the beginning of the continuation line */
- while ((ch = fgetc (f)) == ' ' || ch == '\t')
- ;
-- ungetc (ch, f);
-- *++buf = ' '; /* string is still terminated because we removed
-- at least one whitespace char above */
-+ if (!xface)
-+ {
-+ ungetc (ch, f);
-+ *++buf = ' '; /* string is still terminated because we removed
-+ at least one whitespace char above */
-+ }
- }
-
- buf++;
-@@ -1244,6 +1251,11 @@ int mutt_parse_rfc822_line (ENVELOPE *e,
- e->x_label = safe_strdup(p);
- matched = 1;
- }
-+ else if (ascii_strcasecmp (line+1, "-face") == 0)
-+ {
-+ e->x_face = safe_strdup (p);
-+ matched = 1;
-+ }
-
- default:
- break;
-Index: xface/sendlib.c
-===================================================================
---- xface.orig/sendlib.c 2007-02-15 20:28:47.017755008 +0100
-+++ xface/sendlib.c 2007-02-15 20:28:56.074378192 +0100
-@@ -1829,6 +1829,9 @@ int mutt_write_rfc822_header (FILE *fp,
- }
- }
-
-+ if (env->x_face)
-+ fprintf (fp, "X-Face: %s\n", env->x_face);
-+
- if (mode == 0 && !privacy && option (OPTXMAILER) && !has_agent)
- {
- /* Add a vanity header */
---- a/PATCHES
-+++ b/PATCHES
-@@ -0,0 +1 @@
-+patch-1.5.13.tamo.w3mface.2
+++ /dev/null
-# build system patches
-misc/am-maintainer-mode
-debian-specific/build_doc_adjustments.diff
-debian-specific/sort-patchlist
-
-# features
-features/ifdef
-features/maildir-mtime
-features/xtitles
-features/trash-folder
-features/purge-message
-features/sensible_browser_position
-features-old/patch-1.5.4.vk.pgp_verbose_mime
-features/compressed-folders
-features/compressed-folders.debian
-
-# Debian config
-debian-specific/Muttrc
-debian-specific/Md.etc_mailname_gethostbyname.diff
-debian-specific/use_usr_bin_editor.diff
-debian-specific/correct_docdir_in_man_page.diff
-debian-specific/dont_document_not_present_features.diff
-debian-specific/document_debian_defaults
-debian-specific/assumed_charset-compat
-misc/define-pgp_getkeys_command.diff
-misc/gpg.rc-paths
-misc/smime.rc
-
-upstream/500016-temp-cache-fix.patch
-upstream/508988-inode-sort.patch
-
-mutt.org
-# extra patches for mutt-patched
-mutt-patched/sidebar-compat-revert.debian
-#mutt-patched/sidebar
-#mutt-patched/sidebar-compat-apply.debian
-
-# unapplied patches for custom packages
-# not-applied/chdir
-# not-applied/indexcolor
-# not-applied/w3mface
+++ /dev/null
-message cache partially invalid after network problem
-fixed by http://dev.mutt.org/trac/ticket/3163
-changeset http://dev.mutt.org/trac/changeset/da94a92c3ba0
-resolves http://bugs.debian.org/500016
-
---- mutt-1.5.19/bcache.c 2009-01-05 19:20:53.000000000 +0000
-+++ mutt-7ddf1d1cc490/bcache.c 2009-01-27 20:58:15.000000000 +0000
-@@ -136,6 +136,13 @@
- snprintf (path, sizeof (path), "%s%s%s", bcache->path, id,
- tmp ? ".tmp" : "");
-
-+ if ((fp = safe_fopen (path, "w+")))
-+ goto out;
-+
-+ if (errno == EEXIST)
-+ /* clean up leftover tmp file */
-+ mutt_unlink (path);
-+
- s = strchr (path + 1, '/');
- while (!(fp = safe_fopen (path, "w+")) && errno == ENOENT && s)
- {
-@@ -147,6 +154,7 @@
- s = strchr (s + 1, '/');
- }
-
-+ out:
- dprint (3, (debugfile, "bcache: put: '%s'\n", path));
-
- return fp;
+++ /dev/null
-fixed by http://dev.mutt.org/trac/ticket/3163
-changeset http://dev.mutt.org/trac/changeset/eb918af802ec
-resolves http://bugs.debian.org/508988
-
-This commit introduces an unconditional inode-sort to fix the slowness with big
-maildirs
-
---- mutt-1.5.19/mh.c 2009-01-05 19:20:53.000000000 +0000
-+++ mutt-7ddf1d1cc490/mh.c 2009-01-27 20:58:15.000000000 +0000
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (C) 1996-2002,2007 Michael R. Elkins <me@mutt.org>
-+ * Copyright (C) 1996-2002,2007,2009 Michael R. Elkins <me@mutt.org>
- * Copyright (C) 1999-2005 Thomas Roessler <roessler@does-not-exist.org>
- *
- * This program is free software; you can redistribute it and/or modify
-@@ -1027,13 +1027,14 @@
- if (!ctx->quiet && progress)
- mutt_progress_update (progress, count, -1);
-
-+ DO_SORT();
-+
- snprintf (fn, sizeof (fn), "%s/%s", ctx->path, p->h->path);
-
- #if USE_HCACHE
- if (option(OPTHCACHEVERIFY))
- {
-- DO_SORT();
-- ret = stat(fn, &lastchanged);
-+ ret = stat(fn, &lastchanged);
- }
- else
- {
-@@ -1057,7 +1058,6 @@
- {
- #endif /* USE_HCACHE */
-
-- DO_SORT();
- if (maildir_parse_message (ctx->magic, fn, p->h->old, p->h))
- {
- p->header_parsed = 1;
+++ /dev/null
-#!/usr/bin/make -f
-
-include /usr/share/quilt/quilt.make
-
-###################### user serviceable parts ######################
-
-###
-# build a separate mutt-patched package?
-#BUILD_PATCHED := yes -- disabled until there is a sidebar patch for 1.5.19
-###
-# header cache backend
-# HCACHE_DB := bdb
-HCACHE_DB := gdbm
-# HCACHE_DB := qdbm
-###
-# GPGME backend
-# GPGME := --enable-gpgme
-###
-
-###################### variables ######################
-
-ifneq ($(BUILD_PATCHED),yes)
-export DH_OPTIONS := -Nmutt-patched
-endif
-
-# Configure arguments
-
-ifeq ($(HCACHE_DB),bdb)
- hcache_db := --without-gdbm --without-qdbm
-endif
-ifeq ($(HCACHE_DB),gdbm)
- hcache_db := --without-qdbm --without-bdb
-endif
-ifeq ($(HCACHE_DB),qdbm)
- hcache_db := --without-gdbm --without-bdb
-endif
-
-confflags = --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --with-sharedir=/usr/share/mutt \
- --with-docdir=/usr/share/doc \
- --with-mailpath=/var/mail \
- \
- --disable-dependency-tracking \
- \
- --enable-compressed \
- --enable-debug \
- --enable-fcntl \
- --enable-hcache \
- $(GPGME) \
- --enable-imap \
- --enable-smtp \
- --enable-inodesort \
- --enable-pop \
- \
- --with-curses \
- --with-gnutls \
- --with-gss \
- --with-idn \
- --with-mixmaster \
- --with-sasl \
- \
- $(hcache_db)
-
-DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
-DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
-confflags += --build $(DEB_BUILD_GNU_TYPE)
-# Only specify --host when cross-compiling
-ifneq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
- confflags += --host $(DEB_HOST_GNU_TYPE)
-endif
-
-# CFLAGS
-CFLAGS = -Wall -g
-CPPFLAGS = -I/usr/include/qdbm
-ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
- CFLAGS += -O0
-else
- CFLAGS += -O2
-endif
-
-# Directory to make the build on
-objdir = $(CURDIR)/obj-$(DEB_HOST_GNU_TYPE)
-
-###################### main ######################
-
-$(objdir)-patched/build-stamp: $(QUILT_STAMPFN)
- dh_testdir
- dh_clean
- -mkdir $(objdir)-patched
-
-ifeq ($(BUILD_PATCHED),yes)
- ###################### building mutt-patched ######################
- autoreconf --install --include=m4
- cd $(objdir)-patched && \
- env CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" \
- ../configure $(confflags)
-
- echo '#include "config-debian.h"' >> $(objdir)-patched/config.h
-
- # we should just "make mutt" here, but that doesn't work yet
- cd $(objdir)-patched && $(MAKE) CFLAGS="$(CFLAGS)"
-endif
-
- touch $@
-
-build build-arch: $(objdir)/build-stamp
-$(objdir)/build-stamp: $(objdir)-patched/build-stamp
- ###################### building mutt ######################
- QUILT_PATCHES=$(QUILT_PATCH_DIR) quilt --quiltrc /dev/null pop mutt.org
-
- autoreconf --install --include=m4
- -mkdir $(objdir)
- cd $(objdir) && \
- env CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" \
- ../configure $(confflags)
-
- echo '#include "config-debian.h"' >>$(objdir)/config.h
-
- cd $(objdir) && $(MAKE) CFLAGS="$(CFLAGS)"
-
- touch $@
-
-install: build
- ###################### install ######################
- dh_testdir
- dh_testroot
- dh_clean -k
- cd $(objdir) && $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp
-
- cd debian/tmp/usr/share/doc && \
- rm -rf samples/iconv samples/ca-bundle.crt && \
- mv NEWS NEWS.old && \
- cp $(CURDIR)/UPDATING NEWS
-
- chmod +x debian/extra/lib/*
- chmod +x debian/header.awk
- debian/header.awk debian/patches/features/* \
- debian/patches/mutt-patched/* > debian/tmp/README.Patches
-
- ( sed -e '/## More settings/,$$d' $(objdir)/doc/Muttrc || exit 1 ; \
- cat debian/extra/rc/Muttrc.foot ) > debian/tmp/Muttrc
-
- ( echo "# GnuPG configuration"; \
- grep '^set' contrib/gpg.rc; \
- echo ) > debian/tmp/gpg.rc
-
-ifeq ($(BUILD_PATCHED),yes)
- # temporarily call the binary mutt-patched so dh_strip gets the debug file name right
- install -D $(objdir)-patched/mutt debian/mutt-patched/usr/bin/mutt-patched
-endif
-
- # reportbug driver
- dh_installdirs
- install -m644 debian/bug/control $(CURDIR)/debian/mutt/usr/share/bug/mutt
- install debian/bug/script $(CURDIR)/debian/mutt/usr/share/bug/mutt
-
-binary binary-arch: install
- ###################### binary ######################
- dh_install
- dh_installman
- dh_installmenu
- dh_installmime
- dh_installdocs
- dh_installexamples
- dh_installchangelogs ChangeLog
- -dh_lintian
-
- dh_strip --dbg-package=mutt-dbg
- rm -rf $(CURDIR)/debian/mutt-dbg/usr/share/doc/mutt-dbg \
- $(CURDIR)/debian/mutt-patched/usr/share/doc/mutt-patched
-ifeq ($(BUILD_PATCHED),yes)
- mv debian/mutt-patched/usr/bin/mutt-patched debian/mutt-patched/usr/bin/mutt
-endif
-
- dh_link
- dh_compress --exclude usr/share/doc/mutt/README.Patches
- dh_fixperms --exclude usr/bin/mutt_dotlock
- dh_installdeb
- dh_shlibdeps
- dh_gencontrol
- dh_md5sums
- dh_builddeb
-
-build-indep binary-indep:
- @echo "Nothing to do."
-
-clean: unpatch
- ###################### clean ######################
- dh_testdir
- dh_testroot
-
- # please dpkg-source
- rm -f po/*.gmo
- touch PATCHES
-
- # remove build trees
- rm -rf $(objdir) $(objdir)-patched
-
- # remove autotool-generated files so they don't show up in the diff.gz
- rm -f configure config.h.in
- rm -f Makefile.in contrib/Makefile.in imap/Makefile.in doc/Makefile.in m4/Makefile.in
-
- # clean PATCHES hunks (blame quilt refresh)
- for p in `grep -rl PATCHES debian/patches` ; do perl -wi debian/fix-PATCHES.pl $$p ; done
-
- dh_clean
-
-.PHONY: configure build build-arch build-indep clean install binary binary-arch binary-indep patch
+++ /dev/null
-#! /bin/sh
-
-set -e
-
-dh_testdir
-
-D=$(basename "$PWD")
-PATCH_NAME=misc/autotools-update.diff
-
-debclean
-quilt delete $PATCH_NAME || test $? -eq 1
-quilt push -aq
-ln -sf /usr/share/misc/config.sub .
-ln -sf /usr/share/misc/config.guess .
-
-cd ..
-cp -al $D $D.orig
-
-cd $D
-aclocal -I m4
-autoheader
-( cd m4 && make -f Makefile.am.in )
-automake
-autoconf
-cd ..
-
-T=`mktemp $D/diff.XXXXXX`
-diff -ru $D.orig $D >$T || test $? -eq 1
-patch -p1 -R -d $D <$T
-
-cd $D
-quilt import -f -P $PATCH_NAME `basename $T`
-quilt push
-quilt refresh -p0
-cd ..
-
-rm -f $T
-rm -rf $D.orig
+++ /dev/null
-version=3
-opts=pasv ftp://ftp.mutt.org/mutt/devel/mutt-(.*).tar.gz