Bug 71418 - maintainer-update of mail/mutt-devel
Summary: maintainer-update of mail/mutt-devel
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Kirill Ponomarev
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-09-06 09:00 UTC by Udo.Schweigert
Modified: 2004-10-12 17:42 UTC (History)
0 users

See Also:


Attachments
file.diff (19.79 KB, patch)
2004-09-06 09:00 UTC, Udo.Schweigert
no flags Details | Diff
extra-patch-maildir-header-cache (36.40 KB, text/plain; charset=us-ascii)
2004-09-21 07:18 UTC, Udo.Schweigert
no flags Details
extra-patch-maildir-header-cache (36.71 KB, text/plain; charset=us-ascii)
2004-09-29 15:42 UTC, Udo.Schweigert
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Udo.Schweigert 2004-09-06 09:00:45 UTC
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
Comment 1 Kirill Ponomarev freebsd_committer freebsd_triage 2004-09-06 09:04:47 UTC
Responsible Changed
From-To: freebsd-ports-bugs->krion

Grab.
Comment 2 Udo.Schweigert 2004-09-20 19:45:12 UTC
On Mon, Sep 06, 2004 at 08:00:45 +0000, FreeBSD-gnats-submit@FreeBSD.org wrote:
> Thank you very much for your problem report.
> It has the internal identification `ports/71418'.
> The individual assigned to look at your
> report is: freebsd-ports-bugs. 
> 

Meanwhile a bugfix for the maildir header cache has been released, which is
part of the following patch:

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	Mon Sep 20 10:47: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.7
 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-20 10:12:45 +02:00
+@@ -0,0 +1,801 @@
 +/*
 + * Copyright (C) 2004 Thomas Glanzmann <sithglan@stud.uni-erlangen.de>
 + * Copyright (C) 2004 Tobias Werth <sitowert@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@stud.uni-erlangen.de[sithglan]|hcache.c|20040826203315|26242", mutt_strlen("sithglan@stud.uni-erlangen.de[sithglan]|hcache.c|20040826203315|26242"));
++	crc = crc32(crc, (unsigned char const *) "sithglan@stud.uni-erlangen.de[sithglan]|hcache.c|20040920081316|30692", mutt_strlen("sithglan@stud.uni-erlangen.de[sithglan]|hcache.c|20040920081316|30692"));
 +
 +#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);
@@ -785,6 +793,7 @@
 +	ret = db_env_create(&h->env, 0);
 +	if (ret) {
 +		mx_unlock_file(h->lockfile, h->fd, 0);
++		close(h->fd);
 +		FREE(& h);
 +		return NULL;
 +	}
@@ -795,6 +804,7 @@
 +		if (ret) {
 +			h->env->close(h->env, 0);
 +			mx_unlock_file(h->lockfile, h->fd, 0);
++			close(h->fd);
 +			FREE(& h);
 +			return NULL;
 +		}
@@ -810,6 +820,7 @@
 +		h->db->close(h->db, 0);
 +		h->env->close(h->env, 0);
 +		mx_unlock_file(h->lockfile, h->fd, 0);
++		close(h->fd);
 +		FREE(& h);
 +		return NULL;
 +	}
@@ -830,6 +841,7 @@
 +	h->db->close(h->db, 0);
 +	h->env->close(h->env, 0);
 +	mx_unlock_file(h->lockfile, h->fd, 0);
++	close(h->fd);
 +	FREE(& h);
 +}
 +
@@ -1247,86 +1259,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 +1362,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 +1374,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 +1388,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 +1412,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));
Comment 3 Udo.Schweigert 2004-09-21 07:18:11 UTC
On Mon, Sep 20, 2004 at 20:45:12 +0200, Udo Schweigert wrote:
> Meanwhile a bugfix for the maildir header cache has been released, which is
> part of the following patch:

The maildir header cache changed again. Attached is the new
files/extra-patch-maildir-header-cache.


Best regards

--
Udo Schweigert, Siemens AG   | Voice      : +49 89 636 42170
CT IC CERT, Siemens CERT     | Fax        : +49 89 636 41166
D-81730 Muenchen / Germany   | email      : udo.schweigert@siemens.com
Comment 4 Udo.Schweigert 2004-09-29 15:42:20 UTC
The maildir header cache changed again. Attached is the new
files/extra-patch-maildir-header-cache.


Mit freundlichen Grüßen/Best regards

Udo Schweigert
--
Udo Schweigert, Siemens AG   | Voice      : +49 89 636 42170
CT IC CERT, Siemens CERT     | Fax        : +49 89 636 41166
D-81730 München / Germany    | email      : Udo.Schweigert@siemens.com
SCD2, certificates           | http://scd.siemens.com/db4/lookUp?tcgid=ZZZZZZYG
Comment 5 Kirill Ponomarev freebsd_committer freebsd_triage 2004-10-12 17:42:07 UTC
State Changed
From-To: open->closed

Committed, thanks!