--- mutt-1.5.18.orig/aclocal.m4
+++ mutt-1.5.18/aclocal.m4
@@ -1,7 +1,7 @@
-# generated automatically by aclocal 1.9.6 -*- Autoconf -*-
+# generated automatically by aclocal 1.10.1 -*- Autoconf -*-
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005  Free Software Foundation, Inc.
+# 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -11,32 +11,15 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
-# isc-posix.m4 serial 2 (gettext-0.11.2)
-dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-# This file is not needed with autoconf-2.53 and newer.  Remove it in 2005.
-
-# This test replaces the one in autoconf.
-# Currently this macro should have the same name as the autoconf macro
-# because gettext's gettext.m4 (distributed in the automake package)
-# still uses it.  Otherwise, the use in gettext.m4 makes autoheader
-# give these diagnostics:
-#   configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX
-#   configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX
-
-undefine([AC_ISC_POSIX])
-
-AC_DEFUN([AC_ISC_POSIX],
-  [
-    dnl This test replaces the obsolescent AC_ISC_POSIX kludge.
-    AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"])
-  ]
-)
+m4_ifndef([AC_AUTOCONF_VERSION],
+  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+m4_if(AC_AUTOCONF_VERSION, [2.61],,
+[m4_warning([this file was generated for autoconf 2.61.
+You have another version of autoconf.  It may work, but is not guaranteed to.
+If you have problems, you may need to regenerate the build system entirely.
+To do so, use the procedure documented by the package, typically `autoreconf'.])])
 
-# Copyright (C) 2002, 2003, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2002, 2003, 2005, 2006, 2007  Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -46,14 +29,31 @@
 # ----------------------------
 # Automake X.Y traces this macro to ensure aclocal.m4 has been
 # generated from the m4 files accompanying Automake X.Y.
-AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"])
+# (This private macro should not be called outside this file.)
+AC_DEFUN([AM_AUTOMAKE_VERSION],
+[am__api_version='1.10'
+dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
+dnl require some minimum version.  Point them to the right macro.
+m4_if([$1], [1.10.1], [],
+      [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
+])
+
+# _AM_AUTOCONF_VERSION(VERSION)
+# -----------------------------
+# aclocal traces this macro to find the Autoconf version.
+# This is a private macro too.  Using m4_define simplifies
+# the logic in aclocal, which can simply ignore this definition.
+m4_define([_AM_AUTOCONF_VERSION], [])
 
 # AM_SET_CURRENT_AUTOMAKE_VERSION
 # -------------------------------
-# Call AM_AUTOMAKE_VERSION so it can be traced.
+# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-	 [AM_AUTOMAKE_VERSION([1.9.6])])
+[AM_AUTOMAKE_VERSION([1.10.1])dnl
+m4_ifndef([AC_AUTOCONF_VERSION],
+  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+_AM_AUTOCONF_VERSION(AC_AUTOCONF_VERSION)])
 
 # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
 
@@ -110,14 +110,14 @@
 
 # AM_CONDITIONAL                                            -*- Autoconf -*-
 
-# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005
+# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006
 # Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 7
+# serial 8
 
 # AM_CONDITIONAL(NAME, SHELL-CONDITION)
 # -------------------------------------
@@ -126,8 +126,10 @@
 [AC_PREREQ(2.52)dnl
  ifelse([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
 	[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
-AC_SUBST([$1_TRUE])
-AC_SUBST([$1_FALSE])
+AC_SUBST([$1_TRUE])dnl
+AC_SUBST([$1_FALSE])dnl
+_AM_SUBST_NOTMAKE([$1_TRUE])dnl
+_AM_SUBST_NOTMAKE([$1_FALSE])dnl
 if $2; then
   $1_TRUE=
   $1_FALSE='#'
@@ -141,15 +143,14 @@
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
-
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
 # Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 8
+# serial 9
 
 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
 # written in clear, in which case automake, when reading aclocal.m4,
@@ -177,6 +178,7 @@
 ifelse([$1], CC,   [depcc="$CC"   am_compiler_list=],
        [$1], CXX,  [depcc="$CXX"  am_compiler_list=],
        [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+       [$1], UPC,  [depcc="$UPC"  am_compiler_list=],
        [$1], GCJ,  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
                    [depcc="$$1"   am_compiler_list=])
 
@@ -242,6 +244,7 @@
        depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
        $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
          >/dev/null 2>conftest.err &&
+       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
        grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
        grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
        ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
@@ -294,7 +297,8 @@
   AMDEPBACKSLASH='\'
 fi
 AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
-AC_SUBST([AMDEPBACKSLASH])
+AC_SUBST([AMDEPBACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
 ])
 
 # Generate code to set up dependency tracking.              -*- Autoconf -*-
@@ -319,8 +323,9 @@
   # some people rename them; so instead we look at the file content.
   # Grep'ing the first line is not enough: some people post-process
   # each Makefile.in and add a new line on top of each file to say so.
-  # So let's grep whole file.
-  if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
+  # Grep'ing the whole file is not good either: AIX grep has a line
+  # limit of 2048, but all sed's we know have understand at least 4000.
+  if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
     dirpart=`AS_DIRNAME("$mf")`
   else
     continue
@@ -379,14 +384,14 @@
 
 # Do all the work for Automake.                             -*- Autoconf -*-
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-# Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005, 2006, 2008 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 12
+# serial 13
 
 # This macro actually does too much.  Some checks are only needed if
 # your package does certain things.  But this isn't really a big deal.
@@ -403,16 +408,20 @@
 # arguments mandatory, and then we can depend on a new Autoconf
 # release and drop the old call support.
 AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_PREREQ([2.58])dnl
+[AC_PREREQ([2.60])dnl
 dnl Autoconf wants to disallow AM_ names.  We explicitly allow
 dnl the ones we care about.
 m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
 AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
 AC_REQUIRE([AC_PROG_INSTALL])dnl
-# test to see if srcdir already configured
-if test "`cd $srcdir && pwd`" != "`pwd`" &&
-   test -f $srcdir/config.status; then
-  AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+  # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+  # is not polluted with repeated "-I."
+  AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
+  # test to see if srcdir already configured
+  if test -f $srcdir/config.status; then
+    AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+  fi
 fi
 
 # test whether we have cygpath
@@ -432,6 +441,9 @@
  AC_SUBST([PACKAGE], [$1])dnl
  AC_SUBST([VERSION], [$2])],
 [_AM_SET_OPTIONS([$1])dnl
+dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
+m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
+  [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
  AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
  AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
 
@@ -467,6 +479,10 @@
                   [_AM_DEPENDENCIES(CXX)],
                   [define([AC_PROG_CXX],
                           defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+                  [_AM_DEPENDENCIES(OBJC)],
+                  [define([AC_PROG_OBJC],
+                          defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
 ])
 ])
 
@@ -480,16 +496,17 @@
 # our stamp files there.
 AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
 [# Compute $1's index in $config_headers.
+_am_arg=$1
 _am_stamp_count=1
 for _am_header in $config_headers :; do
   case $_am_header in
-    $1 | $1:* )
+    $_am_arg | $_am_arg:* )
       break ;;
     * )
       _am_stamp_count=`expr $_am_stamp_count + 1` ;;
   esac
 done
-echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
+echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
 
 # Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
 #
@@ -502,7 +519,7 @@
 # Define $install_sh.
 AC_DEFUN([AM_PROG_INSTALL_SH],
 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-install_sh=${install_sh-"$am_aux_dir/install-sh"}
+install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"}
 AC_SUBST(install_sh)])
 
 # Copyright (C) 2003, 2005  Free Software Foundation, Inc.
@@ -526,6 +543,35 @@
 rmdir .tst 2>/dev/null
 AC_SUBST([am__leading_dot])])
 
+# Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
+# From Jim Meyering
+
+# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 4
+
+AC_DEFUN([AM_MAINTAINER_MODE],
+[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
+  dnl maintainer-mode is disabled by default
+  AC_ARG_ENABLE(maintainer-mode,
+[  --enable-maintainer-mode  enable make rules and dependencies not useful
+			  (and sometimes confusing) to the casual installer],
+      USE_MAINTAINER_MODE=$enableval,
+      USE_MAINTAINER_MODE=no)
+  AC_MSG_RESULT([$USE_MAINTAINER_MODE])
+  AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes])
+  MAINT=$MAINTAINER_MODE_TRUE
+  AC_SUBST(MAINT)dnl
+]
+)
+
+AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
+
 # Check to see how 'make' treats includes.	            -*- Autoconf -*-
 
 # Copyright (C) 2001, 2002, 2003, 2005  Free Software Foundation, Inc.
@@ -580,14 +626,14 @@
 
 # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
 
-# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005
+# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005
 # Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 4
+# serial 5
 
 # AM_MISSING_PROG(NAME, PROGRAM)
 # ------------------------------
@@ -603,6 +649,7 @@
 # If it does, set am_missing_run to use it, otherwise, to nothing.
 AC_DEFUN([AM_MISSING_HAS_RUN],
 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([missing])dnl
 test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
 # Use eval to expand $SHELL
 if eval "$MISSING --run true"; then
@@ -613,7 +660,7 @@
 fi
 ])
 
-# Copyright (C) 2003, 2004, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -621,60 +668,23 @@
 
 # AM_PROG_MKDIR_P
 # ---------------
-# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise.
-#
-# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories
-# created by `make install' are always world readable, even if the
-# installer happens to have an overly restrictive umask (e.g. 077).
-# This was a mistake.  There are at least two reasons why we must not
-# use `-m 0755':
-#   - it causes special bits like SGID to be ignored,
-#   - it may be too restrictive (some setups expect 775 directories).
-#
-# Do not use -m 0755 and let people choose whatever they expect by
-# setting umask.
-#
-# We cannot accept any implementation of `mkdir' that recognizes `-p'.
-# Some implementations (such as Solaris 8's) are not thread-safe: if a
-# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c'
-# concurrently, both version can detect that a/ is missing, but only
-# one can create it and the other will error out.  Consequently we
-# restrict ourselves to GNU make (using the --version option ensures
-# this.)
+# Check for `mkdir -p'.
 AC_DEFUN([AM_PROG_MKDIR_P],
-[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
-  # We used to keeping the `.' as first argument, in order to
-  # allow $(mkdir_p) to be used without argument.  As in
-  #   $(mkdir_p) $(somedir)
-  # where $(somedir) is conditionally defined.  However this is wrong
-  # for two reasons:
-  #  1. if the package is installed by a user who cannot write `.'
-  #     make install will fail,
-  #  2. the above comment should most certainly read
-  #     $(mkdir_p) $(DESTDIR)$(somedir)
-  #     so it does not work when $(somedir) is undefined and
-  #     $(DESTDIR) is not.
-  #  To support the latter case, we have to write
-  #     test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
-  #  so the `.' trick is pointless.
-  mkdir_p='mkdir -p --'
-else
-  # On NextStep and OpenStep, the `mkdir' command does not
-  # recognize any option.  It will interpret all options as
-  # directories to create, and then abort because `.' already
-  # exists.
-  for d in ./-p ./--version;
-  do
-    test -d $d && rmdir $d
-  done
-  # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
-  if test -f "$ac_aux_dir/mkinstalldirs"; then
-    mkdir_p='$(mkinstalldirs)'
-  else
-    mkdir_p='$(install_sh) -d'
-  fi
-fi
-AC_SUBST([mkdir_p])])
+[AC_PREREQ([2.60])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+dnl Automake 1.8 to 1.9.6 used to define mkdir_p.  We now use MKDIR_P,
+dnl while keeping a definition of mkdir_p for backward compatibility.
+dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
+dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
+dnl Makefile.ins that do not define MKDIR_P, so we do our own
+dnl adjustment using top_builddir (which is defined more often than
+dnl MKDIR_P).
+AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
+case $mkdir_p in
+  [[\\/$]]* | ?:[[\\/]]*) ;;
+  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+])
 
 # Helper functions for option handling.                     -*- Autoconf -*-
 
@@ -709,14 +719,14 @@
 AC_DEFUN([_AM_IF_OPTION],
 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
 
-# Copyright (C) 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2005
+# Copyright (C) 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2005, 2006
 # Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 4
+# serial 5
 
 AC_DEFUN([AM_C_PROTOTYPES],
 [AC_REQUIRE([AC_C_PROTOTYPES])
@@ -727,9 +737,10 @@
 fi
 # Ensure some checks needed by ansi2knr itself.
 AC_REQUIRE([AC_HEADER_STDC])
-AC_CHECK_HEADERS(string.h)
-AC_SUBST(U)dnl
-AC_SUBST(ANSI2KNR)dnl
+AC_CHECK_HEADERS([string.h])
+AC_SUBST([U])dnl
+AC_SUBST([ANSI2KNR])dnl
+_AM_SUBST_NOTMAKE([ANSI2KNR])dnl
 ])
 
 AU_DEFUN([fp_C_PROTOTYPES], [AM_C_PROTOTYPES])
@@ -811,9 +822,21 @@
 if test "$cross_compiling" != no; then
   AC_CHECK_TOOL([STRIP], [strip], :)
 fi
-INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
+# Copyright (C) 2006  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
+# This macro is traced by Automake.
+AC_DEFUN([_AM_SUBST_NOTMAKE])
+
 # Check how to create a tarball.                            -*- Autoconf -*-
 
 # Copyright (C) 2004, 2005  Free Software Foundation, Inc.
--- mutt-1.5.18.orig/debian/mutt.menu
+++ mutt-1.5.18/debian/mutt.menu
@@ -0,0 +1,5 @@
+?package(mutt): title="Mutt" \
+	section="Applications/Network/Communication" hints="Mail" \
+	needs="text" \
+	icon="/usr/share/pixmaps/mutt.xpm" \
+	command="/usr/bin/mutt"
--- mutt-1.5.18.orig/debian/mutt.doc-base
+++ mutt-1.5.18/debian/mutt.doc-base
@@ -0,0 +1,14 @@
+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/*
+
--- mutt-1.5.18.orig/debian/README.source
+++ mutt-1.5.18/debian/README.source
@@ -0,0 +1,57 @@
+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.
--- mutt-1.5.18.orig/debian/README.Debian
+++ mutt-1.5.18/debian/README.Debian
@@ -0,0 +1,87 @@
+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.
+
+
+Kerberos support
+~~~~~~~~~~~~~~~~
+To use kerberos GSSAPI authentication, install the libsasl2-modules-gssapi-mit
+package.
+
+ -- Christoph Berg <myon@debian.org>  Sat, 03 Nov 2007 21:02:26 +0100
--- mutt-1.5.18.orig/debian/mutt-patched.postrm
+++ mutt-1.5.18/debian/mutt-patched.postrm
@@ -0,0 +1,10 @@
+#!/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
--- mutt-1.5.18.orig/debian/mutt.docs
+++ mutt-1.5.18/debian/mutt.docs
@@ -0,0 +1,11 @@
+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/changelog.old
+debian/tmp/usr/share/doc/manual.txt
--- mutt-1.5.18.orig/debian/NEWS
+++ mutt-1.5.18/debian/NEWS
@@ -0,0 +1,46 @@
+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
--- mutt-1.5.18.orig/debian/mutt-dbg.links
+++ mutt-1.5.18/debian/mutt-dbg.links
@@ -0,0 +1 @@
+usr/share/doc/mutt usr/share/doc/mutt-dbg
--- mutt-1.5.18.orig/debian/mutt.lintian-overrides
+++ mutt-1.5.18/debian/mutt.lintian-overrides
@@ -0,0 +1 @@
+mutt: setgid-binary usr/bin/mutt_dotlock 2755 root/mail
--- mutt-1.5.18.orig/debian/update-autotools.sh
+++ mutt-1.5.18/debian/update-autotools.sh
@@ -0,0 +1,38 @@
+#! /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
--- mutt-1.5.18.orig/debian/patches/not-applied/w3mface
+++ mutt-1.5.18/debian/patches/not-applied/w3mface
@@ -0,0 +1,308 @@
+# 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
--- mutt-1.5.18.orig/debian/patches/not-applied/chdir
+++ mutt-1.5.18/debian/patches/not-applied/chdir
@@ -0,0 +1,100 @@
+# 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
--- mutt-1.5.18.orig/debian/patches/not-applied/indexcolor
+++ mutt-1.5.18/debian/patches/not-applied/indexcolor
@@ -0,0 +1,670 @@
+# 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> &lsqb; <emphasis>regexp</emphasis> &rsqb;
+-Usage: <literal>color</literal> index <emphasis>foreground</emphasis> <emphasis>background</emphasis> <emphasis>pattern</emphasis>
+-Usage: <literal>uncolor</literal> index <emphasis>pattern</emphasis> &lsqb; <emphasis>pattern</emphasis> ...  &rsqb;
++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> &lsqb; <emphasis>pattern</emphasis> ...  &rsqb;
+ </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
--- mutt-1.5.18.orig/debian/patches/misc/am-maintainer-mode
+++ mutt-1.5.18/debian/patches/misc/am-maintainer-mode
@@ -0,0 +1,12 @@
+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
--- mutt-1.5.18.orig/debian/patches/misc/define-pgp_getkeys_command.diff
+++ mutt-1.5.18/debian/patches/misc/define-pgp_getkeys_command.diff
@@ -0,0 +1,11 @@
+--- 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!
+ 
--- mutt-1.5.18.orig/debian/patches/misc/gpg.rc-paths
+++ mutt-1.5.18/debian/patches/misc/gpg.rc-paths
@@ -0,0 +1,18 @@
+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"
--- mutt-1.5.18.orig/debian/patches/features/xtitles
+++ mutt-1.5.18/debian/patches/features/xtitles
@@ -0,0 +1,180 @@
+# 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.
+
+== END PATCH
+Index: mutt/curs_main.c
+===================================================================
+--- mutt.orig/curs_main.c	2006-12-12 14:15:02.000000000 +0100
++++ mutt/curs_main.c	2007-02-20 16:53:27.211126488 +0100
+@@ -110,6 +110,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;
+@@ -568,6 +581,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;
+Index: mutt/globals.h
+===================================================================
+--- mutt.orig/globals.h	2007-01-04 15:23:49.000000000 +0100
++++ mutt/globals.h	2007-01-27 19:33:32.000000000 +0100
+@@ -137,6 +137,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;
+Index: mutt/init.c
+===================================================================
+--- mutt.orig/init.c	2006-12-12 14:15:03.000000000 +0100
++++ mutt/init.c	2007-01-27 19:33:32.000000000 +0100
+@@ -1747,6 +1747,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 ||
+Index: mutt/init.h
+===================================================================
+--- mutt.orig/init.h	2006-12-12 14:15:03.000000000 +0100
++++ mutt/init.h	2007-02-20 16:47:02.718578240 +0100
+@@ -2941,6 +2941,27 @@ 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.
+   */
++  {"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 }
+ };
+Index: mutt/mutt.h
+===================================================================
+--- mutt.orig/mutt.h	2007-01-04 15:23:49.000000000 +0100
++++ mutt/mutt.h	2007-01-27 19:33:32.000000000 +0100
+@@ -451,6 +451,7 @@ enum
+   OPTWRAPSEARCH,
+   OPTWRITEBCC,		/* write out a bcc header? */
+   OPTXMAILER,
++  OPTXTERMSETTITLES,
+ 
+   OPTCRYPTUSEGPGME,
+ 
+Index: mutt/pager.c
+===================================================================
+--- mutt.orig/pager.c	2006-12-12 14:15:03.000000000 +0100
++++ mutt/pager.c	2007-01-27 19:33:32.000000000 +0100
+@@ -30,6 +30,8 @@
+ #include "pager.h"
+ #include "attach.h"
+ #include "mbyte.h"
++void set_xterm_title_bar(char *title);
++void set_xterm_icon_name(char *name);
+ 
+ #include "mx.h"
+ 
+@@ -1765,6 +1767,13 @@ mutt_pager (const char *banner, const ch
+ 	addstr (topline == 0 ? "all)" : "end)");
+       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)
+Index: mutt/status.c
+===================================================================
+--- mutt.orig/status.c	2007-01-27 19:33:36.000000000 +0100
++++ mutt/status.c	2007-01-27 19:34:11.000000000 +0100
+@@ -191,6 +191,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/PATCHES
++++ b/PATCHES
+@@ -0,0 +1 @@
++patch-1.5.13.nt+ab.xtitles.4
--- mutt-1.5.18.orig/debian/patches/features/compressed-folders.debian
+++ mutt-1.5.18/debian/patches/features/compressed-folders.debian
@@ -0,0 +1,7 @@
+--- 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
--- mutt-1.5.18.orig/debian/patches/features/sensible_browser_position
+++ mutt-1.5.18/debian/patches/features/sensible_browser_position
@@ -0,0 +1,108 @@
+# 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
+
+== END PATCH
+--- a/menu.c
++++ b/menu.c
+@@ -840,8 +840,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))
+@@ -1073,6 +1077,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] = "";
+ 
+@@ -506,19 +507,38 @@ 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);
+ #ifdef USE_IMAP
+-  if (state->imap_browse && option (OPTIMAPLSUB))
+-    snprintf (title, titlelen, _("Subscribed [%s], File mask: %s"),
+-	      path, NONULL (Mask.pattern));
+-  else
++    if (state->imap_browse && option (OPTIMAPLSUB))
++      snprintf (title, titlelen, _("Subscribed [%s], File mask: %s"),
++		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;
+ }
+@@ -694,7 +714,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
+--- a/PATCHES
++++ b/PATCHES
+@@ -0,0 +1 @@
++patch-1.5.8.hr.sensible_browser_position.3
--- mutt-1.5.18.orig/debian/patches/features/purge-message
+++ mutt-1.5.18/debian/patches/features/purge-message
@@ -0,0 +1,231 @@
+# 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
--- mutt-1.5.18.orig/debian/patches/features/ifdef
+++ mutt-1.5.18/debian/patches/features/ifdef
@@ -0,0 +1,155 @@
+# 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
--- mutt-1.5.18.orig/debian/patches/features/compressed-folders
+++ mutt-1.5.18/debian/patches/features/compressed-folders
@@ -0,0 +1,1190 @@
+# 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
+
+== 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
+@@ -787,6 +787,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
+@@ -1132,6 +1132,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
+@@ -4799,6 +4799,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 &gt; %t" 
++close-hook \\.gz$ "gzip -c %t &gt; %f"
++append-hook \\.gz$ "gzip -c %t &gt;&gt; %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
++&quot;.&quot; as a regexp. But this may be surprising if your
++compressing script produces empty files. In this situation, unset
++<link linkend="save-empty">&dollar;save&lowbar;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> &quot;<emphasis>command</emphasis>&quot;
++
++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: &percnt;f, which is
++replaced with the (compressed) folder name, and &percnt;t which is
++replaced with the name of the temporary folder to which to write.
++
++&percnt;f and &percnt;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, &percnt;&percnt; is replaced by
++&percnt;, as in printf, and any other &percnt;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 &gt; %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> &quot;<emphasis>command</emphasis>&quot;
++
++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 &gt; %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> &quot;<emphasis>command</emphasis>&quot;
++
++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 &gt;&gt; %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">&dollar;mbox&lowbar;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 &lt; %f &gt; %t"
++close-hook \\.pgp$ "pgp -fe YourPgpUserIdOrKeyId &lt; %t &gt; %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 &lt; %f &gt; %t"
++close-hook \\.gpg$ "gpg --encrypt --recipient YourGpgUserIdOrKeyId &lt; %t &gt; %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
++++ b/doc/Muttrc
+@@ -24,6 +24,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.head
++++ b/doc/Muttrc.head
+@@ -24,6 +24,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
+@@ -3272,6 +3272,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
+@@ -403,6 +403,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 md5.c mut
+ 	utf8.c wcwidth.c 
+ 
+ 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>
+@@ -1037,6 +1041,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
+@@ -160,6 +160,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
+@@ -892,6 +897,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
+@@ -1289,6 +1289,48 @@ msgstr "Prüfung des Absenders fehlgeschl
+ msgid "Failed to figure out sender"
+ msgstr "Kann Absender nicht ermitteln"
+ 
++#: 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"
++
+ #: crypt.c:69
+ #, c-format
+ msgid " (current time: %c)"
+@@ -1958,6 +2000,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."
+@@ -2687,18 +2733,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:975
+ 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.
+--- 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);
++      }
++      else
++#endif
+       if (Context && Context->path)
+       {
+ 	strfcpy (tmp, Context->path, sizeof (tmp));
--- mutt-1.5.18.orig/debian/patches/features/trash-folder
+++ mutt-1.5.18/debian/patches/features/trash-folder
@@ -0,0 +1,283 @@
+# 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;
+ 
--- mutt-1.5.18.orig/debian/patches/features/maildir-mtime
+++ mutt-1.5.18/debian/patches/features/maildir-mtime
@@ -0,0 +1,180 @@
+# 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
--- mutt-1.5.18.orig/debian/patches/mutt-patched/sidebar
+++ mutt-1.5.18/debian/patches/mutt-patched/sidebar
@@ -0,0 +1,1373 @@
+# 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:
+  - Fixed conflict with maildir-mtime patch [myon]
+
+== 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,10 +355,27 @@ 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))
+ 	{
+@@ -366,17 +385,21 @@ int mutt_buffy_check (int force)
+ 	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;
+@@ -385,12 +408,36 @@ int mutt_buffy_check (int force)
+ 	  {
+ 	    if (!tmp->new)
+ 	    {
+-	      /* one new and undeleted message is enough */
+-	      BuffyCount++;
+-	      tmp->new = 1;
+-
+-	      if (! option (OPTMAILDIRMTIME)) /* prevent stat calls */
+-		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++;
++             }
+ 	    }
+ 	    snprintf (path, sizeof (path), "%s/new/%s", tmp->path, de->d_name);
+ 	    if (!stat (path, &smd) && smd.st_mtime > tmp->mtime)
+@@ -403,8 +450,25 @@ int mutt_buffy_check (int force)
+ 	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,8 +25,13 @@ typedef struct buffy_t
+   char *path;
+   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 */
++  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"
+ void set_xterm_title_bar(char *title);
+ void set_xterm_icon_name(char *name);
+ 
+@@ -1069,6 +1070,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));
+@@ -1702,7 +1705,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;
+@@ -1715,6 +1718,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);
+@@ -1728,6 +1732,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. */
+@@ -1751,22 +1756,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))
+@@ -1783,18 +1788,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)) {
+@@ -2673,6 +2683,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.20080517.txt
--- mutt-1.5.18.orig/debian/patches/debian-specific/correct_docdir_in_man_page.diff
+++ mutt-1.5.18/debian/patches/debian-specific/correct_docdir_in_man_page.diff
@@ -0,0 +1,11 @@
+--- 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
--- mutt-1.5.18.orig/debian/patches/debian-specific/document_debian_defaults
+++ mutt-1.5.18/debian/patches/debian-specific/document_debian_defaults
@@ -0,0 +1,73 @@
+--- a/init.h
++++ b/init.h
+@@ -295,6 +295,9 @@ struct option_t MuttVars[] = {
+   ** .pp
+   ** When this variable is set, mutt will include Delivered-To headers when
+   ** bouncing messages.  Postfix users may wish to unset 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 },
+   /*
+@@ -825,6 +828,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 },
+   /*
+@@ -1338,6 +1344,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
+ 
+@@ -1887,6 +1896,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 },
+   /*
+@@ -2093,6 +2106,9 @@ struct option_t MuttVars[] = {
+   ** certificates are also automatically accepted.
+   ** .pp
+   ** Example: set ssl_ca_certificates_file=/etc/ssl/certs/ca-certificates.crt
++  ** .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) */
+@@ -2683,6 +2699,9 @@ struct option_t MuttVars[] = {
+   ** .pp
+   ** You may optionally use the reverse- prefix to specify reverse sorting
+   ** order (example: set sort=reverse-date-sent).
++  ** .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 },
+   /*
+@@ -3100,6 +3119,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?"},
+   /*
--- mutt-1.5.18.orig/debian/patches/debian-specific/assumed_charset-compat
+++ mutt-1.5.18/debian/patches/debian-specific/assumed_charset-compat
@@ -0,0 +1,17 @@
+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
--- mutt-1.5.18.orig/debian/patches/debian-specific/Muttrc
+++ mutt-1.5.18/debian/patches/debian-specific/Muttrc
@@ -0,0 +1,67 @@
+--- a/doc/Muttrc.head
++++ b/doc/Muttrc.head
+@@ -6,6 +6,36 @@
+ #
+ ignore "from " received content- mime-version status x-status message-id
+ ignore sender references return-path lines
++ignore date delivered-to precedence errors-to in-reply-to user-agent
++ignore x-loop x-sender x-mailer x-msmail-priority x-mimeole x-ms- x-priority
++ignore x-accept-language x-authentication-warning thread- priority importance
++ignore x-original-to domainkey-signature dkim-signature
++
++# 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"
+@@ -18,7 +48,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"
+@@ -30,7 +60,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
+ 
+@@ -92,6 +122,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
+ ##
--- mutt-1.5.18.orig/debian/patches/debian-specific/sort-patchlist
+++ mutt-1.5.18/debian/patches/debian-specific/sort-patchlist
@@ -0,0 +1,12 @@
+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 "}"
--- mutt-1.5.18.orig/debian/patches/debian-specific/use_usr_bin_editor.diff
+++ mutt-1.5.18/debian/patches/debian-specific/use_usr_bin_editor.diff
@@ -0,0 +1,22 @@
+--- a/init.c
++++ b/init.c
+@@ -3070,7 +3070,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
+@@ -552,7 +552,7 @@ struct option_t MuttVars[] = {
+   ** .pp
+   ** This variable specifies which editor is used by mutt.
+   ** It defaults to the value of the VISUAL, or EDITOR, 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 },
+   /*
--- mutt-1.5.18.orig/debian/patches/debian-specific/dont_document_not_present_features.diff
+++ mutt-1.5.18/debian/patches/debian-specific/dont_document_not_present_features.diff
@@ -0,0 +1,22 @@
+--- 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 */
--- mutt-1.5.18.orig/debian/patches/debian-specific/build_doc_adjustments.diff
+++ mutt-1.5.18/debian/patches/debian-specific/build_doc_adjustments.diff
@@ -0,0 +1,27 @@
+--- a/doc/Makefile.am
++++ b/doc/Makefile.am
+@@ -100,8 +100,9 @@ uninstall-local:
+ 
+ check:
+ manual.txt: manual.html db-cleanup.xsl
+-	-xsltproc --nonet -o manual-txt.html $(srcdir)/db-cleanup.xsl manual.html || cp manual.html manual-txt.html
+-	-lynx -dump -nolist -with_backspaces manual-txt.html > $@ || \
++	xsltproc --nonet -o manual-txt.html $(srcdir)/db-cleanup.xsl manual.html || cp manual.html manual-txt.html
++	links.main -dump $< > $@ || links -dump $< > $@ || \
++	lynx -dump -nolist -with_backspaces manual-txt.html > $@ || \
+ 	w3m -dump manual-txt.html > $@ || \
+ 	elinks -dump -no-numbering -no-references manual-txt.html > $@
+ 
+@@ -115,10 +116,10 @@ stamp-doc-rc: $(top_srcdir)/init.h maked
+ 	touch stamp-doc-rc
+ 
+ manual.html: $(srcdir)/html.xsl stamp-doc-xml
+-	-xsltproc --nonet -o $@ $(srcdir)/html.xsl manual.xml
++	xsltproc --nonet -o $@ $(srcdir)/html.xsl manual.xml
+ 
+ stamp-doc-chunked: $(srcdir)/chunk.xsl stamp-doc-xml
+-	-xsltproc --nonet $(srcdir)/chunk.xsl manual.xml
++	xsltproc --nonet $(srcdir)/chunk.xsl manual.xml
+ 	touch stamp-doc-chunked
+ 
+ $(HTML_DOCFILES): stamp-doc-chunked
--- mutt-1.5.18.orig/debian/patches/debian-specific/Md.etc_mailname_gethostbyname.diff
+++ mutt-1.5.18/debian/patches/debian-specific/Md.etc_mailname_gethostbyname.diff
@@ -0,0 +1,68 @@
+--- 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)
--- mutt-1.5.18.orig/debian/patches/mutt.org
+++ mutt-1.5.18/debian/patches/mutt.org
@@ -0,0 +1,4 @@
+--- /dev/null
++++ b/.mutt.org
+@@ -0,0 +1 @@
++# dummy patch to serve as marker separating patches for mutt-patched
--- mutt-1.5.18.orig/debian/patches/features-old/patch-1.5.4.vk.pgp_verbose_mime
+++ mutt-1.5.18/debian/patches/features-old/patch-1.5.4.vk.pgp_verbose_mime
@@ -0,0 +1,50 @@
+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
--- mutt-1.5.18.orig/debian/patches/series
+++ mutt-1.5.18/debian/patches/series
@@ -0,0 +1,35 @@
+# 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
+
+mutt.org
+# extra patches for mutt-patched
+mutt-patched/sidebar
+
+# unapplied patches for custom packages
+# not-applied/chdir
+# not-applied/indexcolor
+# not-applied/w3mface
--- mutt-1.5.18.orig/debian/bug/script
+++ mutt-1.5.18/debian/bug/script
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+echo "Including output of \`mutt -v'..."
+
+LC_ALL=C mutt -v >&3
--- mutt-1.5.18.orig/debian/bug/control
+++ mutt-1.5.18/debian/bug/control
@@ -0,0 +1 @@
+package-status: mutt mutt-patched mutt-dbg
--- mutt-1.5.18.orig/debian/mutt.mime
+++ mutt-1.5.18/debian/mutt.mime
@@ -0,0 +1 @@
+message/rfc822; mutt -Rf '%s'; edit=mutt -f '%s'; needsterminal
--- mutt-1.5.18.orig/debian/mutt.install
+++ mutt-1.5.18/debian/mutt.install
@@ -0,0 +1,16 @@
+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
+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
--- mutt-1.5.18.orig/debian/mutt-patched.preinst
+++ mutt-1.5.18/debian/mutt-patched.preinst
@@ -0,0 +1,14 @@
+#!/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
--- mutt-1.5.18.orig/debian/mutt-patched.links
+++ mutt-1.5.18/debian/mutt-patched.links
@@ -0,0 +1 @@
+usr/share/doc/mutt usr/share/doc/mutt-patched
--- mutt-1.5.18.orig/debian/extra/lib/mailspell
+++ mutt-1.5.18/debian/extra/lib/mailspell
@@ -0,0 +1,77 @@
+#!/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;
--- mutt-1.5.18.orig/debian/extra/lib/debian-ldap-query
+++ mutt-1.5.18/debian/extra/lib/debian-ldap-query
@@ -0,0 +1,48 @@
+#!/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;
--- mutt-1.5.18.orig/debian/extra/lib/source-muttrc.d
+++ mutt-1.5.18/debian/extra/lib/source-muttrc.d
@@ -0,0 +1,7 @@
+#!/bin/sh -e
+
+for rc in /etc/Muttrc.d/*.rc; do
+    test -r "$rc" && echo "source \"$rc\""
+done
+
+# vi: ft=sh
--- mutt-1.5.18.orig/debian/extra/mutt.xpm
+++ mutt-1.5.18/debian/extra/mutt.xpm
@@ -0,0 +1,49 @@
+/* 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",
+"                                ",
+"                      ==        ",
+"                    ++          ",
+"                   +..@@        ",
+"                  +.,.+         ",
+"       +          +.,.+  +++    ",
+"      +          @+.,.+ +@@     ",
+"    @+           +....+++.@     ",
+"    +.@         @+.......+      ",
+"    +.+         +@....+.+       ",
+"    +.+        @+.....+.+       ",
+"    +.+@       +@........++++   ",
+"    +.@+      @+.........+;;>   ",
+"    +..+++++++%@$#.......+.--   ",
+"    @@.@+&%&+@%%@@.......+>->   ",
+"     +..@+++@.@%%@$@......+++   ",
+"     +.........@%%+@$$....+     ",
+"    @@$.........@%%++@$..$+     ",
+"    +@@..........*%%++@@$+      ",
+"    +@@...........@%%++++       ",
+"    +@$............@+           ",
+"    +@@...#.......@+            ",
+"    @+@.#$+@@@...$++            ",
+"     +..$+@*@+..$+@+            ",
+"    @@.@++++++$.+@*+            ",
+"   @+..+*@@+=+@.+@.+            ",
+"   +@..+++@+++@..++@@+@         ",
+"   +@.....+@@+@.....+@.@        ",
+"   +$.....+@*+$.....+@.+        ",
+"   +@@.$..+@@+@@.$..+@.+        ",
+"   @++++++@++@++++++@++@        ",
+"                                "};
--- mutt-1.5.18.orig/debian/extra/rc/Muttrc.foot
+++ mutt-1.5.18/debian/extra/rc/Muttrc.foot
@@ -0,0 +1,2 @@
+# See /usr/share/doc/mutt/README.Debian for details.
+source /usr/lib/mutt/source-muttrc.d|
--- mutt-1.5.18.orig/debian/extra/rc/compressed-folders.rc
+++ mutt-1.5.18/debian/extra/rc/compressed-folders.rc
@@ -0,0 +1,8 @@
+# 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'"
+
--- mutt-1.5.18.orig/debian/extra/rc/charset.rc
+++ mutt-1.5.18/debian/extra/rc/charset.rc
@@ -0,0 +1,9 @@
+# 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
+
--- mutt-1.5.18.orig/debian/extra/rc/colors.rc
+++ mutt-1.5.18/debian/extra/rc/colors.rc
@@ -0,0 +1,19 @@
+# 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]+
+
--- mutt-1.5.18.orig/debian/extra/rc/smime-paths.rc
+++ mutt-1.5.18/debian/extra/rc/smime-paths.rc
@@ -0,0 +1,20 @@
+# S/MIME configuration
+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 [ -f $f ] ; then echo $f ; exit ; fi ; done`
+set smime_certificates="~/.smime/certificates"
+set smime_keys="~/.smime/keys"
+set smime_pk7out_command="openssl smime -verify -in %f -noverify -pk7out"
+set smime_get_cert_command="openssl pkcs7 -print_certs -in %f"
+set smime_get_signer_cert_command="openssl smime -verify -in %f -noverify -signer %c -out /dev/null"
+set smime_get_cert_email_command="openssl x509 -in %f -noout -email"
+set smime_import_cert_command="smime_keys add_cert %f"
+set smime_encrypt_command="openssl smime -encrypt %a -outform DER -in %f %c"
+set smime_sign_command="openssl smime -sign -signer %c -inkey %k -passin stdin -in %f -certfile %i -outform DER"
+# This alternative command does not include the full certificates chain.
+# Be sure to understand RFC 2315 section 9.1 before using it.
+#set smime_sign_command="openssl smime -sign -signer %c -inkey %k -passin stdin -in %f -outform DER"
+set smime_decrypt_command="openssl smime -decrypt -passin stdin -inform DER -in %f -inkey %k -recip %c"
+set smime_verify_command="openssl smime -verify -inform DER -in %s %C -content %f"
+set smime_verify_opaque_command="\
+openssl smime -verify -inform DER -in %s %C || \
+openssl smime -verify -inform DER -in %s -noverify 2>/dev/null"
+
--- mutt-1.5.18.orig/debian/extra/samples/colors.angdraug
+++ mutt-1.5.18/debian/extra/samples/colors.angdraug
@@ -0,0 +1,91 @@
+# 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'
--- mutt-1.5.18.orig/debian/extra/samples/ray.muttrc
+++ mutt-1.5.18/debian/extra/samples/ray.muttrc
@@ -0,0 +1,48 @@
+# 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.*"
+
+
--- mutt-1.5.18.orig/debian/extra/mutt-patched.rc/sidebar.rc
+++ mutt-1.5.18/debian/extra/mutt-patched.rc/sidebar.rc
@@ -0,0 +1,5 @@
+# Configuration for the sidebar patch.
+# See /usr/share/doc/mutt/README.Patches for documentation.
+
+ifdef sidebar_visible set sidebar_visible sidebar_width=20
+
--- mutt-1.5.18.orig/debian/extra/README.SMIME
+++ mutt-1.5.18/debian/extra/README.SMIME
@@ -0,0 +1,56 @@
+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>
+
--- mutt-1.5.18.orig/debian/mutt.manpages
+++ mutt-1.5.18/debian/mutt.manpages
@@ -0,0 +1,5 @@
+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
--- mutt-1.5.18.orig/debian/mutt.dirs
+++ mutt-1.5.18/debian/mutt.dirs
@@ -0,0 +1,2 @@
+etc/Muttrc.d
+usr/share/bug/mutt
--- mutt-1.5.18.orig/debian/header.awk
+++ mutt-1.5.18/debian/header.awk
@@ -0,0 +1,23 @@
+#! /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
+}
--- mutt-1.5.18.orig/debian/fix-PATCHES.pl
+++ mutt-1.5.18/debian/fix-PATCHES.pl
@@ -0,0 +1,30 @@
+#!/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;
+	}
+}
+
--- mutt-1.5.18.orig/debian/copyright
+++ mutt-1.5.18/debian/copyright
@@ -0,0 +1,81 @@
+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.
+
+Main authors:
+    Copyright (C) 1996-2006 Michael R. Elkins <me@cs.hmc.edu>
+    Copyright (C) 1996-2001 Brandon Long <blong@fiction.net>
+    Copyright (C) 1997-2007 Thomas Roessler <roessler@guug.de>
+    Copyright (C) 1998-2003 Werner Koch <wk@isil.d.shuttle.de>
+    Copyright (C) 1999-2007 Brendan Cully <brendan@kublai.com>
+
+Contributors:
+    Copyright (C) 2001 Marco d'Itri
+    Copyright (C) 2001-2002 Oliver Ehli
+    Copyright (C) 2000-2001 Edmund Grimley Evans <edmundo@rano.org>
+    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) 1999-2001 Tommi Komulainen <Tommi.Komulainen@iki.fi>
+    Copyright (C) 2001-2004 Andrew McDonald
+    Copyright (C) 2001 Mike Schiraldi
+    Copyright (C) 2005-2007 Rocco Rutte
+    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>
+
+    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.
+
+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'.
--- mutt-1.5.18.orig/debian/mutt.examples
+++ mutt-1.5.18/debian/mutt.examples
@@ -0,0 +1,3 @@
+debian/extra/samples/*
+debian/tmp/etc/Muttrc
+debian/tmp/usr/share/doc/samples/*
--- mutt-1.5.18.orig/debian/watch
+++ mutt-1.5.18/debian/watch
@@ -0,0 +1,2 @@
+version=3
+opts=pasv ftp://ftp.mutt.org/mutt/devel/mutt-(.*).tar.gz
--- mutt-1.5.18.orig/debian/MY-TODO
+++ mutt-1.5.18/debian/MY-TODO
@@ -0,0 +1,7 @@
+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
--- mutt-1.5.18.orig/debian/mutt-patched.install
+++ mutt-1.5.18/debian/mutt-patched.install
@@ -0,0 +1 @@
+debian/extra/mutt-patched.rc/*.rc etc/Muttrc.d
--- mutt-1.5.18.orig/debian/control
+++ mutt-1.5.18/debian/control
@@ -0,0 +1,54 @@
+Source: mutt
+Section: mail
+Priority: standard
+Maintainer: Christoph Berg <myon@debian.org>
+Uploaders: Adeodato SimÃ³ <dato@net.com.org.es>
+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
+Standards-Version: 3.8.0
+XS-Vcs-Bzr: http://bzr.debian.org/pkg-mutt/unstable
+Homepage: http://www.mutt.org/
+
+Package: mutt
+Architecture: any
+Priority: standard
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Recommends: exim4 | mail-transport-agent, locales, mime-support
+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.
--- mutt-1.5.18.orig/debian/rules
+++ mutt-1.5.18/debian/rules
@@ -0,0 +1,191 @@
+#!/usr/bin/make -f
+
+include /usr/share/quilt/quilt.make
+
+###
+# header cache backend
+# HCACHE_DB := bdb
+HCACHE_DB := gdbm
+# HCACHE_DB := qdbm
+###
+# GPGME backend
+# GPGME := --enable-gpgme
+###
+
+# 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-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)
+
+$(objdir)-patched/build-stamp: $(QUILT_STAMPFN)
+	dh_testdir
+	dh_clean
+	
+	###################### building mutt-patched ######################
+	autoreconf --install --include=m4
+	-mkdir $(objdir)-patched
+	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)"
+	
+	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 && \
+	mv ChangeLog.old changelog.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
+	
+	# 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
+	
+	# 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
+	mv debian/mutt-patched/usr/bin/mutt-patched debian/mutt-patched/usr/bin/mutt
+	
+	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
--- mutt-1.5.18.orig/debian/compat
+++ mutt-1.5.18/debian/compat
@@ -0,0 +1 @@
+5
--- mutt-1.5.18.orig/debian/changelog
+++ mutt-1.5.18/debian/changelog
@@ -0,0 +1,1449 @@
+mutt (1.5.18-2~bpo40+1) etch-backports; urgency=low
+
+  * Rebuild for etch-backports.
+
+ -- Christoph Berg <myon@debian.org>  Tue, 08 Jul 2008 09:14:30 +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
+
