Index: mail/mutt/Makefile =================================================================== --- mail/mutt/Makefile +++ mail/mutt/Makefile @@ -2,7 +2,7 @@ # $FreeBSD$ PORTNAME= mutt -PORTVERSION= 1.7.2 +PORTVERSION= 1.8.0 PORTREVISION?= 0 CATEGORIES+= mail ipv6 MASTER_SITES= ftp://ftp.mutt.org/pub/mutt/ \ @@ -58,17 +58,16 @@ .else OPTIONS_DEFINE= COMPRESSED_FOLDERS SASL DEBUG DOCS EXAMPLES FLOCK \ FORCEBASE64 GPGME GREETING_PATCH HTML ICONV IDN IFDEF_PATCH \ - IMAP_HEADER_CACHE LOCALES_FIX MAILBOX_MANPAGES \ - MAILDIR_HEADER_CACHE MAILDIR_MTIME_PATCH \ - MIXMASTER NLS NNTP PARENT_CHILD_MATCH_PATCH \ - QUOTE_PATCH REVERSE_REPLY_PATCH SIDEBAR \ - SMART_DATE SMIME_OUTLOOK_COMPAT SMTP TOKYOCABINET \ - URLVIEW XML - -OPTIONS_SINGLE= GSSAPI SCREEN + LOCALES_FIX MAILBOX_MANPAGES MAILDIR_MTIME_PATCH MIXMASTER \ + NLS NNTP PARENT_CHILD_MATCH_PATCH QUOTE_PATCH \ + REVERSE_REPLY_PATCH SIDEBAR SMART_DATE SMIME_OUTLOOK_COMPAT \ + SMTP URLVIEW XML + +OPTIONS_SINGLE= GSSAPI HCACHE SCREEN OPTIONS_RADIO= SPELL OPTIONS_RADIO_SPELL= ASPELL ISPELL OPTIONS_SINGLE_GSSAPI= GSSAPI_BASE GSSAPI_HEIMDAL GSSAPI_MIT GSSAPI_NONE +OPTIONS_SINGLE_HCACHE= HCACHE_BDB HCACHE_TOKYOCABINET HCACHE_KYOTOCABINET HCACHE_NONE OPTIONS_SINGLE_SCREEN= NCURSES SLANG COMPRESSED_FOLDERS_DESC= Compressed folders @@ -81,10 +80,8 @@ HTML_DESC= HTML documentation IDN_DESC+= International Domain Names (implies ICONV) IFDEF_PATCH_DESC= ifdef feature -IMAP_HEADER_CACHE_DESC= IMAP header cache LOCALES_FIX_DESC= Locales fix MAILBOX_MANPAGES_DESC= Install mbox.5/mmdf.5 manpages -MAILDIR_HEADER_CACHE_DESC= Maildir header cache MAILDIR_MTIME_PATCH_DESC= Maildir mtime patch MIXMASTER_DESC= Mixmaster support NCURSES_DESC= Ncurses support @@ -97,16 +94,19 @@ SMART_DATE_DESC= Dynamic date formatting with "%@" SMIME_OUTLOOK_COMPAT_DESC= SMIME outlook compatibility SMTP_DESC= SMTP relay support -TOKYOCABINET_DESC= Use tokyocabinet instead of Berkley DB +HCACHE_DESC= Header Cache support +HCACHE_BDB_DESC= Use Berkeley DB (BDB) +HCACHE_TOKYOCABINET_DESC= Use Tokyo Cabinet +HCACHE_KYOTOCABINET_DESC= Use Kyoto Cabinet +HCACHE_NONE_DESC= Disable Header Cache URLVIEW_DESC= Use urlview for the URL selector menu XML_DESC= Use XML tools for rebuilding documentation -OPTIONS_DEFAULT= COMPRESSED_FOLDERS GPGME HTML ICONV IDN IFDEF_PATCH \ - IMAP_HEADER_CACHE LOCALES_FIX MAILBOX_MANPAGES \ - MAILDIR_HEADER_CACHE MAILDIR_MTIME_PATCH NLS \ - NCURSES PARENT_CHILD_MATCH_PATCH QUOTE_PATCH \ - REVERSE_REPLY_PATCH SMART_DATE SMIME_OUTLOOK_COMPAT \ - SASL SMTP URLVIEW XML GSSAPI_NONE +OPTIONS_DEFAULT= COMPRESSED_FOLDERS GPGME HTML HCACHE_BDB ICONV IDN \ + IFDEF_PATCH LOCALES_FIX MAILBOX_MANPAGES MAILDIR_MTIME_PATCH \ + NLS NCURSES PARENT_CHILD_MATCH_PATCH QUOTE_PATCH \ + REVERSE_REPLY_PATCH SMART_DATE SMIME_OUTLOOK_COMPAT SASL SMTP \ + URLVIEW XML GSSAPI_NONE .endif RUN_DEPENDS+= ${LOCALBASE}/etc/mime.types:misc/mime-support @@ -160,12 +160,24 @@ GSSAPI_MIT_CONFIGURE_ON= --with-gss=${GSSAPIBASEDIR} ${GSSAPI_CONFIGURE_ARGS} GSSAPI_NONE_CONFIGURE_ON= --without-gss +HCACHE_NONE_CONFIGURE_ON= --disable-hcache +HCACHE_NONE_CONFIGURE_OFF= --enable-hcache --without-qdbm --without-gdbm + +HCACHE_BDB_CONFIGURE_WITH= bdb +HCACHE_BDB_USES= bdb:42+ + +HCACHE_TOKYOCABINET_CONFIGURE_WITH= tokyocabinet +HCACHE_TOKYOCABINET_LIB_DEPENDS= libtokyocabinet.so:databases/tokyocabinet + +HCACHE_KYOTOCABINET_CONFIGURE_WITH= kyotocabinet +HCACHE_KYOTOCABINET_LIB_DEPENDS= libkyotocabinet.so:databases/kyotocabinet + ICONV_USES= iconv:translit ICONV_CONFIGURE_ON= ${ICONV_CONFIGURE_ARG} ICONV_CONFIGURE_OFF= --disable-iconv ASPELL_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-aspell -##PARENT_CHILD_MATCH_PATCH_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-parent-child-match +PARENT_CHILD_MATCH_PATCH_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-parent-child-match REVERSE_REPLY_PATCH_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-reverse_reply SASL_LIB_DEPENDS= libsasl2.so:security/cyrus-sasl2 @@ -186,18 +198,18 @@ IDN_CONFIGURE_WITH= idn IDN_IMPLIES= ICONV -GPGME_LIB_DEPENDS= libgpgme.so:security/gpgme +GPGME_LIB_DEPENDS+= libgpgme.so:security/gpgme +GPGME_LIB_DEPENDS+= libgpg-error.so:security/libgpg-error +GPGME_LIB_DEPENDS+= libassuan.so:security/libassuan GPGME_CONFIGURE_ENABLE= gpgme SMTP_CONFIGURE_ENABLE= smtp -MAILDIR_HEADER_CACHE_CONFIGURE_OFF= --without-qdbm - GREETING_PATCH_PATCHFILES= mutt-${GREETING_PATCH_VERSION}.vc.greeting:vc -COMPRESSED_FOLDERS_DISTFILES= patch-${RR_PATCH_VERSION}.rr.compressed.gz:vvv -COMPRESSED_FOLDERS_CONFIGURE_ON= --enable-compressed -COMPRESSED_FOLDERS_VARS= XML_NEEDED=yes +COMPRESSED_FOLDERS_ENABLE= compressed +COMPRESSED_FOLDERS_VARS= XML_NEEDED=yes \ +COMPRESSED_FOLDERS_PLIST_FILES=%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sample.muttrc-compress QUOTE_PATCH_PATCHFILES= patch-${VVV_PATCH_VERSION}.vvv.initials.gz:vvv \ patch-${VVV_PATCH_VERSION}.vvv.quote.gz:vvv @@ -210,7 +222,6 @@ NNTP_CATEGORIES= news SIDEBAR_CONFIGURE_ENABLE= sidebar -SIDEBAR_CONFIGURE_ON= --enable-sidebar SIDEBAR_VARS= XML_NEEDED=yes DOCS_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-doc-ref @@ -218,9 +229,9 @@ .include # un/comment as each VERSION is created for PORTVERSION -VVV_PATCH_VERSION= 1.7.1 -RR_PATCH_VERSION= 1.7.1 -#GREETING_PATCH_VERSION= 1.7.0 +VVV_PATCH_VERSION= 1.8.0 +RR_PATCH_VERSION= 1.7.2 +GREETING_PATCH_VERSION= 1.7.2 .if !defined(VVV_PATCH_VERSION) VVV_PATCH_VERSION= ${PORTVERSION} @@ -246,15 +257,6 @@ CFLAGS+= ${CFLAGS_ADD} LDFLAGS+= ${LDFLAGS_ADD} -pre-patch-PARENT_CHILD_MATCH_PATCH-on: - @${PATCH} -d ${PATCH_WRKSRC} ${PATCH_ARGS} -p1 < ${PATCHDIR}/extra-patch-parent-child-match - -pre-patch-COMPRESSED_FOLDERS-on: - @${GUNZIP_CMD} -c ${DISTDIR}/${DIST_SUBDIR}/patch-${RR_PATCH_VERSION}.rr.compressed.gz > ${WRKDIR}/patch-compressed - @${REINPLACE_CMD} -E '/^diff.*\/doc\/manual.txt$$/,/^diff/d' \ - ${WRKDIR}/patch-compressed - @${PATCH} -d ${PATCH_WRKSRC} ${PATCH_ARGS} -p1 < ${WRKDIR}/patch-compressed - pre-patch-NNTP-on: @${GUNZIP_CMD} -c ${DISTDIR}/${DIST_SUBDIR}/patch-${VVV_PATCH_VERSION}.vvv.nntp.gz > ${WRKDIR}/patch-nntp @${REINPLACE_CMD} -E '/^diff.*\/doc\/manual.txt$$/,/^diff/d' \ @@ -288,7 +290,7 @@ WRKSRC= ${WRKDIR}/${DISTNAME:S/i$//} -post-patch:: +post-patch: @${REINPLACE_CMD} -e 's,/usr/bin/gpg,${LOCALBASE}/bin/gpg,g' \ ${WRKSRC}/contrib/gpg.rc @${REINPLACE_CMD} -e 's,pgp6,pgp,g' \ @@ -304,20 +306,11 @@ ${WRKSRC}/imap/auth_gss.c .endif -.if ${PORT_OPTIONS:MIMAP_HEADER_CACHE} || ${PORT_OPTIONS:MMAILDIR_HEADER_CACHE} -.if ${PORT_OPTIONS:MTOKYOCABINET} -CONFIGURE_ARGS+= --enable-hcache --without-gdbm --without-bdb --with-tokyocabinet -LIB_DEPENDS+= libtokyocabinet.so:databases/tokyocabinet -.else -USES+= bdb:42+ -CONFIGURE_ARGS+= --enable-hcache --without-gdbm --with-bdb +.if ${PORT_OPTIONS:MHCACHE_BDB} CONFIGURE_SED= -e 's/BDB_VERSIONS="/&${BDB_LIB_NAME} db${BDB_VER} /' pre-configure:: @${REINPLACE_CMD} -E ${CONFIGURE_SED} ${CONFIGURE_WRKSRC}/${CONFIGURE_SCRIPT}.ac .endif -.else -CONFIGURE_ARGS+= --disable-hcache -.endif .if defined (XML_NEEDED) && ${PORT_OPTIONS:MXML} BUILD_DEPENDS+= xsltproc:textproc/libxslt \ Index: mail/mutt/distinfo =================================================================== --- mail/mutt/distinfo +++ mail/mutt/distinfo @@ -1,19 +1,17 @@ -TIMESTAMP = 1481676540 -SHA256 (mutt/mutt-1.7.2.tar.gz) = 1553501687cd22d5b8aaee4dc5a7d9dcf6cc61d7956f6aabaadd252d10cd5ff9 -SIZE (mutt/mutt-1.7.2.tar.gz) = 4025880 -SHA256 (mutt/patch-1.7.1.rr.compressed.gz) = 97bc56bbc6b0312b87e8dfb68dd9b551edb9d6771bb1b52b1c6f63f51d0bd05b -SIZE (mutt/patch-1.7.1.rr.compressed.gz) = 9985 -SHA256 (mutt/patch-1.7.1.vvv.nntp.gz) = 798db983e3d63d954bfd88e0b8771f806afddf0ae07cc9a03d27def355675687 -SIZE (mutt/patch-1.7.1.vvv.nntp.gz) = 61201 -SHA256 (mutt/patch-1.7.1.vvv.nntp_ru.gz) = 497f96c19ff17330404667a63c1abd6a5b309004c4dc5100f73973012ad8a2c1 -SIZE (mutt/patch-1.7.1.vvv.nntp_ru.gz) = 5494 +TIMESTAMP = 1488157778 +SHA256 (mutt/mutt-1.8.0.tar.gz) = 45841eda12804b460260adff8f3f39cc977744e832486a3c49e182eda967adab +SIZE (mutt/mutt-1.8.0.tar.gz) = 4116223 +SHA256 (mutt/patch-1.8.0.vvv.nntp.gz) = 1bd4b83708bb664749a34a188f01bc541cc7ab51628a163d87da119152ed00b9 +SIZE (mutt/patch-1.8.0.vvv.nntp.gz) = 60675 +SHA256 (mutt/patch-1.8.0.vvv.nntp_ru.gz) = ec9be57cdd516748f9ee7ee27b137d6ef7d3346258198940cb3d1eabb12d13ea +SIZE (mutt/patch-1.8.0.vvv.nntp_ru.gz) = 3465 SHA256 (mutt/patch-1.5.1.dgc.deepif.1) = d655a2f0003bdb2efb7ee5a8c77c113da661110e9c63289f03eb622773fc7a34 SIZE (mutt/patch-1.5.1.dgc.deepif.1) = 767 SHA256 (mutt/patch-1.7.0.ats.date_conditional.1) = a7f65e0b6e59713582b3b0a1c3d3c0e54e5875f5dfe3bda285e51a5b6d96e14e SIZE (mutt/patch-1.7.0.ats.date_conditional.1) = 2415 SHA256 (mutt/mutt-1.7.2.vc.greeting) = 05dce466675c8692ab4a2c34d309de06e98e965241249e3cfccbb8d10873b9a3 SIZE (mutt/mutt-1.7.2.vc.greeting) = 4175 -SHA256 (mutt/patch-1.7.1.vvv.initials.gz) = 1405104d8929d672dc5ffebbca8ea5601a88c515e862ec2f89e5b92bfdb53ad0 -SIZE (mutt/patch-1.7.1.vvv.initials.gz) = 675 -SHA256 (mutt/patch-1.7.1.vvv.quote.gz) = de0e47fb8ffe1ab6587aba37438c90443bee6508759bf82d8aa5da27317b3cc7 -SIZE (mutt/patch-1.7.1.vvv.quote.gz) = 1258 +SHA256 (mutt/patch-1.8.0.vvv.initials.gz) = 98c667c86028691ee0e9a8022977a7ba16972854c1f2fd87f83899c30598fedd +SIZE (mutt/patch-1.8.0.vvv.initials.gz) = 686 +SHA256 (mutt/patch-1.8.0.vvv.quote.gz) = 18d50110ab38a4338284691e081aa06b1b52301eca49633d2c7639b46acf7e2c +SIZE (mutt/patch-1.8.0.vvv.quote.gz) = 1282 Index: mail/mutt/files/extra-patch-parent-child-match =================================================================== --- mail/mutt/files/extra-patch-parent-child-match +++ mail/mutt/files/extra-patch-parent-child-match @@ -1,7 +1,7 @@ ---- mutt-1.5.20/doc/manual.xml.head 2009-05-30 19:20:08.000000000 +0200 -+++ mutt-1.5.20-parentchildmatch/doc/manual.xml.head 2009-07-18 01:09:23.000000000 +0200 -@@ -3947,6 +3947,22 @@ With the reset comman - which allows you to reset all variables to their system defaults. +--- doc/manual.xml.head.orig 2017-02-24 18:29:36 UTC ++++ doc/manual.xml.head +@@ -4259,6 +4259,22 @@ variable all, which allow + their system defaults. + @@ -23,30 +23,28 @@ -diff -urNp mutt-1.5.20/mutt.h mutt-1.5.20-parentchildmatch/mutt.h ---- mutt-1.5.20/mutt.h 2009-06-13 00:15:42.000000000 +0200 -+++ mutt-1.5.20-parentchildmatch/mutt.h 2009-07-18 01:14:21.000000000 +0200 -@@ -819,6 +819,8 @@ typedef struct pattern_t +--- mutt.h.orig 2017-02-24 18:29:36 UTC ++++ mutt.h +@@ -863,6 +863,8 @@ typedef struct pattern_t unsigned int alladdr : 1; unsigned int stringmatch : 1; unsigned int groupmatch : 1; + unsigned int parentmatch : 1; + unsigned int childsmatch : 1; unsigned int ign_case : 1; /* ignore case for local stringmatch searches */ + unsigned int isalias : 1; int min; - int max; -diff -urNp mutt-1.5.20/pattern.c mutt-1.5.20-parentchildmatch/pattern.c ---- mutt-1.5.20/pattern.c 2009-06-03 22:48:31.000000000 +0200 -+++ mutt-1.5.20-parentchildmatch/pattern.c 2009-07-18 01:09:23.000000000 +0200 -@@ -45,6 +45,7 @@ static int eat_regexp (pattern_t *pat, B +--- pattern.c.orig 2017-02-24 18:29:37 UTC ++++ pattern.c +@@ -46,6 +46,7 @@ static int eat_regexp (pattern_t *pat, B static int eat_date (pattern_t *pat, BUFFER *, BUFFER *); static int eat_range (pattern_t *pat, BUFFER *, BUFFER *); static int patmatch (const pattern_t *pat, const char *buf); -+static int pattern_exec (struct pattern_t *pat, pattern_exec_flag flags, CONTEXT *ctx, HEADER *h); ++static int pattern_exec (struct pattern_t *pat, pattern_exec_flag flags, CONTEXT *ctx, HEADER *h, pattern_cache_t *cache); - static struct pattern_flags + static const struct pattern_flags { -@@ -769,6 +770,8 @@ pattern_t *mutt_pattern_comp (/* const * +@@ -781,6 +782,8 @@ pattern_t *mutt_pattern_comp (/* const * pattern_t *last = NULL; int not = 0; int alladdr = 0; @@ -54,10 +52,10 @@ + int childsmatch = 0; int or = 0; int implicit = 1; /* used to detect logical AND operator */ - struct pattern_flags *entry; -@@ -793,6 +796,24 @@ pattern_t *mutt_pattern_comp (/* const * + int isalias = 0; +@@ -810,6 +813,24 @@ pattern_t *mutt_pattern_comp (/* const * ps.dptr++; - not = !not; + isalias = !isalias; break; + case '<': + ps.dptr++; @@ -80,65 +78,68 @@ case '|': if (!or) { -@@ -818,6 +839,8 @@ pattern_t *mutt_pattern_comp (/* const * +@@ -835,6 +856,8 @@ pattern_t *mutt_pattern_comp (/* const * implicit = 0; not = 0; alladdr = 0; + parentmatch = 0; + childsmatch = 0; + isalias = 0; break; case '%': - case '=': -@@ -841,8 +864,12 @@ pattern_t *mutt_pattern_comp (/* const * +@@ -865,9 +888,13 @@ pattern_t *mutt_pattern_comp (/* const * last = tmp; tmp->not ^= not; tmp->alladdr |= alladdr; + tmp->parentmatch |= parentmatch; + tmp->childsmatch |= childsmatch; + tmp->isalias |= isalias; not = 0; alladdr = 0; + parentmatch = 0; + childsmatch = 0; + isalias = 0; /* compile the sub-expression */ buf = mutt_substrdup (ps.dptr + 1, p); - if ((tmp2 = mutt_pattern_comp (buf, flags, err)) == NULL) -@@ -870,10 +897,14 @@ pattern_t *mutt_pattern_comp (/* const * +@@ -896,11 +923,15 @@ pattern_t *mutt_pattern_comp (/* const * tmp = new_pattern (); tmp->not = not; tmp->alladdr = alladdr; + tmp->parentmatch = parentmatch; + tmp->childsmatch = childsmatch; + tmp->isalias = isalias; tmp->stringmatch = (*ps.dptr == '=') ? 1 : 0; tmp->groupmatch = (*ps.dptr == '%') ? 1 : 0; not = 0; alladdr = 0; + parentmatch = 0; + childsmatch = 0; + isalias = 0; if (last) - last->next = tmp; -@@ -939,8 +970,12 @@ pattern_t *mutt_pattern_comp (/* const * +@@ -967,9 +998,13 @@ pattern_t *mutt_pattern_comp (/* const * last = tmp; tmp->not ^= not; tmp->alladdr |= alladdr; + tmp->parentmatch |= parentmatch; + tmp->childsmatch |= childsmatch; + tmp->isalias |= isalias; not = 0; alladdr = 0; + parentmatch = 0; + childsmatch = 0; + isalias = 0; ps.dptr = p + 1; /* restore location */ break; - default: -@@ -1081,6 +1116,36 @@ static int match_threadcomplete(struct p - int - mutt_pattern_exec (struct pattern_t *pat, pattern_exec_flag flags, CONTEXT *ctx, HEADER *h) +@@ -1137,6 +1172,37 @@ int + mutt_pattern_exec (struct pattern_t *pat, pattern_exec_flag flags, CONTEXT *ctx, HEADER *h, + pattern_cache_t *cache) { + THREAD *t; + + if (pat->parentmatch) { + if (h->thread && h->thread->parent && h->thread->parent->message) -+ return pattern_exec (pat, flags, ctx, h->thread->parent->message); ++ return pattern_exec (pat, flags, ctx, h->thread->parent->message, cache); + else + return pat->not; + } @@ -153,17 +154,18 @@ + for (; t; t = t->next) { + if (!t->message) + continue; -+ if (pattern_exec (pat, flags, ctx, t->message)) ++ if (pattern_exec (pat, flags, ctx, t->message, cache)) + return !pat->not; + } + return pat->not; + } -+ return pattern_exec (pat, flags, ctx, h); ++ return pattern_exec (pat, flags, ctx, h, cache); +} + +static int -+pattern_exec (struct pattern_t *pat, pattern_exec_flag flags, CONTEXT *ctx, HEADER *h) ++pattern_exec (struct pattern_t *pat, pattern_exec_flag flags, CONTEXT *ctx, HEADER *h, ++ pattern_cache_t *cache) +{ - switch (pat->op) - { - case M_AND: + int result; + int *cache_entry; + Index: mail/mutt/files/extra-patch-smartdate =================================================================== --- mail/mutt/files/extra-patch-smartdate +++ mail/mutt/files/extra-patch-smartdate @@ -1,25 +1,6 @@ ---- mutt.h -+++ mutt.h -@@ -133,6 +133,16 @@ - M_FORMAT_NOFILTER = (1<<7) /* do not allow filtering on this pass */ - } format_flag; - -+/* flags for SmartDate */ -+typedef enum { -+ FUTURE = 1, -+ SMARTTIME = 2, -+ YESTERDAY = 3, -+ WEEKDAY = 4, -+ STANDARD = 5, -+ ANCIENT = 6 -+} smartdate_type; -+ - /* types for mutt_add_hook() */ - #define M_FOLDERHOOK 1 - #define M_MBOXHOOK (1<<1) ---- hdrline.c +--- hdrline.c.orig 2017-02-24 18:29:36 UTC +++ hdrline.c -@@ -231,6 +231,89 @@ +@@ -248,6 +248,89 @@ static char *apply_subject_mods (ENVELOP * %Y = `x-label:' field (if present, tree unfolded, and != parent's x-label) * %Z = status flags */ @@ -109,18 +90,37 @@ static const char * hdr_format_str (char *dest, size_t destlen, -@@ -462,7 +545,13 @@ - tm = gmtime (&T); - } +@@ -421,7 +504,13 @@ hdr_format_str (char *dest, -- strftime (buf2, sizeof (buf2), dest, tm); -+ /* Identify the non-strftime smartdate pattern (%@) */ -+ if( strncmp( dest, "%@", 2 ) == 0 ) { -+ smartdate( buf2, sizeof( buf2 ), tm ); -+ } -+ else { -+ strftime (buf2, sizeof (buf2), dest, tm); -+ } + if (!do_locales) + setlocale (LC_TIME, "C"); +- strftime (buf2, sizeof (buf2), dest, tm); ++ /* Identify the non-strftime smartdate pattern (%@) */ ++ if( strncmp( dest, "%@", 2 ) == 0 ) { ++ smartdate( buf2, sizeof( buf2 ), tm ); ++ } ++ else { ++ strftime (buf2, sizeof (buf2), dest, tm); ++ } + if (!do_locales) + setlocale (LC_TIME, ""); - if (do_locales) - setlocale (LC_TIME, "C"); +--- mutt.h.orig 2017-02-24 18:29:36 UTC ++++ mutt.h +@@ -134,6 +134,16 @@ typedef enum + MUTT_FORMAT_NOFILTER = (1<<7) /* do not allow filtering on this pass */ + } format_flag; + ++/* flags for SmartDate */ ++typedef enum { ++ FUTURE = 1, ++ SMARTTIME = 2, ++ YESTERDAY = 3, ++ WEEKDAY = 4, ++ STANDARD = 5, ++ ANCIENT = 6 ++} smartdate_type; ++ + /* types for mutt_add_hook() */ + #define MUTT_FOLDERHOOK 1 + #define MUTT_MBOXHOOK (1<<1) Index: mail/mutt/files/patch-Makefile.am =================================================================== --- mail/mutt/files/patch-Makefile.am +++ mail/mutt/files/patch-Makefile.am @@ -1,15 +1,15 @@ ---- Makefile.am.orig 2016-10-08 19:30:21 UTC +--- Makefile.am.orig 2017-02-27 01:12:49 UTC +++ Makefile.am -@@ -10,7 +10,7 @@ IMAP_SUBDIR = imap +@@ -14,7 +14,7 @@ IMAP_SUBDIR = imap IMAP_INCLUDES = -I$(top_srcdir)/imap endif --SUBDIRS = m4 po intl doc contrib $(IMAP_SUBDIR) -+SUBDIRS = m4 po intl contrib $(IMAP_SUBDIR) . doc +-SUBDIRS = m4 po intl $(DOC_SUBDIR) contrib $(IMAP_SUBDIR) ++SUBDIRS = m4 po intl contrib $(IMAP_SUBDIR) . $(DOC_SUBDIR) bin_SCRIPTS = muttbug flea $(SMIMEAUX_TARGET) -@@ -157,18 +157,9 @@ install-exec-hook: +@@ -161,18 +161,9 @@ install-exec-hook: rm -f $(DESTDIR)$(bindir)/mutt.dotlock ; \ ln -sf $(DESTDIR)$(bindir)/mutt_dotlock $(DESTDIR)$(bindir)/mutt.dotlock ; \ fi Index: mail/mutt/files/patch-threadcomplete =================================================================== --- mail/mutt/files/patch-threadcomplete +++ mail/mutt/files/patch-threadcomplete @@ -1,6 +1,6 @@ ---- mutt.h.orig 2016-10-08 19:30:21 UTC +--- mutt.h.orig 2017-02-27 01:20:29 UTC +++ mutt.h -@@ -190,6 +190,7 @@ enum +@@ -201,6 +201,7 @@ enum MUTT_EXPIRED, MUTT_SUPERSEDED, MUTT_TRASH, @@ -8,7 +8,7 @@ /* actions for mutt_pattern_comp/mutt_pattern_exec */ MUTT_AND, ---- pattern.c.orig 2016-10-08 19:30:21 UTC +--- pattern.c.orig 2017-02-27 01:20:06 UTC +++ pattern.c @@ -56,6 +56,7 @@ static const struct pattern_flags } @@ -18,10 +18,10 @@ { 'A', MUTT_ALL, 0, NULL }, { 'b', MUTT_BODY, MUTT_FULL_MSG, eat_regexp }, { 'B', MUTT_WHOLE_MSG, MUTT_FULL_MSG, eat_regexp }, -@@ -1185,6 +1186,16 @@ mutt_pattern_exec (struct pattern_t *pat - 2, h->env->to, h->env->cc)); - case MUTT_LIST: /* known list, subscribed or not */ - return (pat->not ^ mutt_is_list_cc (pat->alladdr, h->env->to, h->env->cc)); +@@ -1236,6 +1237,16 @@ mutt_pattern_exec (struct pattern_t *pat + else + result = mutt_is_list_cc (pat->alladdr, h->env->to, h->env->cc); + return (pat->not ^ result); + case MUTT_THREADCOMPLETE: + { static pattern_t tmp; + static short pattern_set = 0; @@ -33,5 +33,5 @@ + return (pat->not ^ (h->env && match_threadcomplete(&tmp, flags, ctx, h->thread, 1, 1, 1, 1))); + } case MUTT_SUBSCRIBED_LIST: - return (pat->not ^ mutt_is_list_recipient (pat->alladdr, h->env->to, h->env->cc)); - case MUTT_PERSONAL_RECIP: + if (cache) + { Index: mail/mutt/pkg-plist =================================================================== --- mail/mutt/pkg-plist +++ mail/mutt/pkg-plist @@ -45,7 +45,6 @@ %%HTML%%%%PORTDOCS%%%%DOCSDIR%%/reference.html %%HTML%%%%PORTDOCS%%%%DOCSDIR%%/security.html %%HTML%%%%PORTDOCS%%%%DOCSDIR%%/tuning.html -%%XML%%%%HTML%%%%COMPRESSED_FOLDERS%%%%PORTDOCS%%%%DOCSDIR%%/compressed-folders.html %%PORTEXAMPLES%%%%EXAMPLESDIR%%/Mush.rc %%PORTEXAMPLES%%%%EXAMPLESDIR%%/Pine.rc %%PORTEXAMPLES%%%%EXAMPLESDIR%%/Tin.rc