+++ /dev/null
-diff -Nur mutt-1.2.5.orig/acinclude.m4 mutt-1.2.5/acinclude.m4
---- mutt-1.2.5.orig/acinclude.m4 Thu Jan 1 01:00:00 1970
-+++ mutt-1.2.5/acinclude.m4 Sat Mar 10 15:31:34 2001
-@@ -0,0 +1,457 @@
-+dnl ---------------------------------------------------------------------------
-+dnl Check if a function is declared by including a set of include files.
-+dnl Invoke the corresponding actions according to whether it is found or not.
-+dnl
-+dnl Gcc (unlike other compilers) will only warn about the miscast assignment
-+dnl in the first test, but most compilers will oblige with an error in the
-+dnl second test.
-+dnl
-+dnl CF_CHECK_FUNCDECL(INCLUDES, FUNCTION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
-+AC_DEFUN([CF_CHECK_FUNCDECL],
-+[
-+AC_MSG_CHECKING([for $2 declaration])
-+AC_CACHE_VAL(ac_cv_func_decl_$2,
-+[AC_TRY_COMPILE([$1],
-+[#ifndef ${ac_func}
-+extern int ${ac_func}();
-+#endif],[
-+AC_TRY_COMPILE([$1],
-+[#ifndef ${ac_func}
-+int (*p)() = ${ac_func};
-+#endif],[
-+eval "ac_cv_func_decl_$2=yes"],[
-+eval "ac_cv_func_decl_$2=no"])],[
-+eval "ac_cv_func_decl_$2=yes"])])
-+if eval "test \"`echo '$ac_cv_func_'decl_$2`\" = yes"; then
-+ AC_MSG_RESULT(yes)
-+ ifelse([$3], , :, [$3])
-+else
-+ AC_MSG_RESULT(no)
-+ifelse([$4], , , [$4
-+])dnl
-+fi
-+])dnl
-+dnl ---------------------------------------------------------------------------
-+dnl Check if functions are declared by including a set of include files.
-+dnl and define DECL_XXX if not.
-+dnl
-+dnl CF_CHECK_FUNCDECLS(INCLUDES, FUNCTION... [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
-+AC_DEFUN([CF_CHECK_FUNCDECLS],
-+[for ac_func in $2
-+do
-+CF_CHECK_FUNCDECL([$1], $ac_func,
-+[
-+ CF_UPPER(ac_tr_func,HAVE_$ac_func)
-+ AC_DEFINE_UNQUOTED($ac_tr_func) $3],
-+[$4])dnl
-+dnl [$3],
-+dnl [
-+dnl CF_UPPER(ac_tr_func,DECL_$ac_func)
-+dnl AC_DEFINE_UNQUOTED($ac_tr_func) $4])dnl
-+done
-+])dnl
-+dnl ---------------------------------------------------------------------------
-+dnl Make an uppercase version of a variable
-+dnl $1=uppercase($2)
-+AC_DEFUN([CF_UPPER],
-+[
-+changequote(,)dnl
-+$1=`echo $2 | tr '[a-z]' '[A-Z]'`
-+changequote([,])dnl
-+])dnl
-+dnl ---------------------------------------------------------------------------
-+
-+# Macro to add for using GNU gettext.
-+# Ulrich Drepper <drepper@cygnus.com>, 1995.
-+
-+#
-+# Slightly modified by Thomas Roessler <roessler@guug.de>
-+#
-+
-+#
-+# This file can be copied and used freely without restrictions. It can
-+# be used in projects which are not available under the GNU Public License
-+# but which still want to provide support for the GNU gettext functionality.
-+# Please note that the actual code is *not* freely available.
-+
-+# serial 105
-+
-+AC_DEFUN(MUTT_AM_WITH_NLS,
-+ [AC_MSG_CHECKING([whether NLS is requested])
-+ dnl Default is enabled NLS
-+ AC_ARG_ENABLE(nls,
-+ [ --disable-nls do not use Native Language Support],
-+ USE_NLS=$enableval, USE_NLS=yes)
-+ AC_MSG_RESULT($USE_NLS)
-+ AC_SUBST(USE_NLS)
-+
-+ USE_INCLUDED_LIBINTL=no
-+
-+ dnl If we use NLS figure out what method
-+ if test "$USE_NLS" = "yes"; then
-+ AC_DEFINE(ENABLE_NLS)
-+ AC_MSG_CHECKING([whether included gettext is requested])
-+ AC_ARG_WITH(included-gettext,
-+ [ --with-included-gettext use the GNU gettext library included here],
-+ nls_cv_force_use_gnu_gettext=$withval,
-+ nls_cv_force_use_gnu_gettext=no)
-+ AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
-+
-+ nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
-+ if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
-+ dnl User does not insist on using GNU NLS library. Figure out what
-+ dnl to use. If gettext or catgets are available (in this order) we
-+ dnl use this. Else we have to fall back to GNU NLS library.
-+ dnl catgets is only used if permitted by option --with-catgets.
-+ nls_cv_header_intl=
-+ nls_cv_header_libgt=
-+ CATOBJEXT=NONE
-+
-+ AC_CHECK_HEADER(libintl.h,
-+ [AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc,
-+ [AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")],
-+ gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)])
-+
-+ if test "$gt_cv_func_gettext_libc" != "yes"; then
-+ AC_CHECK_LIB(intl, bindtextdomain,
-+ [AC_CHECK_LIB(intl, gettext,
-+ gt_cv_func_gettext_libintl=yes,
-+ gt_cv_func_gettext_libintl=no)])
-+ fi
-+
-+ if test "$gt_cv_func_gettext_libintl" = yes; then
-+ LIBS="$LIBS -lintl"
-+ fi
-+
-+ if test "$gt_cv_func_gettext_libc" = "yes" \
-+ || test "$gt_cv_func_gettext_libintl" = "yes"; then
-+ AC_DEFINE(HAVE_GETTEXT)
-+ MUTT_AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
-+ [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
-+ if test "$MSGFMT" != "no"; then
-+ AC_CHECK_FUNCS(dcgettext)
-+ AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
-+ MUTT_AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
-+ [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
-+ AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
-+ return _nl_msg_cat_cntr],
-+ [CATOBJEXT=.gmo
-+ DATADIRNAME=share],
-+ [CATOBJEXT=.mo
-+ DATADIRNAME=lib])
-+ INSTOBJEXT=.mo
-+ fi
-+ fi
-+ ])
-+
-+ if test "$CATOBJEXT" = "NONE"; then
-+ AC_MSG_CHECKING([whether catgets can be used])
-+ AC_ARG_WITH(catgets,
-+ [ --with-catgets use catgets functions if available],
-+ nls_cv_use_catgets=$withval, nls_cv_use_catgets=no)
-+ AC_MSG_RESULT($nls_cv_use_catgets)
-+
-+ if test "$nls_cv_use_catgets" = "yes"; then
-+ dnl No gettext in C library. Try catgets next.
-+ AC_CHECK_LIB(i, main)
-+ AC_CHECK_FUNC(catgets,
-+ [AC_DEFINE(HAVE_CATGETS)
-+ INTLOBJS="\$(CATOBJS)"
-+ AC_PATH_PROG(GENCAT, gencat, no)dnl
-+ if test "$GENCAT" != "no"; then
-+ AC_PATH_PROG(GMSGFMT, gmsgfmt, no)
-+ if test "$GMSGFMT" = "no"; then
-+ MUTT_AM_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt,
-+ [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)
-+ fi
-+ MUTT_AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
-+ [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
-+ USE_INCLUDED_LIBINTL=yes
-+ CATOBJEXT=.cat
-+ INSTOBJEXT=.cat
-+ DATADIRNAME=lib
-+ INTLDEPS='$(top_builddir)/intl/libintl.a'
-+ INTLLIBS=$INTLDEPS
-+ LIBS=`echo $LIBS | sed -e 's/-lintl//'`
-+ nls_cv_header_intl=intl/libintl.h
-+ nls_cv_header_libgt=intl/libgettext.h
-+ fi])
-+ fi
-+ fi
-+
-+ if test "$CATOBJEXT" = "NONE"; then
-+ dnl Neither gettext nor catgets in included in the C library.
-+ dnl Fall back on GNU gettext library.
-+ nls_cv_use_gnu_gettext=yes
-+ fi
-+ fi
-+
-+ if test "$nls_cv_use_gnu_gettext" = "yes"; then
-+ dnl Mark actions used to generate GNU NLS library.
-+ INTLOBJS="\$(GETTOBJS)"
-+ MUTT_AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
-+ [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt)
-+ AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
-+ MUTT_AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
-+ [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
-+ AC_SUBST(MSGFMT)
-+ USE_INCLUDED_LIBINTL=yes
-+ CATOBJEXT=.gmo
-+ INSTOBJEXT=.mo
-+ DATADIRNAME=share
-+ INTLDEPS='$(top_builddir)/intl/libintl.a'
-+ INTLLIBS=$INTLDEPS
-+ LIBS=`echo $LIBS | sed -e 's/-lintl//'`
-+ nls_cv_header_intl=intl/libintl.h
-+ nls_cv_header_libgt=intl/libgettext.h
-+ fi
-+
-+ dnl Test whether we really found GNU xgettext.
-+ if test "$XGETTEXT" != ":"; then
-+ dnl If it is no GNU xgettext we define it as : so that the
-+ dnl Makefiles still can work.
-+ if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
-+ : ;
-+ else
-+ AC_MSG_RESULT(
-+ [found xgettext program is not GNU xgettext; ignore it])
-+ XGETTEXT=":"
-+ fi
-+ fi
-+
-+ # We need to process the po/ directory.
-+ POSUB=po
-+ else
-+ DATADIRNAME=share
-+ nls_cv_header_intl=intl/libintl.h
-+ nls_cv_header_libgt=intl/libgettext.h
-+ fi
-+ if test -z "$nsl_cv_header_intl"; then
-+ # Clean out junk possibly left behind by a previous configuration.
-+ rm -f intl/libintl.h
-+ fi
-+ AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl)
-+ AC_OUTPUT_COMMANDS(
-+ [case "$CONFIG_FILES" in *po/Makefile.in*)
-+ sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
-+ esac])
-+
-+
-+ # If this is used in GNU gettext we have to set USE_NLS to `yes'
-+ # because some of the sources are only built for this goal.
-+ if test "$PACKAGE" = gettext; then
-+ USE_NLS=yes
-+ USE_INCLUDED_LIBINTL=yes
-+ fi
-+
-+ dnl These rules are solely for the distribution goal. While doing this
-+ dnl we only have to keep exactly one list of the available catalogs
-+ dnl in configure.in.
-+ for lang in $ALL_LINGUAS; do
-+ GMOFILES="$GMOFILES $lang.gmo"
-+ POFILES="$POFILES $lang.po"
-+ done
-+
-+ dnl Make all variables we use known to autoconf.
-+ AC_SUBST(USE_INCLUDED_LIBINTL)
-+ AC_SUBST(CATALOGS)
-+ AC_SUBST(CATOBJEXT)
-+ AC_SUBST(DATADIRNAME)
-+ AC_SUBST(GMOFILES)
-+ AC_SUBST(INSTOBJEXT)
-+ AC_SUBST(INTLDEPS)
-+ AC_SUBST(INTLLIBS)
-+ AC_SUBST(INTLOBJS)
-+ AC_SUBST(POFILES)
-+ AC_SUBST(POSUB)
-+ ])
-+
-+AC_DEFUN(MUTT_AM_GNU_GETTEXT,
-+ [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
-+ AC_REQUIRE([AC_PROG_CC])dnl
-+ AC_REQUIRE([AC_PROG_RANLIB])dnl
-+ AC_REQUIRE([AC_ISC_POSIX])dnl
-+ AC_REQUIRE([AC_HEADER_STDC])dnl
-+ AC_REQUIRE([AC_C_CONST])dnl
-+ AC_REQUIRE([AC_C_INLINE])dnl
-+ AC_REQUIRE([AC_TYPE_OFF_T])dnl
-+ AC_REQUIRE([AC_TYPE_SIZE_T])dnl
-+ AC_REQUIRE([AC_FUNC_ALLOCA])dnl
-+ AC_REQUIRE([AC_FUNC_MMAP])dnl
-+
-+ AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \
-+unistd.h sys/param.h])
-+ AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \
-+strdup __argz_count __argz_stringify __argz_next])
-+
-+ if test "${ac_cv_func_stpcpy+set}" != "set"; then
-+ AC_CHECK_FUNCS(stpcpy)
-+ fi
-+ if test "${ac_cv_func_stpcpy}" = "yes"; then
-+ AC_DEFINE(HAVE_STPCPY)
-+ fi
-+
-+ MUTT_AM_LC_MESSAGES
-+ MUTT_AM_WITH_NLS
-+
-+ if test "x$CATOBJEXT" != "x"; then
-+ if test "x$ALL_LINGUAS" = "x"; then
-+ LINGUAS=
-+ else
-+ AC_MSG_CHECKING(for catalogs to be installed)
-+ NEW_LINGUAS=
-+ for lang in ${LINGUAS=$ALL_LINGUAS}; do
-+ case "$ALL_LINGUAS" in
-+ *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
-+ esac
-+ done
-+ LINGUAS=$NEW_LINGUAS
-+ AC_MSG_RESULT($LINGUAS)
-+ fi
-+
-+ dnl Construct list of names of catalog files to be constructed.
-+ if test -n "$LINGUAS"; then
-+ for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
-+ fi
-+ fi
-+
-+ dnl The reference to <locale.h> in the installed <libintl.h> file
-+ dnl must be resolved because we cannot expect the users of this
-+ dnl to define HAVE_LOCALE_H.
-+ if test $ac_cv_header_locale_h = yes; then
-+ INCLUDE_LOCALE_H="#include <locale.h>"
-+ else
-+ INCLUDE_LOCALE_H="\
-+/* The system does not provide the header <locale.h>. Take care yourself. */"
-+ fi
-+ AC_SUBST(INCLUDE_LOCALE_H)
-+
-+ dnl Determine which catalog format we have (if any is needed)
-+ dnl For now we know about two different formats:
-+ dnl Linux libc-5 and the normal X/Open format
-+ test -d intl || mkdir intl
-+ if test "$CATOBJEXT" = ".cat"; then
-+ AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen)
-+
-+ dnl Transform the SED scripts while copying because some dumb SEDs
-+ dnl cannot handle comments.
-+ sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed
-+ fi
-+ dnl po2tbl.sed is always needed.
-+ sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \
-+ $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed
-+
-+ dnl In the intl/Makefile.in we have a special dependency which makes
-+ dnl only sense for gettext. We comment this out for non-gettext
-+ dnl packages.
-+ if test "$PACKAGE" = "gettext"; then
-+ GT_NO="#NO#"
-+ GT_YES=
-+ else
-+ GT_NO=
-+ GT_YES="#YES#"
-+ fi
-+ AC_SUBST(GT_NO)
-+ AC_SUBST(GT_YES)
-+
-+ dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
-+ dnl find the mkinstalldirs script in another subdir but ($top_srcdir).
-+ dnl Try to locate is.
-+ MKINSTALLDIRS=
-+ if test -n "$ac_aux_dir"; then
-+ MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
-+ fi
-+ if test -z "$MKINSTALLDIRS"; then
-+ MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
-+ fi
-+ AC_SUBST(MKINSTALLDIRS)
-+
-+ dnl *** For now the libtool support in intl/Makefile is not for real.
-+ l=
-+ AC_SUBST(l)
-+
-+ dnl Generate list of files to be processed by xgettext which will
-+ dnl be included in po/Makefile.
-+ test -d po || mkdir po
-+ if test "x$srcdir" != "x."; then
-+ if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
-+ posrcprefix="$srcdir/"
-+ else
-+ posrcprefix="../$srcdir/"
-+ fi
-+ else
-+ posrcprefix="../"
-+ fi
-+ rm -f po/POTFILES
-+ sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
-+ < $srcdir/po/POTFILES.in > po/POTFILES
-+ ])
-+
-+# Search path for a program which passes the given test.
-+# Ulrich Drepper <drepper@cygnus.com>, 1996.
-+#
-+# This file can be copied and used freely without restrictions. It can
-+# be used in projects which are not available under the GNU Public License
-+# but which still want to provide support for the GNU gettext functionality.
-+# Please note that the actual code is *not* freely available.
-+
-+# serial 1
-+
-+dnl MUTT_AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
-+dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
-+AC_DEFUN(MUTT_AM_PATH_PROG_WITH_TEST,
-+[# Extract the first word of "$2", so it can be a program name with args.
-+set dummy $2; ac_word=[$]2
-+AC_MSG_CHECKING([for $ac_word])
-+AC_CACHE_VAL(ac_cv_path_$1,
-+[case "[$]$1" in
-+ /*)
-+ ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
-+ ;;
-+ *)
-+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-+ for ac_dir in ifelse([$5], , $PATH, [$5]); do
-+ test -z "$ac_dir" && ac_dir=.
-+ if test -f $ac_dir/$ac_word; then
-+ if [$3]; then
-+ ac_cv_path_$1="$ac_dir/$ac_word"
-+ break
-+ fi
-+ fi
-+ done
-+ IFS="$ac_save_ifs"
-+dnl If no 4th arg is given, leave the cache variable unset,
-+dnl so AC_PATH_PROGS will keep looking.
-+ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
-+])dnl
-+ ;;
-+esac])dnl
-+$1="$ac_cv_path_$1"
-+if test -n "[$]$1"; then
-+ AC_MSG_RESULT([$]$1)
-+else
-+ AC_MSG_RESULT(no)
-+fi
-+AC_SUBST($1)dnl
-+])
-+
-+# Check whether LC_MESSAGES is available in <locale.h>.
-+# Ulrich Drepper <drepper@cygnus.com>, 1995.
-+#
-+# This file can be copied and used freely without restrictions. It can
-+# be used in projects which are not available under the GNU Public License
-+# but which still want to provide support for the GNU gettext functionality.
-+# Please note that the actual code is *not* freely available.
-+
-+# serial 1
-+
-+AC_DEFUN(MUTT_AM_LC_MESSAGES,
-+ [if test $ac_cv_header_locale_h = yes; then
-+ AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
-+ [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
-+ am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
-+ if test $am_cv_val_LC_MESSAGES = yes; then
-+ AC_DEFINE(HAVE_LC_MESSAGES)
-+ fi
-+ fi])
-+
+++ /dev/null
-diff -ur mutt-1.1.11.orig/curs_main.c mutt-1.1.11/curs_main.c
---- mutt-1.1.11.orig/curs_main.c Sun Apr 16 16:38:52 2000
-+++ mutt-1.1.11/curs_main.c Mon Apr 17 18:54:09 2000
-@@ -399,8 +399,8 @@
-
- menu = mutt_new_menu ();
- menu->menu = MENU_MAIN;
-- menu->offset = 1;
-- menu->pagelen = LINES - 3;
-+ menu->offset = 1 + BlankLines;
-+ menu->pagelen = LINES - 3 - 2*BlankLines;
- menu->make_entry = index_make_entry;
- menu->color = index_color;
- menu->current = ci_first_message ();
-diff -ur mutt-1.1.11.orig/globals.h mutt-1.1.11/globals.h
---- mutt-1.1.11.orig/globals.h Fri Mar 3 11:10:08 2000
-+++ mutt-1.1.11/globals.h Mon Apr 17 18:54:09 2000
-@@ -122,6 +122,7 @@
-
- WHERE unsigned short Counter INITVAL (0);
-
-+WHERE short BlankLines;
- WHERE short HistSize;
- WHERE short PagerContext;
- WHERE short PagerIndexLines;
-diff -ur mutt-1.1.11.orig/init.h mutt-1.1.11/init.h
---- mutt-1.1.11.orig/init.h Sun Apr 16 16:38:53 2000
-+++ mutt-1.1.11/init.h Mon Apr 17 18:54:09 2000
-@@ -254,6 +254,12 @@
- ** notifying you of new mail. This is independent of the setting of the
- ** ``$$beep'' variable.
- */
-+ { "blank_lines", DT_NUM, R_NONE, UL &BlankLines, 0 },
-+ /*
-+ ** .pp
-+ ** This variable controls the number of blank lines below help line and
-+ ** above status line. Should not be set to big values.
-+ */
- { "bounce_delivered", DT_BOOL, R_NONE, OPTBOUNCEDELIVERED, 1 },
- /*
- ** .pp
-diff -ur mutt-1.1.11.orig/menu.c mutt-1.1.11/menu.c
---- mutt-1.1.11.orig/menu.c Fri Mar 3 11:10:10 2000
-+++ mutt-1.1.11/menu.c Mon Apr 17 18:54:09 2000
-@@ -125,13 +125,13 @@
- SETCOLOR (MT_COLOR_STATUS);
- mvprintw (option (OPTSTATUSONTOP) ? LINES-2 : 0, 0, "%-*.*s", COLS, COLS, menu->help);
- SETCOLOR (MT_COLOR_NORMAL);
-- menu->offset = 1;
-- menu->pagelen = LINES - 3;
-+ menu->offset = 1 + BlankLines;
-+ menu->pagelen = LINES - 3 - 2*BlankLines;
- }
- else
- {
-- menu->offset = option (OPTSTATUSONTOP) ? 1 : 0;
-- menu->pagelen = LINES - 2;
-+ menu->offset = (option (OPTSTATUSONTOP) ? 1 : 0) + BlankLines;
-+ menu->pagelen = LINES - 2 - 2*BlankLines;
- }
-
- mutt_show_error ();
-diff -ur mutt-1.1.11.orig/pager.c mutt-1.1.11/pager.c
---- mutt-1.1.11.orig/pager.c Fri Mar 3 11:10:11 2000
-+++ mutt-1.1.11/pager.c Mon Apr 17 18:55:37 2000
-@@ -1510,9 +1510,9 @@
- {
- indexoffset = 0;
- statusoffset = IsHeader (extra) ? indexlen : 0;
-- bodyoffset = statusoffset + 1;
-+ bodyoffset = statusoffset + 1 + (PagerIndexLines > 0 ? 0 : BlankLines);
- helpoffset = LINES - 2;
-- bodylen = helpoffset - bodyoffset;
-+ bodylen = helpoffset - bodyoffset - BlankLines;
- if (!option (OPTHELP))
- bodylen++;
- }
-@@ -1523,8 +1523,9 @@
- statusoffset = LINES - 2;
- if (!option (OPTHELP))
- indexoffset = 0;
-- bodyoffset = indexoffset + (IsHeader (extra) ? indexlen : 0);
-- bodylen = statusoffset - bodyoffset;
-+ bodyoffset = indexoffset + (IsHeader (extra) ? indexlen : 0) +
-+ (PagerIndexLines > 0 ? 0 : BlankLines);
-+ bodylen = statusoffset - bodyoffset - BlankLines;
- }
-
- if (option (OPTHELP))
-diff -ur mutt-1.1.11.orig/patchlist.c mutt-1.1.11/patchlist.c
---- mutt-1.1.11.orig/patchlist.c Sun Apr 16 16:38:53 2000
-+++ mutt-1.1.11/patchlist.c Mon Apr 17 18:54:09 2000
-@@ -15,7 +15,8 @@
- /* DO NOT MODIFY BEFORE THIS LINE */
-
-
--
-+ printf("Feature patch: blank_lines 1.1.11 by Michal Kochanowicz\n"
-+ " based on: blank_line 1.0pre3i by Ken Weingold / Claus Aßmann\n");
-
-
- /* DO NOT MODIFY AFTER THIS LINE */
+++ /dev/null
---- mutt-1.1.11/Makefile.am.wiget Mon Apr 10 11:59:06 2000
-+++ mutt-1.1.11/Makefile.am Mon Apr 10 12:02:41 2000
-@@ -115,11 +115,6 @@
- rm -f $(DESTDIR)$(bindir)/mutt.dotlock ; \
- ln -sf $(DESTDIR)$(bindir)/mutt_dotlock $(DESTDIR)$(bindir)/mutt.dotlock ; \
- fi
-- if test -f $(DESTDIR)$(bindir)/mutt_dotlock && test x@DOTLOCK_GROUP@ != x ; then \
-- chgrp @DOTLOCK_GROUP@ $(DESTDIR)$(bindir)/mutt_dotlock && \
-- chmod @DOTLOCK_PERMISSION@ $(DESTDIR)$(bindir)/mutt_dotlock || \
-- { echo "Can't fix mutt_dotlock's permissions!" >&2 ; exit 1 ; } \
-- fi
-
- install-data-local: Muttrc
- $(srcdir)/mkinstalldirs $(DESTDIR)$(sharedir)
+++ /dev/null
-It looks like the 1.3 branch already has a more correct fix for this problem
-(which has potential to crop up elsewhere in the source tree), but this fixes
-the most obvious one.
-
---- mutt-1.2.5/imap/auth_gss.c Wed Jun 21 15:21:56 2000
-+++ mutt-1.2.5/imap/auth_gss.c Mon Nov 6 13:24:27 2000
-@@ -226,13 +226,15 @@
- mutt_socket_write (idata->conn, buf1);
-
- /* Joy of victory or agony of defeat? */
-- if (mutt_socket_read_line_d (buf1, GSS_BUFSIZE, idata->conn) < 0)
-- {
-- dprint (1, (debugfile, "Error receiving server response.\n"));
--
-- mutt_socket_write(idata->conn, "*\r\n");
-- return -1;
-- }
-+ do {
-+ if (mutt_socket_read_line_d (buf1, GSS_BUFSIZE, idata->conn) < 0)
-+ {
-+ dprint (1, (debugfile, "Error receiving server response.\n"));
-+ mutt_socket_write(idata->conn, "*\r\n");
-+ return -1;
-+ }
-+ } while ((mutt_strncmp (buf1, seq, SEQLEN) != 0));
-+
- if (imap_code (buf1))
- {
- /* flush the security context */
+++ /dev/null
---- mutt-1.2/imap/md5.h.how-many-times-do-i-have-to-fix-friggin-md5-code Thu Jun 22 08:20:24 2000
-+++ mutt-1.2/imap/md5.h Thu Jun 22 08:20:56 2000
-@@ -26,14 +26,16 @@
- #ifndef MD5_H
- #define MD5_H 1
-
-+#include <sys/types.h>
-+
- /* POINTER defines a generic pointer type */
- typedef unsigned char *POINTER;
-
- /* UINT2 defines a two byte word */
--typedef unsigned short int UINT2;
-+typedef u_int16_t UINT2;
-
- /* UINT4 defines a four byte word */
--typedef unsigned long int UINT4;
-+typedef u_int32_t UINT4;
-
- /* MD5 context. */
- typedef struct {
+++ /dev/null
---- mutt-0.95-us/configure.in.nosetgid Sat Dec 12 04:22:04 1998
-+++ mutt-0.95-us/configure.in Sat Dec 12 22:31:34 1998
-@@ -302,25 +302,6 @@
- mutt_cv_setgid=no
- if test $mutt_cv_worldwrite = yes; then
- AC_DEFINE(USE_DOTLOCK)
-- else
--
-- AC_CACHE_CHECK(if $mutt_cv_mailpath is group writable, mutt_cv_groupwrite, [AC_TRY_RUN([#include <sys/types.h>
--#include <sys/stat.h>
--
--int main (int argc, char **argv)
--{
-- struct stat s;
--
-- stat ("$mutt_cv_mailpath", &s);
-- if (s.st_mode & S_IWGRP) exit (0);
-- exit (1);
--}], mutt_cv_groupwrite=yes, mutt_cv_groupwrite=no, mutt_cv_groupwrite=no)])
--
-- if test $mutt_cv_groupwrite = yes; then
-- AC_DEFINE(USE_DOTLOCK)
-- AC_DEFINE(USE_SETGID)
-- mutt_cv_setgid=yes
-- fi
- fi
- fi
-
+++ /dev/null
---- mutt-1.2.2/po/pl.po.wiget Wed Jun 21 00:23:08 2000
-+++ mutt-1.2.2/po/pl.po Tue Jun 27 14:13:03 2000
-@@ -1376,7 +1376,7 @@
- #: imap/message.c:623
- #, c-format
- msgid "Copying message %d to %s..."
--msgstr "Kopiowanie listu do %s..."
-+msgstr "Kopiowanie listu %d do %s..."
-
- #: imap/socket.c:215
- #, c-format
+++ /dev/null
---- mutt-1.0pre1/main.c.orig Mon Aug 23 14:22:20 1999
-+++ mutt-1.0pre1/main.c Wed Aug 25 15:20:48 1999
-@@ -285,6 +285,8 @@
-
- puts(_(ReachingUs));
-
-+ mutt_print_patchlist ();
-+
- exit (0);
- }
-
---- mutt-1.0pre1/patchlist.c.orig Wed Aug 25 15:20:48 1999
-+++ mutt-1.0pre1/patchlist.c Wed Aug 25 15:20:48 1999
-@@ -0,0 +1,22 @@
-+#include <stdio.h>
-+
-+void mutt_print_patchlist (void)
-+{
-+ /*
-+ * If you add a patch, include a line identifying it within this
-+ * section. It should include the type of patch (Feature, Bugfix, or
-+ * Merge), the name of the patch, the version of mutt to which the
-+ * patch should be applied, the version of the patch itself, and your
-+ * name. This line should be a printf, terminated by a single \n, and
-+ * should fit in one line of code. It should be inserted after all
-+ * other patch-ID lines. It should be preceded by three blank lines,
-+ * and followed by three blank lines and the DO NOT MODIFY AFTER... line.
-+ */
-+ /* DO NOT MODIFY BEFORE THIS LINE */
-+
-+
-+
-+
-+
-+ /* DO NOT MODIFY AFTER THIS LINE */
-+}
---- mutt-1.0pre1/protos.h.orig Mon Jul 26 16:52:27 1999
-+++ mutt-1.0pre1/protos.h Wed Aug 25 15:20:49 1999
-@@ -180,6 +180,7 @@
- void mutt_pretty_mailbox (char *);
- void mutt_pretty_size (char *, size_t, long);
- void mutt_print_message (HEADER *);
-+void mutt_print_patchlist (void);
- void mutt_query_exit (void);
- void mutt_query_menu (char *, size_t);
- void mutt_safe_path (char *s, size_t l, ADDRESS *a);
---- mutt-1.1.11/Makefile.am Mon Apr 3 00:35:18 2000
-+++ mutt-1.1.11/Makefile.am.patchlist Mon Apr 3 00:38:05 2000
-@@ -30,7 +30,7 @@
- curs_main.c date.c \
- edit.c enter.c flags.c init.c filter.c from.c getdomain.c \
- handler.c hash.c hdrline.c headers.c help.c hook.c keymap.c \
-- main.c mbox.c menu.c mh.c mx.c pager.c parse.c pattern.c \
-+ main.c mbox.c menu.c mh.c mx.c pager.c parse.c patchlist.c pattern.c \
- postpone.c query.c recvattach.c recvcmd.c \
- rfc822.c rfc1524.c rfc2047.c rfc2231.c \
- score.c send.c sendlib.c signal.c sort.c \
+++ /dev/null
---- mutt-0.94.7i/OPS.orig Sat Sep 12 21:23:27 1998
-+++ mutt-0.94.7i/OPS Sat Sep 19 02:54:15 1998
-@@ -115,6 +115,7 @@
- OP_PAGER_TOP "jump to the top of the message"
- OP_PIPE "pipe message/attachment to a shell command"
- OP_PREV_ENTRY "move to the previous entry"
-+OP_PREV_JUMP "jump to the previously selected message"
- OP_PREV_LINE "scroll up one line"
- OP_PREV_PAGE "move to the previous page"
- OP_PRINT "print the current entry"
---- mutt-0.94.7i/curs_main.c.orig Wed Sep 16 07:57:23 1998
-+++ mutt-0.94.7i/curs_main.c Sat Sep 19 02:55:06 1998
-@@ -240,6 +240,7 @@
- int tag = 0; /* has the tag-prefix command been pressed? */
- int newcount = -1;
- int oldcount = -1;
-+ int LastJumped = -1;
- int rc = -1;
- MUTTMENU *menu;
- char *cp; /* temporary variable. */
-@@ -627,6 +628,7 @@
- if (j >= 0)
- {
- menu->current = Context->hdrs[j]->virtual;
-+ LastJumped=Context->v2r[menu->current]+1;
- if (menu->menu == MENU_PAGER)
- {
- op = OP_DISPLAY_MESSAGE;
-@@ -915,6 +917,7 @@
- the folder */
- menu->redraw = REDRAW_FULL;
- set_option (OPTSEARCHINVALID);
-+ LastJumped=-1;
- break;
-
- case OP_DISPLAY_MESSAGE:
-@@ -1043,6 +1046,29 @@
- menu->redraw = REDRAW_MOTION;
- break;
-
-+ case OP_PREV_JUMP:
-+ i=LastJumped;
-+ if (i > 0 && i <= Context->msgcount)
-+ {
-+ if (Context->hdrs[i-1]->virtual != -1)
-+ {
-+ LastJumped=Context->v2r[menu->current]+1;
-+ menu->current = Context->hdrs[i-1]->virtual;
-+ if (menu->menu == MENU_PAGER)
-+ {
-+ op = OP_DISPLAY_MESSAGE;
-+ continue;
-+ }
-+ else
-+ menu->redraw = REDRAW_MOTION;
-+ }
-+ else
-+ mutt_error ("That message is not visible.");
-+ }
-+ else
-+ mutt_error ("No target yet.");
-+ break;
-+
- case OP_PREV_ENTRY:
-
- CHECK_MSGCOUNT;
-@@ -1111,6 +1137,7 @@
- case OP_MAIN_PREV_UNREAD:
-
- CHECK_MSGCOUNT;
-+ LastJumped=Context->v2r[menu->current]+1;
- i = menu->current;
- menu->current = -1;
- for (j = 0; j != Context->vcount; j++)
-@@ -1244,6 +1271,7 @@
- case OP_MAIN_PREV_SUBTHREAD:
-
- CHECK_MSGCOUNT;
-+ i=Context->v2r[menu->current]+1;
- switch (op)
- {
- case OP_MAIN_NEXT_THREAD:
-@@ -1424,11 +1424,13 @@
- }
- else if (menu->menu == MENU_PAGER)
- {
-+ LastJumped=i;
- op = OP_DISPLAY_MESSAGE;
- continue;
- }
- else
- menu->redraw = REDRAW_MOTION;
-+ LastJumped=i;
- break;
-
- case OP_MAIN_SET_FLAG:
---- mutt-0.94.7i/functions.h.orig Sat Sep 12 21:23:30 1998
-+++ mutt-0.94.7i/functions.h Sat Sep 19 02:54:16 1998
-@@ -87,6 +87,7 @@
- { "display-headers", OP_DISPLAY_HEADERS, "h" },
- { "next-undeleted", OP_MAIN_NEXT_UNDELETED, "j" },
- { "previous-undeleted", OP_MAIN_PREV_UNDELETED, "k" },
-+ { "previous-jump", OP_PREV_JUMP, "\033b" },
- { "limit", OP_MAIN_LIMIT, "l" },
- { "list-reply", OP_LIST_REPLY, "L" },
- { "mail", OP_MAIL, "m" },
-@@ -163,6 +164,7 @@
- { "next-entry", OP_NEXT_ENTRY, "J" },
- { "previous-undeleted",OP_MAIN_PREV_UNDELETED, "k" },
- { "previous-entry", OP_PREV_ENTRY, "K" },
-+ { "previous-jump", OP_PREV_JUMP, "\033b" },
- { "list-reply", OP_LIST_REPLY, "L" },
- { "redraw-screen", OP_REDRAW, "\014" },
- { "mail", OP_MAIL, "m" },
---- mutt-0.94.7i/patchlist.c.orig Sat Sep 19 02:29:51 1998
-+++ mutt-0.94.7i/patchlist.c Sat Sep 19 02:54:16 1998
-@@ -16,6 +16,8 @@
-
-
-
-+ printf("Feature patch: previous-jump 0.94.7 by Stefan `Sec` Zehl\n");
-+
-
-
- /* DO NOT MODIFY AFTER THIS LINE */
+++ /dev/null
-Index: enter.c
-===================================================================
-RCS file: /export/home/vikas/CVS/Mutt/enter.c,v
-retrieving revision 1.1.1.4
-diff -u -p -r1.1.1.4 enter.c
---- enter.c 1998/09/18 13:09:38 1.1.1.4
-+++ enter.c 1998/09/21 23:05:21
-@@ -274,9 +274,9 @@ int mutt_enter_string (unsigned char *bu
- j--;
- if (j > 0)
- {
-- if (isalnum (buf[j - 1]))
-+ if (!strchr (NONULL (Wordchars), (buf[j - 1])))
- {
-- for (j--; j > 0 && isalnum (buf[j - 1]); j--)
-+ for (j--; j > 0 && !strchr (NONULL (Wordchars), buf[j - 1]); j--)
- ;
- }
- else
-Index: globals.h
-===================================================================
-RCS file: /export/home/vikas/CVS/Mutt/globals.h,v
-retrieving revision 1.1.1.2
-diff -u -p -r1.1.1.2 globals.h
---- globals.h 1998/08/24 19:42:35 1.1.1.2
-+++ globals.h 1998/09/21 23:01:27
-@@ -80,6 +80,7 @@ WHERE char *Tempdir;
- WHERE char *Tochars;
- WHERE char *Username;
- WHERE char *Visual;
-+WHERE char *Wordchars;
-
- WHERE char *LastFolder;
-
-Index: init.h
-===================================================================
-RCS file: /export/home/vikas/CVS/Mutt/init.h,v
-retrieving revision 1.1.1.8
-diff -Nru mutt-1.1.11.orig/init.h mutt-1.1.11/init.h
---- init.h Sun Apr 2 22:54:00 2000
-+++ init.h Sun Apr 2 22:54:46 2000
-@@ -2074,6 +2074,7 @@
- ** When set, Mutt will always ask for a key. When unset, Mutt will wait
- ** for a key only if the external command returned a non-zero status.
- */
-+ { "word_chars", DT_STR, R_NONE, UL &Wordchars, UL " *?_-.[]~=/&;!#$%^(){}<>@" },
- { "weed", DT_BOOL, R_NONE, OPTWEED, 1 },
- /*
- ** .pp
-diff -u -p -r1.1.1.8 init.h
---- patchlist.c.orig Sat Sep 19 02:29:51 1998
-+++ patchlist.c Sat Sep 19 02:54:16 1998
-@@ -16,6 +16,8 @@
-
-
-
-+ printf("Feature patch: word_chars 0.94.7 by Vikas Agnihotri\n");
-+
-
-
- /* DO NOT MODIFY AFTER THIS LINE */
+++ /dev/null
---- send.c.bak Wed Mar 3 22:11:30 1999
-+++ send.c Wed Mar 3 22:18:10 1999
-@@ -33,6 +33,9 @@
- #include <sys/stat.h>
- #include <sys/wait.h>
- #include <dirent.h>
-+#include <time.h>
-+#include <sys/types.h>
-+#include <utime.h>
-
- #ifdef _PGPPATH
- #include "pgp.h"
-@@ -1072,9 +1075,20 @@ ci_send_message (int flags, /* send mod
- {
- struct stat st;
- time_t mtime;
-+ struct utimbuf utim;
-
- stat (msg->content->filename, &st);
- mtime = st.st_mtime;
-+ if (mtime == time (NULL))
-+ {
-+ /* Decrease the file's modification time by 1 second so we are sure
-+ * to find out if the `editor' program changes it in less than 1 second.
-+ */
-+ mtime -= 1;
-+ utim.actime = mtime;
-+ utim.modtime = mtime;
-+ utime (msg->content->filename, &utim);
-+ }
-
- mutt_update_encoding (msg->content);
-
---- patchlist.c.orig Sat Sep 19 02:29:51 1998
-+++ patchlist.c Sat Sep 19 02:54:16 1998
-@@ -16,6 +16,8 @@
-
-
-
-+ printf("Feature patch: ed_mtime 0.95.3 by Byrial Jensen\n");
-+
-
-
- /* DO NOT MODIFY AFTER THIS LINE */
+++ /dev/null
-diff -udpr -X diff-excludes mutt-0.95.4-orig/curs_main.c mutt-0.95.4/curs_main.c
---- mutt-0.95.4-orig/curs_main.c Thu Mar 4 08:16:48 1999
-+++ mutt-0.95.4/curs_main.c Sun Mar 14 09:21:51 1999
-@@ -483,7 +483,8 @@ int mutt_index_menu (void)
- menu_redraw_current (menu);
- }
-
-- if (menu->redraw & REDRAW_STATUS)
-+ if ((menu->redraw & REDRAW_STATUS) ||
-+ update_status_time ())
- {
- menu_status_line (buf, sizeof (buf), menu, NONULL (Status));
- CLEARLINE (option (OPTSTATUSONTOP) ? 0 : LINES-2);
-diff -Nru mutt-1.1.11/doc/manual.sgml mutt-1.1.11.status_update/doc/manual.sgml
---- mutt-1.1.11/doc/manual.sgml Sun Apr 2 23:17:35 2000
-+++ mutt-1.1.11.status_update/doc/manual.sgml Sun Apr 2 23:17:27 2000
-@@ -5395,6 +5395,8 @@
- %u number of unread messages *
- %v Mutt version string
- %V currently active limit pattern, if any *
-+%[fmt] the current date and time. `fmt'' is expanded by the system
-+ call ``strftime''; a leading bang disables locales
- %>X right justify the rest of the string and
- pad with "X"
- %|X pad to the end of the line with "X"
-@@ -5441,6 +5443,17 @@
- Setting this variable causes the ``status bar'' to be displayed on
- the first line of the screen rather than near the bottom.
-
-+<sect2>status_update<label id="status_update">
-+<p>
-+Type: number<newline>
-+Default: -1
-+
-+This variable controls, if positive, the maximum interval in seconds
-+before the time in the status line is updated. It is checked at
-+every key press, and after a keyboard <ref id="timeout"
-+name="timeout">. If the value is zero, the status line will updated
-+at every check. If it is negative, the status time will only be updated
-+if it necessary to update to the status line for some other reason.
-
- <sect2>strict_threads<label id="strict_threads">
- <p>
-diff -Nru mutt-1.1.11/init.h mutt-1.1.11.status_update/init.h
---- mutt-1.1.11/init.h Sun Apr 2 23:17:35 2000
-+++ mutt-1.1.11.status_update/init.h Sun Apr 2 23:17:25 2000
-@@ -1963,6 +1963,7 @@
- ** Setting this variable causes the ``$status bar'' to be displayed on
- ** the first line of the screen rather than near the bottom.
- */
-+ { "status_update", DT_NUM, R_NONE, UL &StatusUpdate, -1 },
- { "strict_threads", DT_BOOL, R_RESORT|R_INDEX, OPTSTRICTTHREADS, 0 },
- /*
- ** .pp
-diff -udpr -X diff-excludes mutt-0.95.4-orig/globals.h mutt-0.95.4/globals.h
---- mutt-0.95.4-orig/globals.h Thu Jan 7 10:14:40 1999
-+++ mutt-0.95.4/globals.h Sun Mar 14 09:21:51 1999
-@@ -107,6 +107,7 @@ WHERE short PagerIndexLines;
- WHERE short PopPort;
- WHERE short ReadInc;
- WHERE short SendmailWait;
-+WHERE short StatusUpdate;
- WHERE short Timeout;
- WHERE short WriteInc;
-
-diff -udpr -X diff-excludes mutt-0.95.4-orig/menu.c mutt-0.95.4/menu.c
---- mutt-0.95.4-orig/menu.c Thu Jan 7 10:14:42 1999
-+++ mutt-0.95.4/menu.c Sun Mar 14 09:21:51 1999
-@@ -840,3 +840,23 @@ int mutt_menuLoop (MUTTMENU *menu)
- }
- /* not reached */
- }
-+
-+int update_status_time ()
-+{
-+ static time_t Last;
-+ time_t now;
-+
-+ if (StatusUpdate < 0)
-+ return 0;
-+ else if (StatusUpdate == 0)
-+ return 1;
-+
-+ now = time (NULL);
-+ if (now - Last >= StatusUpdate)
-+ {
-+ Last = now;
-+ return 1;
-+ }
-+ else
-+ return 0;
-+}
-diff -udpr -X diff-excludes mutt-0.95.4-orig/mutt_menu.h mutt-0.95.4/mutt_menu.h
---- mutt-0.95.4-orig/mutt_menu.h Thu Jan 7 10:14:43 1999
-+++ mutt-0.95.4/mutt_menu.h Sun Mar 14 09:21:51 1999
-@@ -98,3 +98,5 @@ int mutt_menuLoop (MUTTMENU *);
- /* used in both the index and pager index to make an entry. */
- void index_make_entry (char *, size_t, struct menu_t *, int);
- int index_color (int);
-+
-+int update_status_time (void);
-diff -udpr -X diff-excludes mutt-0.95.4-orig/pager.c mutt-0.95.4/pager.c
---- mutt-0.95.4-orig/pager.c Thu Jan 7 10:14:44 1999
-+++ mutt-0.95.4/pager.c Sun Mar 14 09:21:51 1999
-@@ -1636,7 +1636,7 @@ mutt_pager (const char *banner, const ch
- SETCOLOR (MT_COLOR_NORMAL);
- }
-
-- if ((redraw & REDRAW_INDEX) && index)
-+ if (index && ((redraw & REDRAW_INDEX) || update_status_time ()))
- {
- /* redraw the pager_index indicator, because the
- * flags for this message might have changed. */
-diff -udpr -X diff-excludes mutt-0.95.4-orig/status.c mutt-0.95.4/status.c
---- mutt-0.95.4-orig/status.c Thu Jan 7 10:14:47 1999
-+++ mutt-0.95.4/status.c Sun Mar 14 09:21:59 1999
-@@ -25,6 +25,7 @@
- #include <string.h>
- #include <ctype.h>
- #include <unistd.h>
-+#include <locale.h>
-
- static char *get_sort_str (char *buf, size_t buflen, int method)
- {
-@@ -269,6 +270,61 @@ status_format_str (char *buf, size_t buf
- case 0:
- *buf = 0;
- return (src);
-+
-+ case '[':
-+ {
-+ int do_locales;
-+ int len = sizeof (fmt) - 1;
-+
-+ cp = fmt;
-+ if (*src == '!')
-+ {
-+ do_locales = 0;
-+ src++;
-+ }
-+ else
-+ do_locales = 1;
-+
-+ while (len > 0 && *src != ']')
-+ {
-+ if (*src == '%')
-+ {
-+ src++;
-+ if (len >= 2)
-+ {
-+ *cp++ = '%';
-+ *cp++ = *src;
-+ len -= 2;
-+ }
-+ else
-+ break; /* not enough space */
-+ src++;
-+ }
-+ else
-+ {
-+ *cp++ = *src++;
-+ len--;
-+ }
-+ }
-+ *cp = 0;
-+ src++;
-+
-+ if (do_locales && Locale)
-+ setlocale (LC_TIME, Locale);
-+
-+ {
-+ time_t now = time (NULL);
-+
-+ strftime (tmp, sizeof (tmp), fmt, localtime (&now));
-+ }
-+
-+ if (do_locales && Locale)
-+ setlocale (LC_TIME, "C");
-+
-+ snprintf (fmt, sizeof (fmt), "%%%ss", prefix);
-+ snprintf (buf, buflen, fmt, tmp);
-+ }
-+ break;
-
- default:
- snprintf (buf, buflen, "%%%s%c", prefix, op);
---- mutt-0.94.7i/patchlist.c.orig Sat Sep 19 02:29:51 1998
-+++ mutt-0.94.7i/patchlist.c Sat Sep 19 02:54:16 1998
-@@ -16,6 +16,8 @@
-
-
-
-+ printf("Feature patch: status-time 0.95.4 by Byrial Jensen\n");
-+
-
-
- /* DO NOT MODIFY AFTER THIS LINE */
+++ /dev/null
---- mutt-0.95.4/curs_lib.c.orig Thu Jan 14 12:29:17 1999
-+++ mutt-0.95.4/curs_lib.c Mon Mar 22 18:24:46 1999
-@@ -256,6 +256,7 @@
-
- attrset (A_NORMAL);
- mutt_refresh ();
-+ keypad (stdscr, FALSE);
- endwin ();
- #ifndef SLANG_CURSES
- fputc ('\n', stdout);
---- mutt-0.95.4/patchlist.c.orig Mon Mar 22 18:11:49 1999
-+++ mutt-0.95.4/patchlist.c Mon Mar 22 18:25:35 1999
-@@ -16,6 +16,8 @@
-
-
-
-+ printf("Bugfix patch: keypad 0.95.4 by Stefan `Sec` Zehl\n");
-+
-
-
- /* DO NOT MODIFY AFTER THIS LINE */
+++ /dev/null
---- mutt-0.95.4/protos.h.orig Sun Mar 28 20:19:44 1999
-+++ mutt-0.95.4/protos.h Sun Mar 28 20:19:44 1999
-@@ -75,6 +75,7 @@
-
- ADDRESS *mutt_lookup_alias (const char *s);
- ADDRESS *mutt_remove_duplicates (ADDRESS *);
-+ADDRESS *mutt_reverse_address (ADDRESS *);
- ADDRESS *mutt_expand_aliases (ADDRESS *);
- ADDRESS *mutt_parse_adrlist (ADDRESS *, const char *);
-
---- mutt-1.1.11.orig/send.c Sun Apr 2 23:30:24 2000
-+++ mutt-1.1.11/send.c Sun Apr 2 23:27:03 2000
-@@ -555,6 +555,10 @@
- /* the CC field can get cluttered, especially with lists */
- env->to = mutt_remove_duplicates (env->to);
- env->cc = mutt_remove_duplicates (env->cc);
-+ if (option (OPTREVALIAS)){
-+ env->to = mutt_reverse_address (env->to);
-+ env->cc = mutt_reverse_address (env->cc);
-+ }
- env->cc = mutt_remove_xrefs (env->to, env->cc);
- }
-
---- mutt-0.95.4/sendlib.c.orig Sun Mar 28 20:15:43 1999
-+++ mutt-0.95.4/sendlib.c Sun Mar 28 22:43:16 1999
-@@ -1882,6 +1882,37 @@
- return (top);
- }
-
-+/* given a list of addresses, return a list of reverse_alias'ed addresses */
-+ADDRESS *mutt_reverse_address (ADDRESS *addr)
-+{
-+ ADDRESS *top,*tmp,*ptr,*ali;
-+
-+ if ((top=addr)==NULL)
-+ return NULL;
-+
-+ if ((ali = alias_reverse_lookup (top)) && ali->personal){
-+ tmp=rfc822_cpy_adr_real(ali);
-+ tmp->next=top->next;
-+ top->next=NULL;
-+ rfc822_free_address(&top);
-+ top=tmp;
-+ }
-+
-+ ptr=top;
-+ while (top->next != NULL){
-+ tmp=top->next;
-+ if ((ali = alias_reverse_lookup (tmp)) && ali->personal){
-+ top->next=rfc822_cpy_adr_real(ali);
-+ top->next->next=tmp->next;
-+ tmp->next=NULL;
-+ rfc822_free_address(&tmp);
-+ tmp=top->next;
-+ }
-+ top=tmp;
-+ }
-+ return ptr;
-+}
-+
- int mutt_write_fcc (const char *path, HEADER *hdr, const char *msgid, int post, char *fcc)
- {
- CONTEXT f;
---- mutt-0.94.7i/patchlist.c.orig Sat Sep 19 02:29:51 1998
-+++ mutt-0.94.7i/patchlist.c Sat Sep 19 02:54:16 1998
-@@ -16,6 +16,8 @@
-
-
-
-+ printf("Feature patch: reverse-reply 0.95.4 by Stefan `Sec` Zehl\n");
-+
-
-
- /* DO NOT MODIFY AFTER THIS LINE */
+++ /dev/null
---- mutt-0.95.4/patchlist.c.orig Mon Mar 22 18:11:49 1999
-+++ mutt-0.95.4/patchlist.c Tue Mar 23 13:19:30 1999
-@@ -16,6 +16,8 @@
-
-
-
-+ printf("Feature patch: print_index 0.95.4 by Vikas Agnihotri\n");
-+
-
-
- /* DO NOT MODIFY AFTER THIS LINE */
-diff -bu mutt-0.95.4.orig/OPS mutt-0.95.4/OPS
---- mutt-0.95.4.orig/OPS Sat Dec 12 09:05:35 1998
-+++ mutt-0.95.4/OPS Tue Mar 23 13:43:00 1999
-@@ -148,6 +148,7 @@
- OP_VERSION "show the Mutt version number and date"
- OP_VIEW_ATTACH "view attachment using mailcap entry if necessary"
- OP_VIEW_ATTACHMENTS "show MIME attachments"
-+OP_MAIN_PRINT_INDEX "print message index"
- 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"
-diff -bu mutt-0.95.4.orig/commands.c mutt-0.95.4/commands.c
---- mutt-0.95.4.orig/commands.c Tue Feb 9 21:53:38 1999
-+++ mutt-0.95.4/commands.c Tue Mar 23 13:43:08 1999
-@@ -639,6 +639,54 @@
- mutt_copy_message (fp, ctx, h, M_CM_DECODE, CH_WEED | CH_DECODE | CH_REORDER);
- }
-
-+void mutt_print_index (MUTTMENU *menu)
-+{
-+ int i;
-+ pid_t thepid;
-+ FILE *fp;
-+ char buf[STRING];
-+ static char AsciiChars[M_TREE_MAX] = " ,|-| >*&";
-+
-+ if (query_quadoption (OPT_PRINT,"Print message index?") != M_YES)
-+ return;
-+
-+ endwin ();
-+ if ((thepid = mutt_create_filter (PrintCmd, &fp, NULL, NULL)) == -1)
-+ return;
-+
-+ menu_status_line (buf, sizeof (buf), menu, NONULL (Status));
-+ fprintf(fp,"%s\n",buf);
-+
-+ for (i = 0; i<menu->max; i++)
-+ {
-+ char *s;
-+ menu->make_entry(buf,sizeof(buf),menu,i);
-+ s = buf;
-+ while (*s)
-+ {
-+ if ((unsigned char) *s < M_TREE_MAX)
-+ {
-+ while (*s && (unsigned char) *s < M_TREE_MAX)
-+ {
-+ fputc (AsciiChars[*s], fp);
-+ s++;
-+ }
-+ }
-+ else
-+ {
-+ fputc(*s,fp);
-+ s++;
-+ }
-+ }
-+ fprintf(fp,"\n");
-+ }
-+
-+ fclose (fp);
-+ if (mutt_wait_filter (thepid) || option (OPTWAITKEY))
-+ mutt_any_key_to_continue (NULL);
-+ mutt_message ("Message index printed.");
-+}
-+
- void mutt_print_message (HEADER *h)
- {
- int i, count = 0;
-diff -bu mutt-0.95.4.orig/curs_main.c mutt-0.95.4/curs_main.c
---- mutt-0.95.4.orig/curs_main.c Wed Mar 3 20:36:41 1999
-+++ mutt-0.95.4/curs_main.c Tue Mar 23 13:43:01 1999
-@@ -1572,6 +1572,12 @@
- MAYBE_REDRAW (menu->redraw);
- break;
-
-+ case OP_MAIN_PRINT_INDEX:
-+
-+ CHECK_MSGCOUNT;
-+ mutt_print_index(menu);
-+ break;
-+
- case OP_PRINT:
-
- CHECK_MSGCOUNT;
-diff -Nru mutt-1.1.11.orig/functions.h mutt-1.1.11/functions.h
---- mutt-1.1.11.orig/functions.h Sun Apr 2 23:33:12 2000
-+++ mutt-1.1.11/functions.h Sun Apr 2 23:34:45 2000
-@@ -130,6 +130,7 @@
- { "previous-new", OP_MAIN_PREV_NEW, "\033\t" },
- { "next-unread", OP_MAIN_NEXT_UNREAD, NULL },
- { "previous-unread", OP_MAIN_PREV_UNREAD, NULL },
-+ { "print-index", OP_MAIN_PRINT_INDEX, "P"},
- { "parent-message", OP_MAIN_PARENT_MESSAGE, "P" },
-
-
-diff -bu mutt-0.95.4.orig/mutt_menu.h mutt-0.95.4/mutt_menu.h
---- mutt-0.95.4.orig/mutt_menu.h Thu Jan 7 10:14:43 1999
-+++ mutt-0.95.4/mutt_menu.h Tue Mar 23 13:43:02 1999
-@@ -90,6 +90,7 @@
- void menu_current_bottom (MUTTMENU *);
- void menu_check_recenter (MUTTMENU *);
- void menu_status_line (char *, size_t, MUTTMENU *, const char *);
-+void mutt_print_index (MUTTMENU *);
-
- MUTTMENU *mutt_new_menu (void);
- void mutt_menuDestroy (MUTTMENU **);
+++ /dev/null
---- mutt-0.95.6/mh.c.orig Wed Jun 9 12:03:57 1999
-+++ mutt-0.95.6/mh.c Wed Jun 9 12:04:01 1999
-@@ -227,7 +227,7 @@
- if(subdir)
- {
- snprintf(buf, sizeof(buf), "%s/%s", ctx->path, subdir);
-- is_old = (mutt_strcmp("cur", subdir) == 0) && option(OPTMARKOLD);
-+ is_old = (mutt_strcmp("cur", subdir) == 0);
- }
- else
- strfcpy(buf, ctx->path, sizeof(buf));
---- mutt-0.95.6/parse.c.orig Wed Jun 9 12:03:38 1999
-+++ mutt-0.95.6/parse.c Wed Jun 9 12:03:39 1999
-@@ -1112,7 +1112,6 @@
- hdr->replied = 1;
- break;
- case 'O':
-- if (option (OPTMARKOLD))
- hdr->old = 1;
- break;
- case 'R':
---- mutt-0.95.6/patchlist.c.orig Fri Jun 4 01:40:18 1999
-+++ mutt-0.95.6/patchlist.c Wed Jun 9 12:05:44 1999
-@@ -16,6 +16,8 @@
-
-
-
-+ printf("Feature patch: mark-old 0.95.6 by Aaron Schrab\n");
-+
-
-
- /* DO NOT MODIFY AFTER THIS LINE */
+++ /dev/null
---- hash.c~ Sun Apr 2 23:37:07 2000
-+++ hash.c Sun Apr 2 23:38:30 2000
-@@ -121,7 +121,7 @@
- {
- *last = ptr->next;
- if (destroy) destroy (ptr->data);
-- FREE (&ptr);
-+ free (ptr);
- return;
- }
- }
-@@ -137,15 +137,38 @@ void hash_destroy (HASH **ptr, void (*de
- HASH *pptr = *ptr;
- struct hash_elem *elem, *tmp;
-
-- for (i = 0 ; i < pptr->nelem; i++)
-+ /* We want to keep the test for the optional destroy argument out
-+ * of the loop to get a faster execution. The price we pay is that
-+ * we then have to have two versions of the loop.
-+ */
-+#if 0
-+ /* Nobody use the destroy argument at the moment, so the destroy
-+ * version of the loop is out-commented until somebody needs it.
-+ */
-+ if (destroy)
- {
-- for (elem = pptr->table[i]; elem; )
-+ for (i = 0 ; i < pptr->nelem; i++)
- {
-- tmp = elem;
-- elem = elem->next;
-- if (destroy)
-+ for (elem = pptr->table[i]; elem; )
-+ {
-+ tmp = elem;
-+ elem = elem->next;
- destroy (tmp->data);
-- safe_free ((void **) &tmp);
-+ free (tmp);
-+ }
-+ }
-+ }
-+ else
-+#endif
-+ {
-+ for (i = 0 ; i < pptr->nelem; i++)
-+ {
-+ for (elem = pptr->table[i]; elem; )
-+ {
-+ tmp = elem;
-+ elem = elem->next;
-+ free (tmp);
-+ }
- }
- }
- safe_free ((void **) &pptr->table);
---- patchlist.c.orig Sat Sep 19 02:29:51 1998
-+++ patchlist.c Sat Sep 19 02:54:16 1998
-@@ -16,6 +16,8 @@
-
-
-
-+ printf("Feature patch: hash_destroy 0.95 by Byrial Jensen\n");
-+
-
-
- /* DO NOT MODIFY AFTER THIS LINE */
+++ /dev/null
---- mutt-1.1.11.orig/init.h Sun Apr 2 23:40:02 2000
-+++ mutt-1.1.11/init.h Sun Apr 2 23:41:08 2000
-@@ -1169,6 +1169,7 @@
- ** lead to problems with non-verifyable PGP signatures, so only change
- ** this if you know what you are doing.
- */
-+ { "pgp_paranoid", DT_BOOL, R_NONE, OPTPGPPARANOID, 0 },
- { "pgp_timeout", DT_NUM, R_NONE, UL &PgpTimeout, 300 },
- /*
- ** .pp
---- mutt-0.95/mutt.h.orig Sat Dec 12 09:06:47 1998
-+++ mutt-0.95/mutt.h Sun Jan 3 03:39:19 1999
-@@ -309,6 +309,7 @@
- OPTMHPURGE,
- OPTMIMEFORWDECODE,
- OPTPAGERSTOP,
-+ OPTPGPPARANOID,
- OPTPIPEDECODE,
- OPTPIPESPLIT,
- OPTPOPDELETE,
---- mutt-0.95/patchlist.c.orig Sun Jan 3 03:11:41 1999
-+++ mutt-0.95/patchlist.c Sun Jan 3 03:39:19 1999
-@@ -16,6 +16,8 @@
-
-
-
-+ printf("Feature patch: condense_pgp 0.95 by Stefan `Sec` Zehl\n");
-+
-
-
- /* DO NOT MODIFY AFTER THIS LINE */
---- mutt-0.95/pgp.c.orig Sat Dec 12 09:07:00 1998
-+++ mutt-0.95/pgp.c Sun Jan 3 03:41:29 1999
-@@ -216,6 +216,102 @@
- }
-
-
-+/*
-+ * Scan PGP output; return information about state of signature.
-+ * Flush the message (on stdout).
-+ *
-+ * If strat==0, the message is piped to PGP on stdin, the verified
-+ * message is output on stdout, and runtime messages are on stderr.
-+ * If strat==1, the message comes from a file, and the runtime
-+ * messages are on stdout.
-+ */
-+
-+int
-+mutt_scan_pgp_output (FILE *infile, FILE *outfile, STATE *outstate)
-+{
-+ int sigstate=0, pgpwarning=0;
-+ int nl=0;
-+ char buffer[LONG_STRING];
-+
-+ while (fgets (buffer, sizeof(buffer), infile) != NULL) {
-+ if (strncmp (buffer, "Good signature", 14) == 0)
-+ if (sigstate!=3)
-+ sigstate=1;
-+ if (strncmp (buffer, "WARNING", 7) == 0 &&
-+ strstr (buffer, "not certified") != NULL)
-+ if (sigstate!=3)
-+ sigstate=2;
-+ if (strncmp (buffer, "Bad signature", 13) == 0)
-+ sigstate=3;
-+ if (strncmp (buffer, "\007Key matching", 13) == 0 &&
-+ strstr (buffer, "not found") != NULL)
-+ if (sigstate!=3)
-+ sigstate=4;
-+ if (strncmp (buffer, "WARNING", 7) == 0)
-+ pgpwarning|=1;
-+ if (strncmp (buffer, "\007WARNING", 7) == 0)
-+ pgpwarning|=1;
-+ if (strncmp (buffer, "Error", 5) == 0)
-+ pgpwarning|=2;
-+ if (strncmp (buffer, "\007Error", 5) == 0)
-+ pgpwarning|=2;
-+
-+ /* pgp2 */
-+ if (strncmp(buffer, "\007Key matching", 13) == 0 &&
-+ strstr (buffer, "not found") != NULL)
-+ continue;
-+ if (strncmp(buffer, "File '", 6) == 0 &&
-+ strstr (buffer, "has signature, but with no text") != NULL)
-+ continue;
-+ if (strncmp(buffer, "Text is assumed to be in file '", 31) == 0)
-+ continue;
-+ /* pgp5 */
-+ if (strncmp(buffer, "No files specified. Using stdin.", 33) == 0)
-+ continue;
-+ if (strncmp(buffer, "Opening file \"stdout\" type text.", 32) == 0)
-+ continue;
-+ if (strncmp(buffer, "Message is encrypted.", 21) == 0)
-+ continue;
-+ /* pgp5 bogon makes pgp2 warn */
-+ if (strncmp(buffer, "Warning",7) == 0 &&
-+ strstr (buffer, "header label \"MessageID:\" ignored") != NULL)
-+ continue;
-+
-+ if(buffer[0]=='\n'){
-+ if(nl)continue;
-+ nl=1;
-+ }else{
-+ nl=0;
-+ }
-+ if (outstate) {
-+ if (strlen(buffer)>2 && buffer[strlen(buffer)-2]=='\007')
-+ buffer[strlen(buffer)-2]=' ';
-+ else if (strlen(buffer)>3 && buffer[strlen(buffer)-3]=='\007')
-+ buffer[strlen(buffer)-3]=' ';
-+
-+ if (buffer[0] == '\007') {
-+ state_puts(buffer+1, outstate);
-+ }
-+ else {
-+ state_puts(buffer, outstate);
-+ }
-+ }
-+ if (outfile) {
-+ if (buffer[0] == '\007') {
-+ fputs(buffer+1, outfile);
-+ }
-+ else {
-+ fputs(buffer, outfile);
-+ }
-+ }
-+ }
-+
-+ sigstate |= (pgpwarning<<4);
-+
-+ return sigstate;
-+}
-+
-+
- /* Support for the Application/PGP Content Type. */
-
- void application_pgp_handler (BODY *m, STATE *s)
-@@ -334,7 +430,10 @@
- fclose (pgpin);
-
- if (s->flags & M_DISPLAY)
-+ if(option(OPTPGPPARANOID))
- pgp_current_time (s);
-+ else
-+ mutt_scan_pgp_output(pgperr,NULL,s);
-
- mutt_wait_filter (thepid);
-
-@@ -345,17 +444,17 @@
- fclose (pgperr);
-
- if (s->flags & M_DISPLAY)
-- state_puts (_("\n[-- End of PGP output --]\n\n"), s);
-+ state_puts (_("\n[-- End of PGP output --"), s);
- }
-
- if(s->flags & M_DISPLAY)
- {
- if (needpass)
-- state_puts (_("[-- BEGIN PGP MESSAGE --]\n\n"), s);
-+ state_puts ("BEGIN PGP MESSAGE --]\n\n", s);
- else if (pgp_keyblock)
-- state_puts (_("[-- BEGIN PGP PUBLIC KEY BLOCK --]\n"), s);
-+ state_puts ("BEGIN PGP PUBLIC KEY BLOCK --]\n", s);
- else
-- state_puts (_("[-- BEGIN PGP SIGNED MESSAGE --]\n\n"), s);
-+ state_puts ("BEGIN PGP SIGNED MESSAGE --]\n\n", s);
- }
-
- /* Use PGP's output if there was no clearsig signature. */
-diff -Nru mutt-1.1.11.orig/pgp.c mutt-1.1.11/pgp.c
---- mutt-1.1.11.orig/pgp.c Sun Apr 2 23:49:51 2000
-+++ mutt-1.1.11/pgp.c Sun Apr 2 23:51:58 2000
-@@ -678,7 +678,10 @@
- -1, -1, fileno(pgperr),
- tempfile, sigfile)) != -1)
- {
-+ if(option(OPTPGPPARANOID))
- mutt_copy_stream(pgpout, s->fpout);
-+ else
-+ mutt_scan_pgp_output(pgpout,NULL,s);
- fclose (pgpout);
- fflush(pgperr);
- rewind(pgperr);
+++ /dev/null
---- mutt-1.0pre2/hdrline.c.orig Wed Sep 1 16:14:20 1999
-+++ mutt-1.0pre2/hdrline.c Sat Sep 11 03:32:57 1999
-@@ -187,6 +187,7 @@
- }
-
- /* %a = address of author
-+ * %A = number of new messages in the mailbox
- * %b = filename of the originating folder
- * %B = the list to which the letter was sent
- * %c = size of message in bytes
-@@ -255,6 +256,16 @@
- dest[0] = '\0';
- break;
-
-+ case 'A':
-+ if(ctx)
-+ {
-+ snprintf (fmt, sizeof (fmt), "%%%sd", prefix);
-+ snprintf (dest, destlen, fmt, ctx->new);
-+ }
-+ else
-+ strfcpy(dest, "(null)", destlen);
-+ break;
-+
- case 'B':
- if (!first_mailing_list (dest, destlen, hdr->env->to) &&
- !first_mailing_list (dest, destlen, hdr->env->cc))
---- mutt-0.94.7i/patchlist.c.orig Sat Sep 19 02:29:51 1998
-+++ mutt-0.94.7i/patchlist.c Sat Sep 19 02:54:16 1998
-@@ -16,6 +16,8 @@
-
-
-
-+ printf("Feature patch: %%A 1.02 by Stefan `Sec` Zehl\n");
-+
-
-
- /* DO NOT MODIFY AFTER THIS LINE */
+++ /dev/null
-
- Patches for [1]Mutt
-
- My patches have name after the version of mutt that they are made for.
- But they should always be usable with the newest version, too. If not,
- please [2]notify me about the problem, and I will update the patch.
-
-Bugfixes
-
- [3]patch-0.95.3i.bj.keyattach.1.
- Avoid to send out a temporary filename from your box when
- sending a pgp key.
-
-New features and other changes in behaviour
-
- [4]patch-0.95.bj.noquote_hdr_term.1.
- Don't quote the header terminator when replying with headers.
-
- [5]patch-0.95.4.bj.status-time.1.
- You can show the current time in your preferred format in the
- status line with this patch. (A bug which prevented compilation
- of this patch on some systems was fixed on March 14).
-
- [6]patch-0.95.4.bj.my_hdr_subject.3
- Use this patch:
-
- + To execute sendhooks before setting subject to make it
- possible to set the subject in a sendhook. The price is that
- you miss the possibility to let the sendhook depend upon the
- subject.
- + To let "my_hdr Subject" commands be controlled by $hdrs. Now
- $hdrs only controls all other kinds of my_hdr commands.
- + To let sendhooks work in batch mode.
-
- Thank you to [7]Rob Reid for fixing a bug in the second version
- of this patch.
-
- [8]patch-0.95.3.bj.ed_mtime.1.
- When you leave the editor, mutt will check if the edited file's
- modification time have changed to decide if the file has been
- modified. This means that it you are able to modify it in less
- than one second (e.g. by running a script to generate some
- text), Mutt may think that it is unmodified.
-
- This patch solves this problem by seting the time stamp of a
- new file to `one second ago' before calling the editor.
-
- [9]patch-0.94.13.bj.current_shortcut.1
- This patch will make the ^ character a shortcut for the
- currently open mailbox.
-
-Optimizations
-
- [10]patch-0.95.bj.hash_destroy.2.
- This patch will speed up a little bit closing of mailboxes.
- _________________________________________________________________
-
-
- 1999-04-17 [11]Byrial Jensen <[12]byrial@image.dk>
-
- This page: http://www.image.dk/~byrial/mutt/patches/
- _________________________________________________________________
-
-References
-
- 1. http://www.mutt.org/
- 2. mailto:byrial@image.dk
- 3. http://home.worldonline.dk/~byrial/mutt/patches/patch-0.95.3i.bj.keyattach.1
- 4. http://home.worldonline.dk/~byrial/mutt/patches/patch-0.95.bj.noquote_hdr_term.1
- 5. http://home.worldonline.dk/~byrial/mutt/patches/patch-0.95.4.bj.status-time.1
- 6. http://home.worldonline.dk/~byrial/mutt/patches/patch-0.95.4.bj.my_hdr_subject.3
- 7. http://astro.utoronto.ca/~reid/
- 8. http://home.worldonline.dk/~byrial/mutt/patches/patch-0.95.3.bj.ed_mtime.1
- 9. http://home.worldonline.dk/~byrial/mutt/patches/patch-0.94.13.bj.current_shortcut.1
- 10. http://home.worldonline.dk/~byrial/mutt/patches/patch-0.95.bj.hash_destroy.2
- 11. http://home.worldonline.dk/~byrial/
- 12. mailto:byrial@image.dk
+++ /dev/null
-
- 42.org, resources, mutt-patches
- _________________________________________________________________
-
- Warning: Currently you need to apply patch-0.00.sec.patchlist.7 before
- any other patches.
- Here is the place where I keep all these little patches for mutt which
- are so dangerous and big that they haven't gotten into mainstream mutt
- yet (and probably never will). But they make my day brighter and
- happier so i decided to keep & update them here. I'm currently running
- [1]Mutt 1.0i so these patches here should cleanly apply to at least
- this version.
-drwxr-xr-x 3 sec sec 512 May 10 1998 [2]contrib/
--rw-r--r-- 1 sec sec 3270 Aug 25 15:22 [3]patch-0.00.sec.patchlist.7
--rw-r--r-- 1 sec sec 2678 Mar 23 1999 [4]patch-0.94.12.oe.__.1
--rw-r--r-- 1 sec sec 1695 Mar 22 1999 [5]patch-0.94.7.sec.backlog.1
--rw-r--r-- 1 sec sec 3372 Mar 22 1999 [6]patch-0.94.7.sec.pager_status_on_t
-op.1
--rw-r--r-- 1 sec sec 3468 Mar 22 1999 [7]patch-0.94.7.sec.previous_jump.1
--rw-r--r-- 1 sec sec 3250 Mar 22 1999 [8]patch-0.94.7.sec.score_auto.1
--rw-r--r-- 1 sec sec 2010 Mar 23 1999 [9]patch-0.94.7.vikas.word_chars.1
--rw-r--r-- 1 sec sec 1102 Mar 31 1999 [10]patch-0.95.3.bj.ed_mtime.1
--rw-r--r-- 1 sec sec 641 Mar 23 1999 [11]patch-0.95.3i.bj.keyattach.1
--rw-r--r-- 1 sec sec 6176 Mar 31 1999 [12]patch-0.95.4.bj.status-time.1
--rw-r--r-- 1 sec sec 1063 Mar 22 1999 [13]patch-0.95.4.sec.expand_hook.1
--rw-r--r-- 1 sec sec 536 Mar 22 1999 [14]patch-0.95.4.sec.keypad.1
--rw-r--r-- 1 sec sec 4035 Mar 29 1999 [15]patch-0.95.4.sec.mailcap-fix.1
--rw-r--r-- 1 sec sec 2119 Mar 28 1999 [16]patch-0.95.4.sec.reverse_reply.1
--rw-r--r-- 1 sec sec 3356 Mar 23 1999 [17]patch-0.95.4.vikas.print_index.1
--rw-r--r-- 1 sec sec 877 Jun 16 20:57 [18]patch-0.95.6.as.mark-old.1
--rw-r--r-- 1 sec sec 1625 Mar 31 1999 [19]patch-0.95.bj.hash_destroy.2
--rw-r--r-- 1 sec sec 5662 Mar 22 1999 [20]patch-0.95.sec.condense_pgp.1
--rw-r--r-- 1 sec sec 1164 Mar 22 1999 [21]patch-0.95.sec.position_on_new.1
--rw-r--r-- 1 sec sec 996 Sep 12 14:44 [22]patch-1.02.sec._A.1
- _________________________________________________________________
-
- Due to popular demand short descripions of each patch follow:
-
- [23]patch-0.00.sec.patchlist.7:
- This simple patch brings back "patchlist.c" you need to apply before
- any other patch you get from here.
-
- [24]patch-0.94.12.oe.__.1:
- From: "O'Shaughnessy Evans" <shaug@gstis.net>
- toggle conversion to lowercase of subsequent %-expansions with %_
- I find it useful in my default save-hook:
- fcc-save-hook . +Users/%_%O
-
- [25]patch-0.94.7.sec.backlog.1:
- From: Stefan `Sec` Zehl <sec@42.org>
- This patch adds a header "X-Current-Backlog:" (controlled by an
- option) which contains the number of undeleted messages in your
- folder. This really is bloatism but i've been bored a bit, and it
- can't be done reasonably outside of mutt. Please do not distribute
- this patch without my permission.
-
- [26]patch-0.94.7.sec.pager_status_on_top.1:
- This patch adds "set pager_status_on_top" which basically allows you
- to control the status line in the pager independently of the normal
- "status_on_top". It also adds a new color object pager_status, which
- allows you to control the color of the pager_status independently.
-
- [27]patch-0.94.7.sec.previous_jump.1:
- This adds a new function "previous_jump" by default bound to 'ESC-b'
- in the main menu and pager. It lets you jump to the message you last
- jumped from. I.e. while moving through your mailbox with TAB, you can
- go one step back with ESC-b.
- this one needs some more work, but i didn't find the time to do it
- 'right' yet.
-
- [28]patch-0.94.7.sec.score_auto.1:
- This one adds $score_auto which controls auto-deletion and
- auto-flagging of mails with (score<0) or (score>=9999).
-
- [29]patch-0.94.7.vikas.word_chars.1:
- From: Vikas Agnihotri <VikasA@att.com>
- Adds $word_chars, a list of nonalphanumeric characters considered part
- of a word by the line editor.
-
- [30]patch-0.95.3.bj.ed_mtime.1:
- From: Byrial Jensen <byrial@image.dk>
- Fix a problem where mutt would think you didn't edit a file, if your
- computer is too fast.
-
- [31]patch-0.95.3i.bj.keyattach.1:
- From: Byrial Jensen <byrial@image.dk>
- Avoid sending out a temporary filename from your box when sending a
- pgp key.
-
- [32]patch-0.95.4.bj.status-time.1:
- From: Byrial Jensen <byrial@image.dk>
- You can show the current time in your preferred format in the status
- line with this patch.
-
- [33]patch-0.95.4.sec.expand_hook.1:
- From: Stefan `Sec` Zehl <sec@42.org>
- This patch makes send-hooks expand %-expandos, too. I wrote that for
- someone else, and think it's quite usable.
-
- [34]patch-0.95.4.sec.keypad.1:
- From: Stefan `Sec` Zehl <sec@42.org>
- This re-enables the normal cursor keys on exit. It is needed on my
- FreeBSD-2.2.7-STABLE system with ncurses.
-
- [35]patch-0.95.4.sec.mailcap-fix.1:
- From: Stefan `Sec` Zehl <sec@42.org>
- This patch fixes the mailcap handling for mails which only contain an
- non displayable attachment. It also brings back the 'M' Status
- character to display this kind of mail.
-
- [36]patch-0.95.4.sec.reverse_reply.1:
- extends reverse_alias to also fix the Realnames in outgoing Mail.
-
- [37]patch-0.95.4.vikas.print_index.1:
- From: Vikas Agnihotri <VikasA@att.com>
- This patch adds a command to the 'index' menu called print-index
- (default binding 'P') that prints the current message index just as it
- appears on the screen. Note that it prints the index entries for the
- entire folder and not just what you can see on the current screen. It
- honors the $print setting and uses $print_cmd to print.
-
- [38]patch-0.95.6.as.mark-old.1:
- From: Aaron Schrab <aaron+mutt@schrab.com>
- With this patch, mutt will distinguish between old and new messages as
- if mark_old were set, but it will only automatically change new
- messages to old if mask_old is set, otherwise they're only marked old
- manually (with set-flag).
-
- [39]patch-0.95.bj.hash_destroy.2:
- From: Byrial Jensen <byrial@image.dk>
- This patch will speed up the closing of mailboxes a little bit.
-
- [40]patch-0.95.sec.condense_pgp.1:
- From: Stefan `Sec` Zehl <sec@42.org>
- Here is the new version of condese_pgp. This patch condenses the
- output of "pgp" in mutt to the relevant parts. (Parts of this patch
- have been stolen from alt_pgp from Frank Pilhofer) you can view the
- whole PGP output again by setting "pgp_paranoid".
-
- [41]patch-0.95.sec.position_on_new.1:
- This ugly but useful hack makes mutt position on a new message if you
- hit TAB, even if the new message just arrived :)
-
- [42]patch-1.02.sec._A.1:
- From: Stefan `Sec` Zehl <sec@42.org>
- adds %A to possible pager_format expandos. It lists number of new
- Mails.
- I find it useful in my pager_format:
- set pager_format="[%Z] %A-%C/%m %.34f%>%[%d.%b %y, %H:%M]"
- _________________________________________________________________
-
- If you want to see [43]mutt's homepage or want to know something about
- [44]mutt's advantages then click on the appropriate words. Other
- people also keep patches around, which might be of interest. See
- [45]Byrial's page, for example. You could also take a peek at dunc's
- [46]wishlist, to see where mutt is going. If you are so inclined you
- could also view the [47]script I use to generate this page or my
- personal [48].muttrc. Your are also welcome to send your comments to
- [49]sec@42.org.
- _________________________________________________________________
-
- [50]Stefan `Sec` Zehl 10-May-1997, 09.Nov.1999
-
-References
-
- 1. http://sec.42.org/mutt/mutt_-v
- 2. http://sec.42.org/mutt/contrib/
- 3. http://sec.42.org/mutt/patch-0.00.sec.patchlist.7
- 4. http://sec.42.org/mutt/patch-0.94.12.oe.__.1
- 5. http://sec.42.org/mutt/patch-0.94.7.sec.backlog.1
- 6. http://sec.42.org/mutt/patch-0.94.7.sec.pager_status_on_top.1
- 7. http://sec.42.org/mutt/patch-0.94.7.sec.previous_jump.1
- 8. http://sec.42.org/mutt/patch-0.94.7.sec.score_auto.1
- 9. http://sec.42.org/mutt/patch-0.94.7.vikas.word_chars.1
- 10. http://sec.42.org/mutt/patch-0.95.3.bj.ed_mtime.1
- 11. http://sec.42.org/mutt/patch-0.95.3i.bj.keyattach.1
- 12. http://sec.42.org/mutt/patch-0.95.4.bj.status-time.1
- 13. http://sec.42.org/mutt/patch-0.95.4.sec.expand_hook.1
- 14. http://sec.42.org/mutt/patch-0.95.4.sec.keypad.1
- 15. http://sec.42.org/mutt/patch-0.95.4.sec.mailcap-fix.1
- 16. http://sec.42.org/mutt/patch-0.95.4.sec.reverse_reply.1
- 17. http://sec.42.org/mutt/patch-0.95.4.vikas.print_index.1
- 18. http://sec.42.org/mutt/patch-0.95.6.as.mark-old.1
- 19. http://sec.42.org/mutt/patch-0.95.bj.hash_destroy.2
- 20. http://sec.42.org/mutt/patch-0.95.sec.condense_pgp.1
- 21. http://sec.42.org/mutt/patch-0.95.sec.position_on_new.1
- 22. http://sec.42.org/mutt/patch-1.02.sec._A.1
- 23. http://sec.42.org/mutt/#patch-0.00.sec.patchlist.7
- 24. http://sec.42.org/mutt/#patch-0.94.12.oe.__.1
- 25. http://sec.42.org/mutt/#patch-0.94.7.sec.backlog.1
- 26. http://sec.42.org/mutt/#patch-0.94.7.sec.pager_status_on_top.1
- 27. http://sec.42.org/mutt/#patch-0.94.7.sec.previous_jump.1
- 28. http://sec.42.org/mutt/#patch-0.94.7.sec.score_auto.1
- 29. http://sec.42.org/mutt/#patch-0.94.7.vikas.word_chars.1
- 30. http://sec.42.org/mutt/#patch-0.95.3.bj.ed_mtime.1
- 31. http://sec.42.org/mutt/#patch-0.95.3i.bj.keyattach.1
- 32. http://sec.42.org/mutt/#patch-0.95.4.bj.status-time.1
- 33. http://sec.42.org/mutt/#patch-0.95.4.sec.expand_hook.1
- 34. http://sec.42.org/mutt/#patch-0.95.4.sec.keypad.1
- 35. http://sec.42.org/mutt/#patch-0.95.4.sec.mailcap-fix.1
- 36. http://sec.42.org/mutt/#patch-0.95.4.sec.reverse_reply.1
- 37. http://sec.42.org/mutt/#patch-0.95.4.vikas.print_index.1
- 38. http://sec.42.org/mutt/#patch-0.95.6.as.mark-old.1
- 39. http://sec.42.org/mutt/#patch-0.95.bj.hash_destroy.2
- 40. http://sec.42.org/mutt/#patch-0.95.sec.condense_pgp.1
- 41. http://sec.42.org/mutt/#patch-0.95.sec.position_on_new.1
- 42. http://sec.42.org/mutt/#patch-1.02.sec._A.1
- 43. http://www.mutt.org/
- 44. http://www.math.fu-berlin.de/~guckes/mutt/elm.vs.mutt.html
- 45. http://www.image.dk/~byrial/mutt/patches/
- 46. http://www.ucc.gu.uwa.edu.au/~dunc/mutt/wishlist/
- 47. http://sec.42.org/mutt/index.script
- 48. http://sec.42.org/mutt/.mutt/muttrc-1.0i.html
- 49. mailto:sec@42.org
- 50. http://www.42.org/~sec/