ports/71418: maintainer-update of mail/mutt-devel
Udo Schweigert
udo.schweigert at siemens.com
Mon Sep 6 08:00:46 UTC 2004
>Number: 71418
>Category: ports
>Synopsis: maintainer-update of mail/mutt-devel
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: maintainer-update
>Submitter-Id: current-users
>Arrival-Date: Mon Sep 06 08:00:45 GMT 2004
>Closed-Date:
>Last-Modified:
>Originator: Udo Schweigert
>Release: FreeBSD 4.10-STABLE i386
>Organization:
>Environment:
>Description:
Maintainer update of mail/mutt-devel:
- Add WITH_MUTT_IDN knob and register dependency if libidn is used.
- Delete the WITH_MUTT_CYRUS_SASL knob which wasn't working for a long
time.
- Update the maildir-header-cache and threadcomplete patches.
Committer: cvs rm files/patch-01
>How-To-Repeat:
>Fix:
diff -ru /usr/ports/mail/mutt-devel/Makefile ./Makefile
--- /usr/ports/mail/mutt-devel/Makefile Wed Sep 1 06:06:34 2004
+++ ./Makefile Sat Sep 4 12:36:35 2004
@@ -40,6 +40,9 @@
# If you do not want mutt to use the iconv library define:
# WITHOUT_MUTT_ICONV
#
+# If you want mutt to use the idn library define:
+# WITH_MUTT_IDN
+#
# If you want to enable extended quoting functions define:
# WITH_MUTT_QUOTE_PATCH
# This is a default knob and can be disabled by WITHOUT_MUTT_QUOTE_PATCH
@@ -59,10 +62,6 @@
# If you want to read and post news with mutt define:
# WITH_MUTT_NNTP
#
-# If you want to use the SASL authentication features with your email server
-# define
-# WITH_MUTT_CYRUS_SASL
-#
# If you want to use the rethreading functions define:
# WITH_MUTT_EDIT_THREADS
#
@@ -115,7 +114,7 @@
CONFIGURE_ARGS= --enable-flock --disable-fcntl --with-ssl=${OPENSSLBASE} \
--with-sharedir=${PREFIX}/share/mutt --with-docdir=${DOCSDIR} \
--sysconfdir=${PREFIX}/etc --enable-external-dotlock \
- --enable-pop --enable-imap
+ --enable-pop --enable-imap --disable-warnings
.if defined(MUTT_CONFIGURE_ARGS)
CONFIGURE_ARGS+= ${MUTT_CONFIGURE_ARGS}
.endif
@@ -203,14 +202,16 @@
.elif defined(MUTT_USES_SLANG)
LIB_DEPENDS+= slang.1:${PORTSDIR}/devel/libslang
.endif
-.if defined(WITH_MUTT_CYRUS_SASL)
-BROKEN= "mutt-devel's SASL code appears to be broken"
-LIB_DEPENDS+= sasl.8:${PORTSDIR}/security/cyrus-sasl
-.endif
.if defined(WITH_MUTT_MAILDIR_HEADER_CACHE)
LIB_DEPENDS+= db-4.2.2:${PORTSDIR}/databases/db42
CFLAGS+= -I${PREFIX}/include/db42
.endif
+.if exists(${LOCALBASE}/lib/libidn.so)
+WITH_MUTT_IDN= yes
+.endif
+.if defined(WITH_MUTT_IDN)
+LIB_DEPENDS+= idn.15:${PORTSDIR}/devel/libidn
+.endif
.if ! defined(WITHOUT_MUTT_SMIME_OUTLOOK_COMPAT)
pre-configure::
@${PATCH} ${PATCH_ARGS} < ${PATCHDIR}/extra-patch-smime-outlook
@@ -252,9 +253,6 @@
CONFIGURE_ARGS+= --with-slang=${PREFIX}
PATCHFILES+= patch-${VVV_PATCH_VERSION}.vvv.slang.gz:vvv
.endif
-.if defined(WITH_MUTT_CYRUS_SASL)
-CONFIGURE_ARGS+= --with-sasl=${LOCALBASE}
-.endif
.if defined(WITHOUT_NLS)
CONFIGURE_ARGS+= --disable-nls
.endif
@@ -263,6 +261,11 @@
.else
CONFIGURE_ARGS+= --with-libiconv-prefix=${PREFIX}
.endif
+.if defined(WITH_MUTT_IDN)
+CONFIGURE_ARGS+= --with-idn
+.else
+CONFIGURE_ARGS+= --without-idn
+.endif
PATCH_DIST_STRIP= -p1
@@ -321,7 +324,7 @@
.endif
.if defined(WITH_MUTT_MAILDIR_HEADER_CACHE)
SCRIPTS_ENV+= MUTT_MAILDIR_HEADER_CACHE="yes"
-CONFIGURE_ARGS+= --enable-hcache
+CONFIGURE_ARGS+= --enable-hcache --without-gdbm --with-bdb
.endif
.if defined(WITH_MUTT_EDIT_THREADS)
SCRIPTS_ENV+= MUTT_EDIT_THREADS="yes"
diff -ru /usr/ports/mail/mutt-devel/files/extra-patch-maildir-header-cache ./files/extra-patch-maildir-header-cache
--- /usr/ports/mail/mutt-devel/files/extra-patch-maildir-header-cache Mon Aug 30 06:06:29 2004
+++ ./files/extra-patch-maildir-header-cache Fri Sep 3 17:52:43 2004
@@ -2,11 +2,11 @@
--- a/PATCHES
+++ b/PATCHES
@@ -0,0 +1 @@
-+patch-1.5.6.tg.hcache.2
++patch-1.5.6.tg.hcache.6
diff -Nru a/configure.in b/configure.in
--- a/configure.in 2004-08-18 09:43:09 +02:00
-+++ b/configure.in 2004-08-18 06:34:04 +02:00
-@@ -768,6 +768,81 @@
++++ b/configure.in 2004-09-02 13:09:08 +02:00
+@@ -768,6 +768,90 @@
fi])
@@ -19,66 +19,75 @@
+ OLDCPPFLAGS="$CPPFLAGS"
+ OLDLIBS="$LIBS"
+
-+ BDB_VERSIONS="db-4 db4 db-4.3 db4.3 db43 db-4.2 db4.2 db42 db-4.1 db4.1 db41 db"
-+
-+ AC_MSG_CHECKING([for BerkeleyDB > 4.0])
++ ac_prefer_gdbm=yes
++ AC_ARG_WITH(gdbm, [ --without-gdbm Get rid of gdbm even if it is available ],
++ ac_prefer_gdbm=$withval)
++ if test x$ac_prefer_gdbm != xno; then
++ CPPFLAGS="$OLDCPPFLAGS"
++ LIBS="$OLDLIBS -lgdbm";
++ AC_CACHE_CHECK(for gdbm_open, ac_cv_gdbmopen,[
++ ac_cv_gdbmopen=no
++ AC_TRY_LINK([#include <gdbm.h>],[gdbm_open(0,0,0,0,0);],[ac_cv_gdbmopen=yes])
++ ])
++ fi
+
-+ for d in /opt/csw/bdb4 /opt /usr/local /usr; do
-+ for v in `echo $BDB_VERSIONS .`; do
-+ if test -r "$d/include/$v/db.h"; then
-+ BDB_INCLUDE_DIR="$d/include/$v"
-+ break
-+ fi
++ ac_bdb_prefix=yes
++ AC_ARG_WITH(bdb, [ --with-bdb[=DIR] Use BerkeleyDB4 if gdbm is not available ],
++ ac_bdb_prefix=$withval)
++ if test x$ac_bdb_prefix != xno -a x$ac_cv_gdbmopen != xyes; then
++ test x$ac_bdb_prefix = xyes && ac_bdb_prefix="$mutt_cv_prefix /opt/csw/bdb4 /opt /usr/local /usr"
++ for d in $ac_bdb_prefix; do
++ bdbpfx="$bdbpfx $d"
++ for v in BerkeleyDB.4.3 BerkeleyDB.4.2 BerkeleyDB.4.1; do
++ bdbpfx="$bdbpfx $d/$v"
++ done
+ done
-+ for v in `echo $BDB_VERSIONS .`; do
-+ if test -d "$d/lib/$v"; then
-+ BDB_LIB_DIR="$d/lib/$v"
-+ break
-+ fi
++ BDB_VERSIONS="db-4 db4 db-4.3 db4.3 db43 db-4.2 db4.2 db42 db-4.1 db4.1 db41 db ''"
++ AC_MSG_CHECKING([for BerkeleyDB > 4.0])
++ for d in $bdbpfx; do
++ BDB_INCLUDE_DIR=""
++ BDB_LIB_DIR=""
++ for v in / $BDB_VERSIONS; do
++ if test -r "$d/include/$v/db.h"; then
++ BDB_INCLUDE_DIR="$d/include/$v"
++ if test -d "$d/lib/$v"; then
++ BDB_LIB_DIR="$d/lib/$v"
++ for l in `echo $BDB_VERSIONS`; do
++ CPPFLAGS="-I$BDB_INCLUDE_DIR $OLDCPPFLAGS"
++ LIBS="$OLDLIBS -L$BDB_LIB_DIR -l$l"
++ AC_TRY_LINK([
++ #include <stdlib.h>
++ #include <db.h>
++ ],[
++ DB *db = NULL;
++ db->open(db,NULL,NULL,NULL,0,0,0);
++ ],[
++ ac_cv_dbcreate=yes
++ BDB_LIB="$l"
++ break
++ ])
++ done
++ test x$ac_dbcreate = xyes && break
++ fi
++ fi
++ done
++ test x$BDB_LIB != x && break
+ done
-+ for v in BerkeleyDB.4.3 BerkeleyDB.4.2 BerkeleyDB.4.1; do
-+ test -r "$d/$v/include/db.h" && BDB_INCLUDE_DIR="$d/$v/include"
-+ test -d "$d/$v/lib" && BDB_LIB_DIR="$d/$v/lib"
-+ done
-+ test x$BDB_INCLUDE_DIR = x -o x$BDB_LIB_DIR = x && continue
-+ for v in `echo $BDB_VERSIONS`; do
-+ CPPFLAGS="$OLDCPPFLAGS -I$BDB_INCLUDE_DIR"
-+ LIBS="$OLDLIBS -L$BDB_LIB_DIR -l$v"
-+ AC_TRY_LINK([
-+ #include <stdlib.h>
-+ #include <db.h>
-+ ],[
-+ DB *db = NULL;
-+ db->open(db,NULL,NULL,NULL,0,0,0);
-+ ],[
-+ ac_cv_dbcreate=yes
-+ BDB_LIB="$v"
-+ break
-+ ])
-+ done
-+ test x$BDB_LIB != x && break
-+ done
-+
-+ if test x$ac_cv_dbcreate = xyes; then
-+ AC_MSG_RESULT(yes)
-+ else
-+ AC_MSG_RESULT(no)
++ if test x$ac_cv_dbcreate = xyes; then
++ AC_MSG_RESULT(yes)
++ else
++ AC_MSG_RESULT(no)
++ fi
+ fi
+
-+ CPPFLAGS="$OLDCPPFLAGS"
-+ LIBS="$OLDLIBS -lgdbm";
-+ AC_CACHE_CHECK(for gdbm_open, ac_cv_gdbmopen,
-+ [ac_cv_gdbmopen=no
-+ AC_TRY_LINK([#include <gdbm.h>],[gdbm_open(0,0,0,0,0);],[ac_cv_gdbmopen=yes])])
-+
-+ if test x$ac_cv_dbcreate = xyes; then
-+ CPPFLAGS="$OLDCPPFLAGS -I$BDB_INCLUDE_DIR"
-+ LIBS="$OLDLIBS -L$BDB_LIB_DIR -l$BDB_LIB"
-+ AC_DEFINE(HAVE_DB4, 1, [Sleepycat DB4 Support])
-+ elif test x$ac_cv_gdbmopen = xyes; then
++ if test x$ac_cv_gdbmopen = xyes; then
+ CPPFLAGS="$OLDCPPFLAGS"
+ LIBS="$OLDLIBS -lgdbm";
+ AC_DEFINE(HAVE_GDBM, 1, [GDBM Support])
++ elif test x$ac_cv_dbcreate = xyes; then
++ CPPFLAGS="-I$BDB_INCLUDE_DIR $OLDCPPFLAGS"
++ LIBS="$OLDLIBS -L$BDB_LIB_DIR -l$BDB_LIB"
++ AC_DEFINE(HAVE_DB4, 1, [Sleepycat DB4 Support])
+ else
+ AC_MSG_ERROR(You need Sleepycat DB4 or GDBM for --enable-hcache)
+ fi
@@ -104,8 +113,8 @@
WHERE char *MhUnseen;
diff -Nru a/hcache.c b/hcache.c
--- /dev/null Wed Dec 31 16:00:00 196900
-+++ b/hcache.c 2004-08-26 22:32:53 +02:00
-@@ -0,0 +1,798 @@
++++ b/hcache.c 2004-09-02 14:29:03 +02:00
+@@ -0,0 +1,797 @@
+/*
+ * Copyright (C) 2004 Thomas Glanzmann <sithglan at stud.uni-erlangen.de>
+ * Copyright (C) 2004 Tobias Werth <sitowert at stud.uni-erlangen.de>
@@ -133,7 +142,7 @@
+#if HAVE_GDBM
+#include <gdbm.h>
+#elif HAVE_DB4
-+#include <db42/db.h>
++#include <db.h>
+#endif
+
+#include <errno.h>
@@ -514,7 +523,7 @@
+{
+ int crc = 0;
+
-+ crc = crc32(crc, (unsigned char const *) "sithglan at stud.uni-erlangen.de[sithglan]|hcache.c|20040826203315|26242", mutt_strlen("sithglan at stud.uni-erlangen.de[sithglan]|hcache.c|20040826203315|26242"));
++ crc = crc32(crc, (unsigned char const *) "sithglan at stud.uni-erlangen.de[sithglan]|hcache.c|20040902122921|26232", mutt_strlen("sithglan at stud.uni-erlangen.de[sithglan]|hcache.c|20040902122921|26232"));
+
+#if HAVE_LANGINFO_CODESET
+ crc = crc32(crc, (unsigned char const *) Charset, mutt_strlen(Charset));
@@ -614,12 +623,11 @@
+mutt_hcache_open(const char *path, const char *folder)
+{
+ struct header_cache *h = safe_calloc(1, sizeof(HEADER_CACHE));
++ int pagesize = atoi(HeaderCachePageSize) ? atoi(HeaderCachePageSize) : 16384;
+ h->db = NULL;
+ h->folder = safe_strdup (folder);
+ h->crc = generate_crc32();
+
-+ int pagesize = atoi(HeaderCachePageSize) ? atoi(HeaderCachePageSize) : 16384;
-+
+ if (! path || path[0] == '\0') {
+ FREE(& h->folder);
+ FREE(& h);
@@ -1247,86 +1255,100 @@
#ifdef ISPELL
diff -Nru a/mh.c b/mh.c
--- a/mh.c 2004-08-18 09:43:13 +02:00
-+++ b/mh.c 2004-07-26 09:37:28 +02:00
-@@ -779,11 +779,68 @@
++++ b/mh.c 2004-09-03 14:33:12 +02:00
+@@ -779,30 +779,79 @@
return r;
}
+#if USE_HCACHE
-+
+static size_t maildir_hcache_keylen (const char *fn)
+{
+ const char * p = strchr (fn, ':');
+ return p ? (size_t) (p - fn) : mutt_strlen(fn);
+}
-+
++#endif
/*
* This function does the second parsing pass for a maildir-style
* folder.
*/
-+void maildir_delayed_parsing (CONTEXT * ctx, struct maildir *md)
-+{
-+ struct maildir *p;
-+ void *hc = NULL;
-+ char fn[_POSIX_PATH_MAX];
-+ void *data;
-+ unsigned int size;
-+ struct timeval *when = NULL;
-+ struct stat lastchanged;
-+ int ret;
-+
-+ hc = mutt_hcache_open (HeaderCache, ctx->path);
+-
+ void maildir_delayed_parsing (CONTEXT * ctx, struct maildir *md)
+ {
+ struct maildir *p;
+ char fn[_POSIX_PATH_MAX];
++ int count;
+
+- for (p = md; p; p = p->next)
+- if (p && p->h && !p->header_parsed)
+- {
+- snprintf (fn, sizeof (fn), "%s/%s", ctx->path, p->h->path);
+- if (maildir_parse_message (ctx->magic, fn, p->h->old, p->h))
+- p->header_parsed = 1;
+- else
+- mutt_free_header (&p->h);
+- }
++#if USE_HCACHE
++ void *hc = NULL;
++ void *data;
++ unsigned int size;
++ struct timeval *when = NULL;
++ struct stat lastchanged;
++ int ret;
+
-+ for (p = md; p; p = p->next) {
-+ if (! (p && p->h && !p->header_parsed)) {
-+ continue;
-+ }
++ hc = mutt_hcache_open (HeaderCache, ctx->path);
++#endif
+
-+ data = mutt_hcache_fetch (hc, p->h->path + 3, &maildir_hcache_keylen);
-+ when = (struct timeval *) data;
++ for (p = md, count = 0; p; p = p->next, count++)
++ {
++ if (! (p && p->h && !p->header_parsed))
++ continue;
+
-+ snprintf(fn, sizeof (fn), "%s/%s", ctx->path, p->h->path);
++#if USE_HCACHE
++ data = mutt_hcache_fetch (hc, p->h->path + 3, &maildir_hcache_keylen);
++ when = (struct timeval *) data;
++#endif
+
-+ if (option(OPTHCACHEVERIFY)) {
-+ ret = stat(fn, &lastchanged);
-+ } else {
-+ lastchanged.st_mtime = 0;
-+ ret = 0;
-+ }
++ snprintf (fn, sizeof (fn), "%s/%s", ctx->path, p->h->path);
+
-+ if (data != NULL
-+ && ret == 0
-+ && lastchanged.st_mtime <= when->tv_sec) {
-+ p->h = mutt_hcache_restore ((unsigned char *)data, &p->h);
-+ maildir_parse_flags (p->h, fn);
-+
-+ } else if (maildir_parse_message (ctx->magic, fn, p->h->old, p->h)) {
-+ maildir_parse_flags(p->h, fn);
-+ p->header_parsed = 1;
-+ mutt_hcache_store (hc, p->h->path + 3, p->h, 0, &maildir_hcache_keylen);
-+ } else {
-+ mutt_free_header (&p->h);
-+ }
-+ FREE(&data);
-+ }
-+ mutt_hcache_close (hc);
-+}
++#if USE_HCACHE
++ if (option(OPTHCACHEVERIFY)) {
++ ret = stat(fn, &lastchanged);
++ } else {
++ lastchanged.st_mtime = 0;
++ ret = 0;
++ }
+
-+#else /* USE_HCACHE */
-
- void maildir_delayed_parsing (CONTEXT * ctx, struct maildir *md)
- {
-@@ -801,7 +858,7 @@
- }
++ if (data != NULL && !ret && lastchanged.st_mtime <= when->tv_sec)
++ {
++ p->h = mutt_hcache_restore ((unsigned char *)data, &p->h);
++ maildir_parse_flags (p->h, fn);
++ } else
++#endif
++ if (maildir_parse_message (ctx->magic, fn, p->h->old, p->h))
++ {
++ p->header_parsed = 1;
++ maildir_parse_flags (p->h, fn);
++#if USE_HCACHE
++ mutt_hcache_store (hc, p->h->path + 3, p->h, 0, &maildir_hcache_keylen);
++#endif
++ } else
++ mutt_free_header (&p->h);
++#if USE_HCACHE
++ FREE(&data);
++#endif
++ }
++#if USE_HCACHE
++ mutt_hcache_close (hc);
++#endif
}
-
-+#endif /* USE_HCACHE */
-
+-
/* Read a MH/maildir style mailbox.
*
-@@ -1293,6 +1350,9 @@
+ * args:
+@@ -1293,6 +1342,9 @@
{
char path[_POSIX_PATH_MAX], tmp[_POSIX_PATH_MAX];
int i, j;
@@ -1336,7 +1358,7 @@
if (ctx->magic == M_MH)
i = mh_check_mailbox (ctx, index_hint);
-@@ -1302,6 +1362,11 @@
+@@ -1302,6 +1354,11 @@
if (i != 0)
return i;
@@ -1348,7 +1370,7 @@
for (i = 0; i < ctx->msgcount; i++)
{
if (ctx->hdrs[i]->deleted
-@@ -1310,7 +1375,13 @@
+@@ -1310,7 +1367,13 @@
snprintf (path, sizeof (path), "%s/%s", ctx->path, ctx->hdrs[i]->path);
if (ctx->magic == M_MAILDIR
|| (option (OPTMHPURGE) && ctx->magic == M_MH))
@@ -1362,7 +1384,7 @@
else if (ctx->magic == M_MH)
{
/* MH just moves files out of the way when you delete them */
-@@ -1332,16 +1403,21 @@
+@@ -1332,16 +1395,21 @@
if (ctx->magic == M_MAILDIR)
{
if (maildir_sync_message (ctx, i) == -1)
@@ -1386,7 +1408,7 @@
if (ctx->magic == M_MH)
mh_update_sequences (ctx);
-@@ -1362,6 +1438,13 @@
+@@ -1362,6 +1430,13 @@
}
return 0;
diff -ru /usr/ports/mail/mutt-devel/files/patch-01 ./files/patch-01
--- /usr/ports/mail/mutt-devel/files/patch-01 Sun Jul 28 19:26:11 2002
+++ ./files/patch-01 Thu Jan 1 01:00:00 1970
@@ -1,20 +0,0 @@
---- configure.in.orig Thu May 2 01:21:49 2002
-+++ configure.in Wed Jul 17 17:08:49 2002
-@@ -591,7 +591,7 @@
- then
- if test "$with_sasl" != "yes"
- then
-- CPPFLAGS="$CPPFLAGS -I$with_sasl/include"
-+ CPPFLAGS="$CPPFLAGS -I$with_sasl/include/sasl1"
- LDFLAGS="$LDFLAGS -L$with_sasl/lib"
- fi
-
-@@ -644,7 +644,7 @@
- fi])
-
- if test x$GCC = xyes -a $mutt_cv_warnings = yes; then
-- CFLAGS="-Wall -pedantic $CFLAGS"
-+ CFLAGS="-Wall $CFLAGS"
- fi
-
- AC_ARG_ENABLE(nfs-fix, [ --enable-nfs-fix Work around an NFS with broken attributes caching ],
diff -ru /usr/ports/mail/mutt-devel/files/patch-threadcomplete ./files/patch-threadcomplete
--- /usr/ports/mail/mutt-devel/files/patch-threadcomplete Mon Aug 30 06:06:29 2004
+++ ./files/patch-threadcomplete Mon Sep 6 09:49:42 2004
@@ -1,21 +1,12 @@
diff -Nru a/PATCHES b/PATCHES
---- PATCHES 2004-07-24 12:27:17 +02:00
-+++ PATCHES 2004-08-22 02:01:52 +02:00
+--- PATCHES
++++ PATCHES
@@ -0,0 +1 @@
-+patch-1.5.6.cb.thread_pattern.1
++patch-1.5.6+20040904.tg.mutt-thread.3
diff -Nru a/doc/manual.sgml.head b/doc/manual.sgml.head
--- doc/manual.sgml.head 2004-07-24 12:27:29 +02:00
-+++ doc/manual.sgml.head 2004-08-25 14:54:08 +02:00
-@@ -1771,6 +1771,8 @@
- messages:
-
- <tscreen><verb>
-+~a messages in threads that contain at least one tagged message;
-+ this is the same as ~(~T) [see below for ~(..)]
- ~A all messages
- ~b EXPR messages which contain EXPR in the message body
- ~B EXPR messages which contain EXPR in the whole message
-@@ -1809,6 +1811,8 @@
++++ doc/manual.sgml.head 2004-09-04 12:40:02 +02:00
+@@ -1809,6 +1809,8 @@
~y EXPR messages which contain EXPR in the `X-Label' field
~z [MIN]-[MAX] messages with a size in the range MIN to MAX *)
~= duplicated messages (see $duplicate_threads)
@@ -24,15 +15,11 @@
</verb></tscreen>
Where EXPR, USER, ID, and SUBJECT are
+ Where EXPR, USER, ID, and SUBJECT are
diff -Nru a/mutt.h b/mutt.h
--- mutt.h 2004-07-24 12:27:21 +02:00
-+++ mutt.h 2004-08-25 14:04:40 +02:00
-@@ -207,10 +207,12 @@
- M_LIMIT,
- M_EXPIRED,
- M_SUPERSEDED,
-+ M_THREADCOMPLETE,
-
++++ mutt.h 2004-09-04 12:36:18 +02:00
+@@ -211,6 +211,7 @@
/* actions for mutt_pattern_comp/mutt_pattern_exec */
M_AND,
M_OR,
@@ -42,16 +29,8 @@
M_COLLAPSED,
diff -Nru a/pattern.c b/pattern.c
--- pattern.c 2004-07-24 12:27:23 +02:00
-+++ pattern.c 2004-08-25 15:37:51 +02:00
-@@ -44,6 +44,7 @@
- }
- Flags[] =
- {
-+ { 'a', M_THREADCOMPLETE, 0, NULL },
- { 'A', M_ALL, 0, NULL },
- { 'b', M_BODY, M_FULL_MSG, eat_regexp },
- { 'B', M_WHOLE_MSG, M_FULL_MSG, eat_regexp },
-@@ -700,7 +701,7 @@
++++ pattern.c 2004-09-04 12:37:52 +02:00
+@@ -700,7 +700,7 @@
pattern_t *mutt_pattern_comp (/* const */ char *s, int flags, BUFFER *err)
{
pattern_t *curlist = NULL;
@@ -60,7 +39,7 @@
pattern_t *last = NULL;
int not = 0;
int alladdr = 0;
-@@ -755,6 +756,39 @@
+@@ -755,6 +755,39 @@
alladdr = 0;
break;
case '~':
@@ -100,7 +79,7 @@
if (implicit && or)
{
/* A | B & C == (A | B) & C */
-@@ -945,6 +979,30 @@
+@@ -945,6 +978,29 @@
return alladdr;
}
@@ -112,10 +91,9 @@
+ if(!t)
+ return 0;
+ h = t->message;
-+ if(!h)
-+ return 0;
-+ if(mutt_pattern_exec(pat, flags, ctx, h))
-+ return 1;
++ if(h)
++ if(mutt_pattern_exec(pat, flags, ctx, h))
++ return 1;
+
+ if(up && (a=match_threadcomplete(pat, flags, ctx, t->parent,1,1,1,0)))
+ return a;
@@ -131,7 +109,7 @@
/* flags
M_MATCH_FULL_ADDRESS match both personal and machine address */
int
-@@ -958,6 +1016,8 @@
+@@ -958,6 +1014,8 @@
return (pat->not ^ (perform_and (pat->child, flags, ctx, h) > 0));
case M_OR:
return (pat->not ^ (perform_or (pat->child, flags, ctx, h) > 0));
@@ -140,7 +118,38 @@
case M_ALL:
return (!pat->not);
case M_EXPIRED:
-@@ -1023,6 +1083,16 @@
+--- doc/manual.sgml.head.orig2 Mon Sep 6 09:24:16 2004
++++ doc/manual.sgml.head Mon Sep 6 09:25:41 2004
+@@ -1773,6 +1773,8 @@
+ messages:
+
+ <tscreen><verb>
++~a messages in threads that contain at least one tagged message;
++ this is the same as ~(~T) [see below for ~(..)]
+ ~A all messages
+ ~b EXPR messages which contain EXPR in the message body
+ ~B EXPR messages which contain EXPR in the whole message
+--- mutt.h.orig2 Mon Sep 6 09:24:17 2004
++++ mutt.h Mon Sep 6 09:27:04 2004
+@@ -212,6 +212,7 @@
+ M_LIMIT,
+ M_EXPIRED,
+ M_SUPERSEDED,
++ M_THREADCOMPLETE,
+
+ /* actions for mutt_pattern_comp/mutt_pattern_exec */
+ M_AND,
+--- pattern.c.orig2 Mon Sep 6 09:24:10 2004
++++ pattern.c Mon Sep 6 09:30:02 2004
+@@ -44,6 +44,7 @@
+ }
+ Flags[] =
+ {
++ { 'a', M_THREADCOMPLETE, 0, NULL },
+ { 'A', M_ALL, 0, NULL },
+ { 'b', M_BODY, M_FULL_MSG, eat_regexp },
+ { 'B', M_WHOLE_MSG, M_FULL_MSG, eat_regexp },
+@@ -1024,6 +1083,16 @@
pat->alladdr, 2, h->env->to, h->env->cc));
case M_LIST:
return (pat->not ^ mutt_is_list_recipient (pat->alladdr, h->env->to, h->env->cc));
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list