Index: head/mail/mutt/Makefile =================================================================== --- head/mail/mutt/Makefile (revision 502977) +++ head/mail/mutt/Makefile (revision 502978) @@ -1,260 +1,258 @@ # Created by: Udo Schweigert # $FreeBSD$ PORTNAME= mutt -DISTVERSION= 1.11.4 -#PORTREVISION= 0 +DISTVERSION= 1.12.0 CATEGORIES+= mail ipv6 MASTER_SITES= ftp://ftp.mutt.org/pub/mutt/ \ ftp://ftp.fu-berlin.de/pub/unix/mail/mutt/ \ https://bitbucket.org/mutt/mutt/downloads/ \ ftp://ftp.demon.co.uk/pub/mirrors/mutt/ \ http://www.mutt.org.ua/download/mutt-${VVV_PATCH_VERSION}/:vvv \ http://www2.mutt.org.ua/download/mutt-${VVV_PATCH_VERSION}/:vvv DIST_SUBDIR= mutt EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} PATCH_SITES+= http://www.mutt.org.ua/download/mutt-${VVV_PATCH_VERSION}/:vvv \ http://www2.mutt.org.ua/download/mutt-${VVV_PATCH_VERSION}/:vvv \ http://vc.org.ua/mutt/:vc PATCH_DIST_STRIP= -p1 MAINTAINER= dereks@lifeofadishwasher.com COMMENT= Small but powerful text based program for read/writing e-mail LICENSE= GPLv2+ RUN_DEPENDS= ${LOCALBASE}/etc/mime.types:misc/mime-support USES= cpe shebangfix ssl CONFLICTS= ja-mutt-[0-9]* ja-mutt-devel-[0-9]* mutt-1.4* mutt-devel-lite-[0-9]* mutt-lite-[0-9]* zh-mutt-devel-[0-9]* CONFIGURE_ARGS= --disable-fcntl --with-ssl=${OPENSSLBASE} \ --with-docdir=${DOCSDIR} --sysconfdir=${PREFIX}/etc \ --enable-external-dotlock --enable-pop --enable-imap \ --enable-compressed --enable-sidebar INFO= ${PORTNAME} SHEBANG_FILES= doc/gen-map-doc smime_keys.pl contrib/smime_keys_test.pl .if defined(MUTT_CONFIGURE_ARGS) CONFIGURE_ARGS+= ${MUTT_CONFIGURE_ARGS} .endif GNU_CONFIGURE= yes OPTIONS_SUB= yes OPTIONS_DEFINE= SASL DEBUG DOCS EXAMPLES FLOCK \ FORCEBASE64 GPGME GREETING_PATCH HTML ICONV IDN IFDEF_PATCH \ LOCALES_FIX MAILBOX_MANPAGES MAILDIR_MTIME_PATCH \ NLS NNTP QUOTE_PATCH REVERSE_REPLY_PATCH SMART_DATE \ - SMIME_OUTLOOK_COMPAT SMTP URLVIEW XML + 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 SASL_DESC= SASL authentication DEBUG_DESC= Debugging capabilities FLOCK_DESC= flock() usage FORCEBASE64_DESC= Option to force base64 encoding for compose GPGME_DESC= Gpgme interface GREETING_PATCH_DESC= Greeting support HTML_DESC= HTML documentation IDN_DESC= International Domain Names (implies ICONV) IFDEF_PATCH_DESC= ifdef feature LOCALES_FIX_DESC= Locales fix MAILBOX_MANPAGES_DESC= Install mbox.5/mmdf.5 manpages MAILDIR_MTIME_PATCH_DESC= Maildir mtime patch NCURSES_DESC= Ncurses support NLS_DESC= Native language support (implies ICONV) QUOTE_PATCH_DESC= Extended quoting REVERSE_REPLY_PATCH_DESC= Reverse_reply SLANG_DESC= SLANG support SMART_DATE_DESC= Dynamic date formatting with "%@" -SMIME_OUTLOOK_COMPAT_DESC= SMIME outlook compatibility SMTP_DESC= SMTP relay support 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= GPGME HTML HCACHE_BDB ICONV IDN \ IFDEF_PATCH LOCALES_FIX MAILBOX_MANPAGES MAILDIR_MTIME_PATCH \ NLS NCURSES QUOTE_PATCH REVERSE_REPLY_PATCH SMART_DATE \ - SMIME_OUTLOOK_COMPAT SASL SMTP URLVIEW XML GSSAPI_NONE + SASL SMTP URLVIEW XML GSSAPI_NONE ASPELL_BUILD_DEPENDS= aspell:textproc/aspell ASPELL_RUN_DEPENDS= aspell:textproc/aspell ISPELL_BUILD_DEPENDS= ispell:textproc/aspell-ispell ISPELL_RUN_DEPENDS= ispell:textproc/aspell-ispell URLVIEW_RUN_DEPENDS= urlview:textproc/urlview .ifmake makesum # for optional distfiles patchfiles PORT_DBDIR= /dev/null OPTIONS_DEFAULT+= ${OPTIONS_DEFINE} .endif DEBUG_CONFIGURE_ON= --enable-debug # Handle ncurses/ncurses-port/slang SLANG_CONFIGURE_ON= --with-slang=${LOCALBASE} SLANG_LIB_DEPENDS= libslang.so:devel/libslang2 SLANG_VARS= PKGMESSAGE=${FILESDIR}/pkg-message.slang NCURSES_USES= ncurses NLS_USES= gettext NLS_CONFIGURE_ENABLE= nls NLS_IMPLIES= ICONV # Handle GSSAPI from various places GSSAPI_BASE_USES= gssapi GSSAPI_BASE_CONFIGURE_ON= --with-gss=${GSSAPIBASEDIR} ${GSSAPI_CONFIGURE_ARGS} GSSAPI_HEIMDAL_USES= gssapi:heimdal GSSAPI_HEIMDAL_CONFIGURE_ON= --with-gss=${GSSAPIBASEDIR} ${GSSAPI_CONFIGURE_ARGS} GSSAPI_MIT_USES= gssapi:mit 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=${LOCALBASE} HCACHE_BDB_USES= bdb:42+ HCACHE_TOKYOCABINET_CONFIGURE_WITH= tokyocabinet=${LOCALBASE} HCACHE_TOKYOCABINET_LIB_DEPENDS= libtokyocabinet.so:databases/tokyocabinet HCACHE_KYOTOCABINET_CONFIGURE_WITH= kyotocabinet=${LOCALBASE} HCACHE_KYOTOCABINET_LIB_DEPENDS= libkyotocabinet.so:databases/kyotocabinet ICONV_USES= iconv:translit ICONV_CONFIGURE_ON= ${ICONV_CONFIGURE_ARG} ICONV_CONFIGURE_OFF= --disable-iconv REVERSE_REPLY_PATCH_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-reverse_reply SASL_LIB_DEPENDS= libsasl2.so:security/cyrus-sasl2 SASL_CONFIGURE_ON= --with-sasl=${LOCALBASE} -SMIME_OUTLOOK_COMPAT_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-smime-outlook SMART_DATE_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-smartdate FLOCK_CONFIGURE_ENABLE= flock LOCALES_FIX_CONFIGURE_ON= --enable-locales-fix IDN_LIB_DEPENDS= libidn2.so:dns/libidn2 \ libunistring.so:devel/libunistring IDN_CONFIGURE_WITH= idn2=${LOCALBASE} IDN_IMPLIES= ICONV IFDEF_PATCH_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-ifdef 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 GREETING_PATCH_PATCHFILES= mutt-${GREETING_PATCH_VERSION}.vc.greeting:vc -QUOTE_PATCH_PATCHFILES= patch-${VVV_PATCH_VERSION}.vvv.initials.xz:vvv \ - patch-${VVV_PATCH_VERSION}.vvv.quote.xz:vvv +QUOTE_PATCH_PATCHFILES= patch-${VVV_PATCH_VERSION}.vvv.initials.xz:vvv +QUOTE_PATCH_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-vvv.quote +NNTP_BROKEN= NNTP broken with 1.12.0 NNTP_PATCHFILES= patch-${VVV_PATCH_VERSION}.vvv.nntp.xz:-p1:vvv NNTP_EXTRA_PATCHES= ${PATCHDIR}/extra-nntp-depfiles NNTP_CONFIGURE_ON= --enable-nntp NNTP_VARS= XML_NEEDED=yes NNTP_CATEGORIES= news NNTP_USES= perl5 DOCS_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-doc-ref .include # un/comment as each VERSION is created for PORTVERSION VVV_PATCH_VERSION= 1.11.1 -GREETING_PATCH_VERSION= 1.11.4 +GREETING_PATCH_VERSION= 1.12.0 .if !defined(VVV_PATCH_VERSION) VVV_PATCH_VERSION= ${PORTVERSION} .endif .if !defined(GREETING_PATCH_VERSION) GREETING_PATCH_VERSION= ${PORTVERSION} .endif post-patch-NNTP-on: # Restore timestamps for autotools sources @${TOUCH} -r ${WRKSRC}/configure.ac.orig ${WRKSRC}/configure.ac @${TOUCH} -r ${WRKSRC}/Makefile.am.orig ${WRKSRC}/Makefile.am .if ${PORT_OPTIONS:MMAILDIR_MTIME_PATCH} @${PATCH} -d ${PATCH_WRKSRC} ${PATCH_ARGS} -p1 < ${PATCHDIR}/extra-patch-maildir-mtime-nntp .endif .if ${PORT_OPTIONS:MFORCEBASE64} @${PATCH} -d ${PATCH_WRKSRC} ${PATCH_ARGS} -p1 < ${PATCHDIR}/extra-patch-forcebase64-nntp .endif post-patch-NNTP-off: .if ${PORT_OPTIONS:MMAILDIR_MTIME_PATCH} @${PATCH} -d ${PATCH_WRKSRC} ${PATCH_ARGS} -p1 < ${PATCHDIR}/extra-patch-maildir-mtime .endif .if ${PORT_OPTIONS:MFORCEBASE64} @${PATCH} -d ${PATCH_WRKSRC} ${PATCH_ARGS} -p1 < ${PATCHDIR}/extra-patch-forcebase64 .endif post-install: ${INSTALL_MAN} ${FILESDIR}/mailcap.5 ${STAGEDIR}${MANPREFIX}/man/man5 post-install-NNTP-on: ${INSTALL_DATA} ${WRKSRC}/ChangeLog.nntp ${STAGEDIR}${DOCSDIR} WRKSRC= ${WRKDIR}/${DISTNAME:S/i$//} pre-configure:: @${REINPLACE_CMD} -e 's,?eimdal\*),?eimdal*|\"FreeBSD heimdal\"*),' \ ${CONFIGURE_WRKSRC}/${CONFIGURE_SCRIPT} @${REINPLACE_CMD} -e 's,pgp6,pgp,g' \ ${WRKSRC}/contrib/pgp6.rc @${REINPLACE_CMD} -E -e 's#(/samples|samples/)#share/examples/mutt#g' \ ${WRKSRC}/doc/reference.html \ ${WRKSRC}/doc/manual.html \ ${WRKSRC}/doc/manual.txt \ ${WRKSRC}/doc/Muttrc \ ${WRKSRC}/INSTALL \ ${WRKSRC}/init.h @${REINPLACE_CMD} -e 's#$$(docdir)/samples#${EXAMPLESDIR}#g' \ ${WRKSRC}/contrib/Makefile.in pre-configure-ASPELL-on: @${REINPLACE_CMD} -e '/^# append-hook/p' \ -e 's/^# append-hook.*$$/set ispell="aspell --mode=email check"/' \ ${WRKSRC}/doc/Muttrc.head pre-configure-HCACHE_BDB-on: @${REINPLACE_CMD} -E -e 's/BDB_VERSIONS="/&${BDB_LIB_NAME} db${BDB_VER} /' \ ${CONFIGURE_WRKSRC}/${CONFIGURE_SCRIPT} .if defined (XML_NEEDED) && ${PORT_OPTIONS:MXML} BUILD_DEPENDS+= xsltproc:textproc/libxslt \ ${LOCALBASE}/share/xsl/docbook/html/docbook.xsl:textproc/docbook-xsl \ lynx:www/lynx .else pre-build:: @${REINPLACE_CMD} \ -e 's,manual.html stamp-doc-rc stamp-doc-chunked manual.txt,stamp-doc-rc,' \ ${WRKSRC}/doc/Makefile .endif .include Index: head/mail/mutt/distinfo =================================================================== --- head/mail/mutt/distinfo (revision 502977) +++ head/mail/mutt/distinfo (revision 502978) @@ -1,11 +1,9 @@ -TIMESTAMP = 1552485673 -SHA256 (mutt/mutt-1.11.4.tar.gz) = b651357ea6c8762178080493991c77ecb111d916d171d422500257ab48be2801 -SIZE (mutt/mutt-1.11.4.tar.gz) = 4582417 -SHA256 (mutt/mutt-1.11.4.vc.greeting) = 57bd75016350e3ab8516f27154016e23a29176d2f1163258d31531f4aa722afc -SIZE (mutt/mutt-1.11.4.vc.greeting) = 4560 +TIMESTAMP = 1558928080 +SHA256 (mutt/mutt-1.12.0.tar.gz) = ca12448784ed7b6c86d498921e18bc7b152d45494a452df56a7a0c8aaf13f98f +SIZE (mutt/mutt-1.12.0.tar.gz) = 4668896 +SHA256 (mutt/mutt-1.12.0.vc.greeting) = 7596d930447e9834567c0cfddf9ac023ecbb99add64bee4131d87e0260eec591 +SIZE (mutt/mutt-1.12.0.vc.greeting) = 4559 SHA256 (mutt/patch-1.11.1.vvv.nntp.xz) = 2a6386a82cbf9afde162bfb1989e545fb222bf40c5f6fac169d9249d4c904c79 SIZE (mutt/patch-1.11.1.vvv.nntp.xz) = 49384 SHA256 (mutt/patch-1.11.1.vvv.initials.xz) = af45defbda3a85f86db3f8ef5235ddb6613a36fdc35540cdc9afa38409114a07 SIZE (mutt/patch-1.11.1.vvv.initials.xz) = 712 -SHA256 (mutt/patch-1.11.1.vvv.quote.xz) = 36896cbdebbe22f1ffea00e79a8735847246063f6498935d4dde3d5492b71c6c -SIZE (mutt/patch-1.11.1.vvv.quote.xz) = 1316 Index: head/mail/mutt/files/extra-patch-smime-outlook =================================================================== --- head/mail/mutt/files/extra-patch-smime-outlook (revision 502977) +++ head/mail/mutt/files/extra-patch-smime-outlook (nonexistent) @@ -1,11 +0,0 @@ ---- crypt.c.orig 2018-05-19 20:33:53 UTC -+++ crypt.c -@@ -501,7 +501,7 @@ - { - len++; - if (!ascii_strcasecmp ((t+len), "p7m")) --#if 0 -+#if 1 - return SMIMEENCRYPT; - #else - /* Not sure if this is the correct thing to do, but Property changes on: head/mail/mutt/files/extra-patch-smime-outlook ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/mail/mutt/files/extra-patch-ifdef =================================================================== --- head/mail/mutt/files/extra-patch-ifdef (revision 502977) +++ head/mail/mutt/files/extra-patch-ifdef (revision 502978) @@ -1,77 +1,77 @@ ---- PATCHES.orig 2018-11-29 22:49:51 UTC +--- PATCHES.orig 2019-05-26 19:28:51 UTC +++ PATCHES @@ -0,0 +1 @@ +patch-1.5.4.cd.ifdef.1 ---- init.c.orig 2018-11-24 19:06:11 UTC +--- init.c.orig 2019-04-28 20:41:58 UTC +++ init.c -@@ -650,6 +650,52 @@ static mbchar_table *parse_mbchar_table +@@ -651,6 +651,52 @@ static mbchar_table *parse_mbchar_table (const char *s return t; } +static int parse_ifdef (BUFFER *tmp, BUFFER *s, unsigned long data, BUFFER *err) +{ + int i, j, res = 0; + BUFFER token; + + memset (&token, 0, sizeof (token)); + mutt_extract_token (tmp, s, 0); + + /* is the item defined as a variable or a function? */ + if (!(res = (mutt_option_index (tmp->data) != -1))) + for (i = 0; !res && i < MENU_MAX; i++) + { + struct binding_t *b = km_get_table (Menus[i].value); + + if (!b) + continue; + + for (j = 0; b[j].name; j++) + if (!ascii_strncasecmp (tmp->data, b[j].name, mutt_strlen (tmp->data)) + && (mutt_strlen (b[j].name) == mutt_strlen (tmp->data))) + { + res = 1; + break; + } + } + + if (!MoreArgs (s)) + { + snprintf (err->data, err->dsize, _("ifdef: too few arguments")); + return (-1); + } + mutt_extract_token (tmp, s, MUTT_TOKEN_SPACE); + + if (res) + { + if (mutt_parse_rc_line (tmp->data, &token, err) == -1) + { + mutt_error ("Erreur: %s", err->data); + FREE (&token.data); + return (-1); + } + FREE (&token.data); + } + return 0; +} + static int parse_unignore (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) { do ---- init.h.orig 2018-11-29 22:49:51 UTC +--- init.h.orig 2019-05-09 20:47:17 UTC +++ init.h -@@ -4195,6 +4195,7 @@ static int parse_lists (BUFFER *, BUFFER +@@ -4309,6 +4309,7 @@ static int parse_lists (BUFFER *, BUFFER *, unsigned l static int parse_unlists (BUFFER *, BUFFER *, unsigned long, BUFFER *); static int parse_alias (BUFFER *, BUFFER *, unsigned long, BUFFER *); static int parse_unalias (BUFFER *, BUFFER *, unsigned long, BUFFER *); +static int parse_ifdef (BUFFER *, BUFFER *, unsigned long, BUFFER *); static int parse_echo (BUFFER *, BUFFER *, unsigned long, BUFFER *); static int parse_ignore (BUFFER *, BUFFER *, unsigned long, BUFFER *); static int parse_unignore (BUFFER *, BUFFER *, unsigned long, BUFFER *); -@@ -4259,6 +4260,7 @@ const struct command_t Commands[] = { +@@ -4373,6 +4374,7 @@ const struct command_t Commands[] = { { "hdr_order", parse_list, UL &HeaderOrderList }, #ifdef HAVE_ICONV { "iconv-hook", mutt_parse_hook, MUTT_ICONVHOOK }, + { "ifdef", parse_ifdef, 0 }, #endif { "ignore", parse_ignore, 0 }, { "index-format-hook",mutt_parse_idxfmt_hook, MUTT_IDXFMTHOOK }, Index: head/mail/mutt/files/extra-patch-maildir-mtime =================================================================== --- head/mail/mutt/files/extra-patch-maildir-mtime (revision 502977) +++ head/mail/mutt/files/extra-patch-maildir-mtime (revision 502978) @@ -1,52 +1,52 @@ ---- PATCHES.orig 2018-05-19 21:17:16 UTC +--- PATCHES.orig 2019-05-26 19:28:55 UTC +++ PATCHES @@ -0,0 +1 @@ +patch-1.5.7.ust.maildir-mtime.2 ---- browser.c.orig 2018-05-19 20:33:53 UTC +--- browser.c.orig 2019-05-26 19:28:52 UTC +++ browser.c @@ -32,6 +32,7 @@ #ifdef USE_IMAP #include "imap.h" #endif +#include "mx.h" #include #include -@@ -439,6 +439,21 @@ +@@ -460,6 +461,21 @@ static void init_state (struct browser_state *state, M menu->data = state->entry; } +static void check_maildir_times (BUFFY *buf, struct stat *st) +{ + char buffer[_POSIX_PATH_MAX + SHORT_STRING]; + struct stat s; + + if(!buf || buf->magic != MUTT_MAILDIR) + return; + -+ snprintf (buffer, sizeof (buffer), "%s/tmp", buf->path); ++ snprintf (buffer, sizeof (buffer), "%s/tmp", mutt_b2s(buf->pathbuf)); + if (lstat (buffer, &s) != 0) + return; + + st->st_mtime = s.st_mtime; +} + static int examine_directory (MUTTMENU *menu, struct browser_state *state, - char *d, const char *prefix) + const char *d, const char *prefix) { -@@ -504,6 +504,7 @@ +@@ -526,6 +542,7 @@ static int examine_directory (MUTTMENU *menu, struct b tmp = Incoming; - while (tmp && mutt_strcmp (buffer, tmp->path)) + while (tmp && mutt_strcmp (mutt_b2s (buffer), mutt_b2s (tmp->pathbuf))) tmp = tmp->next; + check_maildir_times (tmp, &s); if (tmp && Context && !mutt_strcmp (tmp->realpath, Context->realpath)) { -@@ -578,6 +578,7 @@ +@@ -604,6 +621,7 @@ static int examine_mailboxes (MUTTMENU *menu, struct b s.st_mtime = st2.st_mtime; } + check_maildir_times (tmp, &s); - add_folder (menu, state, buffer, &s, tmp); + add_folder (menu, state, mutt_b2s (mailbox), &s, tmp); } while ((tmp = tmp->next)); Index: head/mail/mutt/files/extra-patch-maildir-mtime-nntp =================================================================== --- head/mail/mutt/files/extra-patch-maildir-mtime-nntp (revision 502977) +++ head/mail/mutt/files/extra-patch-maildir-mtime-nntp (revision 502978) @@ -1,52 +1,52 @@ --- PATCHES.orig 2017-09-10 21:57:09 UTC +++ PATCHES @@ -0,0 +1 @@ +patch-1.5.7.ust.maildir-mtime.2 --- browser.c.orig 2017-09-10 21:56:59 UTC +++ browser.c @@ -35,6 +35,7 @@ #ifdef USE_NNTP #include "nntp.h" #endif +#include "mx.h" #include #include @@ -545,6 +546,21 @@ static void init_state (struct browser_s menu->data = state->entry; } +static void check_maildir_times (BUFFY *buf, struct stat *st) +{ + char buffer[_POSIX_PATH_MAX + SHORT_STRING]; + struct stat s; + + if(!buf || buf->magic != MUTT_MAILDIR) + return; + -+ snprintf (buffer, sizeof (buffer), "%s/tmp", buf->path); ++ snprintf (buffer, sizeof (buffer), "%s/tmp", mutt_b2s(buf->pathbuf)); + if (lstat (buffer, &s) != 0) + return; + + st->st_mtime = s.st_mtime; +} + /* get list of all files/newsgroups with mask */ static int examine_directory (MUTTMENU *menu, struct browser_state *state, char *d, const char *prefix) @@ -634,6 +650,7 @@ static int examine_directory (MUTTMENU * tmp = Incoming; while (tmp && mutt_strcmp (buffer, tmp->path)) tmp = tmp->next; + check_maildir_times (tmp, &s); if (tmp && Context && !mutt_strcmp (tmp->realpath, Context->realpath)) { @@ -737,6 +754,7 @@ static int examine_mailboxes (MUTTMENU * s.st_mtime = st2.st_mtime; } + check_maildir_times (tmp, &s); add_folder (menu, state, buffer, &s, tmp, NULL); } while ((tmp = tmp->next)); Index: head/mail/mutt/files/extra-patch-reverse_reply =================================================================== --- head/mail/mutt/files/extra-patch-reverse_reply (revision 502977) +++ head/mail/mutt/files/extra-patch-reverse_reply (revision 502978) @@ -1,91 +1,91 @@ ---- PATCHES.orig 2018-11-29 22:55:14 UTC +--- PATCHES.orig 2019-05-26 19:28:51 UTC +++ PATCHES @@ -0,0 +1 @@ +patch-1.5.6.cb.reverse_reply.2 ---- init.h.orig 2018-11-29 22:55:14 UTC +--- init.h.orig 2019-05-26 19:28:51 UTC +++ init.h -@@ -2820,6 +2820,13 @@ struct option_t MuttVars[] = { +@@ -2945,6 +2945,13 @@ struct option_t MuttVars[] = { ** possibly including eventual real names. When it is \fIunset\fP, mutt will ** override any such real names with the setting of the $$realname variable. */ + { "reverse_reply", DT_BOOL, R_NONE, OPTREVREPLY, 0 }, + /* + ** .pp + ** When set, this variable uses the name from your aliases in the To and Cc + ** headers of reply mails you send, like $reverse_alias does in the index. + ** When unset, the headers taken from the original mail are left unchanged. + */ { "rfc2047_parameters", DT_BOOL, R_NONE, OPTRFC2047PARAMS, 0 }, /* ** .pp ---- mutt.h.orig 2018-11-29 22:55:14 UTC +--- mutt.h.orig 2019-04-28 20:41:58 UTC +++ mutt.h -@@ -478,6 +478,7 @@ enum +@@ -490,6 +490,7 @@ enum OPTREVALIAS, OPTREVNAME, OPTREVREAL, + OPTREVREPLY, OPTRFC2047PARAMS, OPTSAVEADDRESS, OPTSAVEEMPTY, ---- protos.h.orig 2018-11-24 19:06:21 UTC +--- protos.h.orig 2019-04-28 20:41:58 UTC +++ protos.h -@@ -85,6 +85,7 @@ ADDRESS *mutt_get_address (ENVELOPE *, c +@@ -85,6 +85,7 @@ ADDRESS *mutt_get_address (ENVELOPE *, char **); ADDRESS *mutt_lookup_alias (const char *s); ADDRESS *mutt_remove_duplicates (ADDRESS *); ADDRESS *mutt_remove_xrefs (ADDRESS *, ADDRESS *); +ADDRESS *mutt_reverse_address (ADDRESS *); ADDRESS *mutt_expand_aliases (ADDRESS *); ADDRESS *mutt_parse_adrlist (ADDRESS *, const char *); ---- send.c.orig 2018-10-04 22:30:10 UTC +--- send.c.orig 2019-05-10 02:20:15 UTC +++ send.c -@@ -600,6 +600,10 @@ void mutt_fix_reply_recipients (ENVELOPE +@@ -716,6 +716,10 @@ void mutt_fix_reply_recipients (ENVELOPE *env) /* 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 (OPTREVREPLY)){ + env->to = mutt_reverse_address (env->to); + env->cc = mutt_reverse_address (env->cc); + } env->cc = mutt_remove_xrefs (env->to, env->cc); - + if (env->cc && !env->to) ---- sendlib.c.orig 2018-11-24 19:06:11 UTC +--- sendlib.c.orig 2019-05-09 00:19:59 UTC +++ sendlib.c -@@ -2754,6 +2754,35 @@ static void set_noconv_flags (BODY *b, s +@@ -2764,6 +2764,35 @@ static void set_noconv_flags (BODY *b, short flag) } } +/* given a list of addresses, return a list of reverse_alias'ed addresses */ +ADDRESS *mutt_reverse_address (ADDRESS *addr) +{ + ADDRESS *top,*tmp,*alias; + + if (addr == NULL) + return NULL; + + if ((alias = alias_reverse_lookup (addr)) && alias->personal) { + tmp = rfc822_cpy_adr_real(alias); + tmp->next = addr->next; + addr->next = NULL; + rfc822_free_address(&addr); + addr = tmp; + } + + for (top = addr; top->next != NULL; top = tmp) { + tmp = top->next; + if ((alias = alias_reverse_lookup (tmp)) && alias->personal) { + top->next = rfc822_cpy_adr_real(alias); + top->next->next = tmp->next; + tmp->next = NULL; + rfc822_free_address(&tmp); + tmp = top->next; + } + } + return addr; +} + int mutt_write_fcc (const char *path, HEADER *hdr, const char *msgid, int post, char *fcc) { CONTEXT f; Index: head/mail/mutt/files/extra-patch-smartdate =================================================================== --- head/mail/mutt/files/extra-patch-smartdate (revision 502977) +++ head/mail/mutt/files/extra-patch-smartdate (revision 502978) @@ -1,126 +1,126 @@ ---- hdrline.c.orig 2018-11-29 23:19:39 UTC +--- hdrline.c.orig 2019-05-26 19:28:51 UTC +++ hdrline.c -@@ -249,6 +249,89 @@ static char *apply_subject_mods (ENVELOP +@@ -249,6 +249,89 @@ static char *apply_subject_mods (ENVELOPE *env) * %Y = `x-label:' field (if present, tree unfolded, and != parent's x-label) * %Z = status flags */ +static void +format_smartdate( char *buf, size_t max, struct tm *tm, smartdate_type type ) +{ + char *strftime_fmt = NULL; + + switch( type ) { + case FUTURE: /* Date in the future */ + strftime_fmt = "%d%h%y!"; + break; + case SMARTTIME: /* Today */ + strftime_fmt = "%I:%M %p"; + break; + case YESTERDAY: /* Yesterday */ + strncpy( buf, "Yesterday", max ); + break; + case WEEKDAY: /* Within the last 7 days */ + strftime_fmt = "%A"; + break; + case STANDARD: /* Within the last six months */ + strftime_fmt = "%h %d"; + break; + case ANCIENT: /* Older than 6 months */ + strftime_fmt = "%h %Y"; + break; + } + + if( strftime_fmt != NULL ) { + strftime( buf, max, strftime_fmt, tm ); + } +} + +static void +smartdate( char *buf, size_t max, struct tm *tm ) +{ + smartdate_type type = 0; + + struct tm now; + + time_t sse = mktime( tm ); /* Seconds since epoch */ + time_t sse_now = time(NULL); /* Seconds since epoch until now */ + + int dse = 0; /* Days since epoch */ + int dse_now = 0; /* Days since epoch until today */ + + /* Calculate the number of days since epoch */ + dse = sse / (60*60*24); + dse_now = sse_now / (60*60*24); + + /* Default display type */ + type = STANDARD; + + /* Check if the date is in the future */ + if( dse > dse_now ) { + type = FUTURE; + } + else { + int diff = dse_now - dse; + if( diff == 0 ) type = SMARTTIME; + else if( diff == 1 ) type = YESTERDAY; + else if( diff < 7 ) type = WEEKDAY; + else if( diff > 215 ) type = ANCIENT; /* Surely older than six + months */ + else if( diff > 180 ) { + /* + * Slightly heavy calculation to check if the date is more + * than six months in the past. This calculation uses + * calendar months and not the exact number of days. So, + * January 31, 2003 would be considered more than six months + * old whether today's date is August 1 or August 31, 2003 + */ + int monthdiff; + localtime_r( &sse_now, &now ); + monthdiff = ( now.tm_mon - tm->tm_mon ) + + ( ( now.tm_year - tm->tm_year ) * 12 ); + if( monthdiff > 6 ) { + type = ANCIENT; + } + } + } + + format_smartdate( buf, max, tm, type ); +} + static const char * hdr_format_str (char *dest, size_t destlen, @@ -422,7 +505,13 @@ hdr_format_str (char *dest, - if (!do_locales) - setlocale (LC_TIME, "C"); -- 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, ""); ---- mutt.h.orig 2018-11-29 23:17:47 UTC +--- mutt.h.orig 2019-05-26 19:28:51 UTC +++ mutt.h -@@ -156,6 +156,16 @@ typedef enum - MUTT_FORMAT_NOFILTER = (1<<7) /* do not allow filtering on this pass */ - } format_flag; +@@ -164,6 +164,16 @@ typedef enum + MUTT_WRITE_HEADER_MIME + } mutt_write_header_mode; +/* 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: head/mail/mutt/files/extra-patch-vvv.quote =================================================================== --- head/mail/mutt/files/extra-patch-vvv.quote (nonexistent) +++ head/mail/mutt/files/extra-patch-vvv.quote (revision 502978) @@ -0,0 +1,81 @@ +--- PATCHES.orig 2017-12-03 03:10:17 UTC ++++ PATCHES +@@ -0,0 +1 @@ ++vvv.quote +--- handler.c.orig 2019-04-28 20:41:58 UTC ++++ handler.c +@@ -1593,7 +1593,31 @@ static int text_plain_handler (BODY *b, STATE *s) + buf[--l] = 0; + } + if (s->prefix) +- state_puts (s->prefix, s); ++ { ++ int i; ++ char qbuf[2 * LONG_STRING]; ++ int j = 0, offset = 0; ++ regmatch_t pmatch[1]; ++ ++ while (regexec ((regex_t *) QuoteRegexp.rx, &buf[offset], 1, pmatch, 0) == 0) ++ offset += pmatch->rm_eo; ++ ++ if (!option (OPTQUOTEEMPTY) && !*buf) ++ strcpy (qbuf, buf); ++ else if (option (OPTQUOTEQUOTED) && offset) ++ { ++ for (i = 0; i < offset; i++) ++ if (buf[i] != ' ') ++ j = i; ++ strncpy (qbuf, buf, j + 1); ++ strcpy (qbuf + j + 1, buf + j); ++ } ++ else ++ snprintf (qbuf, sizeof (qbuf), "%s%s", NONULL(s->prefix), buf); ++ ++ state_puts (qbuf, s); ++ } ++ else + state_puts (buf, s); + state_putc ('\n', s); + } +@@ -1779,7 +1803,7 @@ int mutt_body_handler (BODY *b, STATE *s) + */ + if ((WithCrypto & APPLICATION_PGP) && mutt_is_application_pgp (b)) + encrypted_handler = handler = crypt_pgp_application_pgp_handler; +- else if (option(OPTREFLOWTEXT) && ascii_strcasecmp ("flowed", mutt_get_parameter ("format", b->parameter)) == 0) ++ else if (option(OPTREFLOWTEXT) && ascii_strcasecmp ("flowed", mutt_get_parameter ("format", b->parameter)) == 0 && !s->prefix) + handler = rfc3676_handler; + else + handler = text_plain_handler; +--- init.h.orig 2019-05-09 20:47:17 UTC ++++ init.h +@@ -2731,6 +2731,19 @@ struct option_t MuttVars[] = { + ** have no effect, and if it is set to \fIask-yes\fP or \fIask-no\fP, you are + ** prompted for confirmation when you try to quit. + */ ++ { "quote_empty", DT_BOOL, R_NONE, OPTQUOTEEMPTY, 1 }, ++ /* ++ ** .pp ++ ** Controls whether or not empty lines will be quoted using ++ ** ``$indent_string''. ++ */ ++ { "quote_quoted", DT_BOOL, R_NONE, OPTQUOTEQUOTED, 0 }, ++ /* ++ ** .pp ++ ** Controls how quoted lines will be quoted. If set, one quote ++ ** character will be added to the end of existing prefix. Otherwise, ++ ** quoted lines will be prepended by ``$indent_string''. ++ */ + { "quote_regexp", DT_RX, R_PAGER, UL &QuoteRegexp, UL "^([ \t]*[|>:}#])+" }, + /* + ** .pp +--- mutt.h.orig 2019-04-28 20:41:58 UTC ++++ mutt.h +@@ -478,6 +478,8 @@ enum + OPTPRINTDECODE, + OPTPRINTSPLIT, + OPTPROMPTAFTER, ++ OPTQUOTEEMPTY, ++ OPTQUOTEQUOTED, + OPTREADONLY, + OPTREFLOWSPACEQUOTES, + OPTREFLOWTEXT, Property changes on: head/mail/mutt/files/extra-patch-vvv.quote ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/mail/mutt/files/patch-Makefile.in =================================================================== --- head/mail/mutt/files/patch-Makefile.in (revision 502977) +++ head/mail/mutt/files/patch-Makefile.in (revision 502978) @@ -1,30 +1,30 @@ ---- Makefile.in.orig 2018-11-25 17:43:43 UTC +--- Makefile.in.orig 2019-05-25 16:13:42 UTC +++ Makefile.in -@@ -531,7 +531,7 @@ AUTOMAKE_OPTIONS = 1.6 foreign +@@ -537,7 +537,7 @@ AUTOMAKE_OPTIONS = 1.6 foreign @BUILD_DOC_TRUE@DOC_SUBDIR = doc @BUILD_IMAP_TRUE@IMAP_SUBDIR = imap @BUILD_IMAP_TRUE@IMAP_INCLUDES = -I$(top_srcdir)/imap -SUBDIRS = m4 po intl $(DOC_SUBDIR) contrib $(IMAP_SUBDIR) +SUBDIRS = m4 po intl contrib $(IMAP_SUBDIR) . $(DOC_SUBDIR) bin_SCRIPTS = muttbug flea $(SMIMEAUX_TARGET) @BUILD_HCACHE_TRUE@HCVERSION = hcversion.h - BUILT_SOURCES = keymap_defs.h patchlist.c reldate.h conststrings.c $(HCVERSION) -@@ -1667,18 +1667,9 @@ install-exec-hook: + BUILT_SOURCES = keymap_defs.h patchlist.c reldate.h conststrings.c version.h $(HCVERSION) +@@ -1678,18 +1678,9 @@ install-exec-hook: 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! This is required to lock mailboxes in the mail spool directory." >&2 ; exit 1 ; } \ - fi install-data-local: $(MKDIR_P) $(DESTDIR)$(sysconfdir) - $(INSTALL) -m 644 $(srcdir)/mime.types $(DESTDIR)$(sysconfdir)/mime.types.dist - -if [ ! -f $(DESTDIR)$(sysconfdir)/mime.types ]; then \ - $(INSTALL) -m 644 $(srcdir)/mime.types $(DESTDIR)$(sysconfdir); \ - fi uninstall-local: for i in mime.types ; do \ Index: head/mail/mutt/files/patch-browser.c =================================================================== --- head/mail/mutt/files/patch-browser.c (revision 502977) +++ head/mail/mutt/files/patch-browser.c (revision 502978) @@ -1,41 +1,41 @@ ---- browser.c.orig 2016-10-08 19:35:50 UTC +--- browser.c.orig 2019-04-28 20:41:58 UTC +++ browser.c -@@ -80,6 +80,12 @@ static int browser_compare_subject (cons +@@ -86,6 +86,12 @@ static int browser_compare_subject (const void *a, con struct folder_file *pa = (struct folder_file *) a; struct folder_file *pb = (struct folder_file *) b; + /* Always keep '..' in first menu position */ + if (!strncmp(pa->name, "..", 2)) + return(-1); + if (!strncmp(pb->name, "..", 2)) + return(1); + int r = mutt_strcoll (pa->name, pb->name); return ((BrowserSort & SORT_REVERSE) ? -r : r); -@@ -90,6 +96,12 @@ static int browser_compare_date (const v +@@ -96,6 +102,12 @@ static int browser_compare_date (const void *a, const struct folder_file *pa = (struct folder_file *) a; struct folder_file *pb = (struct folder_file *) b; + /* Always keep '..' in first menu position */ + if (!strncmp(pa->name, "..", 2)) + return(-1); + if (!strncmp(pb->name, "..", 2)) + return(1); + int r = pa->mtime - pb->mtime; return ((BrowserSort & SORT_REVERSE) ? -r : r); -@@ -100,6 +112,12 @@ static int browser_compare_size (const v +@@ -105,6 +117,12 @@ static int browser_compare_size (const void *a, const + { struct folder_file *pa = (struct folder_file *) a; struct folder_file *pb = (struct folder_file *) b; - ++ + /* Always keep '..' in first menu position */ + if (!strncmp(pa->name, "..", 2)) + return(-1); + if (!strncmp(pb->name, "..", 2)) + return(1); -+ + int r = pa->size - pb->size; - return ((BrowserSort & SORT_REVERSE) ? -r : r); Index: head/mail/mutt/files/patch-contrib_Makefile.in =================================================================== --- head/mail/mutt/files/patch-contrib_Makefile.in (revision 502977) +++ head/mail/mutt/files/patch-contrib_Makefile.in (revision 502978) @@ -1,11 +1,11 @@ ---- contrib/Makefile.in.orig 2018-11-25 17:43:43 UTC +--- contrib/Makefile.in.orig 2019-05-25 16:13:42 UTC +++ contrib/Makefile.in -@@ -272,7 +272,7 @@ top_build_prefix = @top_build_prefix@ +@@ -278,7 +278,7 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ subdir = contrib -SAMPLES = Mush.rc Pine.rc gpg.rc pgp2.rc pgp5.rc pgp6.rc Tin.rc \ +SAMPLES = Mush.rc Pine.rc gpg.rc pgp2.rc pgp6.rc Tin.rc \ sample.mailcap sample.muttrc sample.muttrc-sidebar sample.muttrc-tlr \ - sample.muttrc-compress sample.vimrc-sidebar colors.default colors.linux smime.rc \ - ca-bundle.crt smime_keys_test.pl mutt_xtitle + sample.muttrc-compress sample.muttrc-starter \ + sample.vimrc-sidebar colors.default colors.linux smime.rc \ Index: head/mail/mutt/files/patch-date-conditional =================================================================== --- head/mail/mutt/files/patch-date-conditional (revision 502977) +++ head/mail/mutt/files/patch-date-conditional (revision 502978) @@ -1,97 +1,97 @@ ---- PATCHES.orig 2017-12-03 03:10:17 UTC +--- PATCHES.orig 2019-05-26 19:28:53 UTC +++ PATCHES @@ -0,0 +1 @@ +patch-1.5.0.ats.date_conditional.1 ---- hdrline.c.orig 2018-11-24 19:06:11 UTC +--- hdrline.c.orig 2019-05-26 19:28:52 UTC +++ hdrline.c @@ -428,6 +428,53 @@ hdr_format_str (char *dest, - const char *cp; - struct tm *tm; - time_t T; + const char *cp; + struct tm *tm; + time_t T; + int i = 0, invert = 0; + + if (optional && (op == '[' || op == '(')) { + char *is; + T = time(NULL); + T -= (op == '(') ? hdr->received : hdr->date_sent; + + is = (char *)prefix; + if( *is == '>' ) { + invert = 1; + ++is; + } + + while( *is && *is != '?' ) { + int t = strtol (is, &is, 10); + switch (*(is++)) { + case '?': + break; + case 'y': + t *= 365 * 24 * 60 * 60; + break; + case 'M': + t *= 30 * 24 * 60 * 60; + break; + case 'w': + t *= 7 * 24 * 60 * 60; + break; + case 'd': + t *= 24 * 60 * 60; + break; + case 'h': + t *= 60 * 60; + break; + case 'm': + t *= 60; + break; + } + i += t; + } + + if (i < 0) + i *= -1; + + if( (T > i || T < -1*i) ^ invert ) + optional = 0; + break; + } - p = dest; + p = dest; ---- muttlib.c.orig 2018-11-24 19:06:21 UTC +--- muttlib.c.orig 2019-04-28 20:41:58 UTC +++ muttlib.c -@@ -1382,7 +1382,16 @@ void mutt_FormatString (char *dest, /* +@@ -1487,7 +1487,16 @@ void mutt_FormatString (char *dest, /* output buffer if (*src == '?') { flags |= MUTT_FORMAT_OPTIONAL; - src++; + ch = *(++src); /* save the character to switch on */ + cp = prefix; + ++src; + count = 0; + while (count < sizeof (prefix) && *src != '?') + { + *cp++ = *src++; + count++; + } + *cp = 0; } else { -@@ -1398,12 +1407,12 @@ void mutt_FormatString (char *dest, /* +@@ -1503,12 +1512,12 @@ void mutt_FormatString (char *dest, /* output buffer count++; } *cp = 0; - } - if (!*src) - break; /* bad format */ + if (!*src) + break; /* bad format */ - ch = *src++; /* save the character to switch on */ + ch = *src++; /* save the character to switch on */ + } if (flags & MUTT_FORMAT_OPTIONAL) { Index: head/mail/mutt/files/patch-dgc-deepif =================================================================== --- head/mail/mutt/files/patch-dgc-deepif (revision 502977) +++ head/mail/mutt/files/patch-dgc-deepif (revision 502978) @@ -1,30 +1,30 @@ ---- muttlib.c.orig 2017-06-03 02:20:37 UTC +--- muttlib.c.orig 2019-05-26 19:28:53 UTC +++ muttlib.c -@@ -1425,6 +1425,12 @@ void mutt_FormatString (char *dest, /* +@@ -1530,6 +1530,12 @@ void mutt_FormatString (char *dest, /* output buffer count = 0; while (count < sizeof (ifstring) && *src && *src != '?' && *src != '&') { + if (*src == '\\') + { + src++; + if (!*src) + break; + } *cp++ = *src++; count++; } -@@ -1437,7 +1437,13 @@ void mutt_FormatString (char *dest, /* +@@ -1542,7 +1548,13 @@ void mutt_FormatString (char *dest, /* output buffer count = 0; while (count < sizeof (elsestring) && *src && *src != '?') { - *cp++ = *src++; + if (*src == '\\') + { + src++; + if (!*src) + break; + } + *cp++ = *src++; count++; } *cp = 0; Index: head/mail/mutt/files/patch-doc_Makefile.in =================================================================== --- head/mail/mutt/files/patch-doc_Makefile.in (revision 502977) +++ head/mail/mutt/files/patch-doc_Makefile.in (revision 502978) @@ -1,29 +1,29 @@ ---- doc/Makefile.in.orig 2018-12-01 04:54:52 UTC +--- doc/Makefile.in.orig 2019-05-25 16:13:43 UTC +++ doc/Makefile.in -@@ -678,14 +678,7 @@ install-data-local: makedoc-all instdoc +@@ -684,14 +684,7 @@ install-data-local: makedoc-all instdoc -for f in $(HTML_DOCFILES) ; do \ $(INSTALL) -m 644 $$f $(DESTDIR)$(docdir) ; \ done - $(INSTALL) -m 644 Muttrc $(DESTDIR)$(sysconfdir)/Muttrc.dist - -if [ -f $(DESTDIR)$(pkgdatadir)/Muttrc ] ; then \ - mv $(DESTDIR)$(pkgdatadir)/Muttrc* $(DESTDIR)$(sysconfdir) ; \ - elif [ -f $(DESTDIR)$(pkgdatadir)/../Muttrc ] ; then \ - mv $(DESTDIR)$(pkgdatadir)/../Muttrc* $(DESTDIR)$(sysconfdir) ; \ - elif [ ! -f $(DESTDIR)$(sysconfdir)/Muttrc ] ; then \ - $(INSTALL) -m 644 Muttrc $(DESTDIR)$(sysconfdir) ; \ - fi + $(INSTALL) -m 644 Muttrc $(DESTDIR)$(sysconfdir)/Muttrc.sample -if [ -f mutt.info ] ; then \ $(MKDIR_P) $(DESTDIR)$(infodir) ; \ $(INSTALL) -m 644 mutt.info $(DESTDIR)$(infodir) ; \ -@@ -721,9 +714,7 @@ uninstall-local: +@@ -727,9 +720,7 @@ uninstall-local: check: manual.txt: manual.html - -LC_ALL=C lynx -dump -nolist -with_backspaces -display_charset=us-ascii manual.html > $@ || \ - LC_ALL=C w3m -dump manual.html > $@ || \ - LC_ALL=C elinks -dump -no-numbering -no-references manual.html | sed -e 's,\\001, ,g' > $@ + -LC_ALL=C lynx -dump -nolist -with_backspaces -display_charset=us-ascii manual.html > $@ Muttrc: stamp-doc-rc Index: head/mail/mutt/files/patch-doc_Muttrc =================================================================== --- head/mail/mutt/files/patch-doc_Muttrc (revision 502977) +++ head/mail/mutt/files/patch-doc_Muttrc (revision 502978) @@ -1,10 +1,10 @@ ---- doc/Muttrc.orig 2018-05-19 20:52:48 UTC +--- doc/Muttrc.orig 2019-05-25 16:14:02 UTC +++ doc/Muttrc -@@ -709,6 +709,7 @@ +@@ -723,6 +723,7 @@ attachments -I message/external-body # will be saved for later references. Also see $record, # $save_name, $force_name and ``fcc-hook''. # +set followup_to=no # # set crypt_autoencrypt=no # Index: head/mail/mutt/files/patch-muttlib.c =================================================================== --- head/mail/mutt/files/patch-muttlib.c (revision 502977) +++ head/mail/mutt/files/patch-muttlib.c (revision 502978) @@ -1,25 +1,25 @@ ---- muttlib.c.orig 2018-11-24 19:06:21 UTC +--- muttlib.c.orig 2019-05-26 19:28:53 UTC +++ muttlib.c -@@ -845,16 +845,15 @@ void _mutt_buffer_mktemp (BUFFER *buf, c +@@ -856,16 +856,15 @@ void _mutt_buffer_mktemp (BUFFER *buf, const char *pre void _mutt_mktemp (char *s, size_t slen, const char *prefix, const char *suffix, const char *src, int line) { - size_t n = snprintf (s, slen, "%s/%s-%s-%d-%d-%ld%ld%s%s", -- NONULL (Tempdir), NONULL (prefix), NONULL (Hostname), -- (int) getuid (), (int) getpid (), random (), random (), -- suffix ? "." : "", NONULL (suffix)); +- NONULL (Tempdir), NONULL (prefix), NONULL (Hostname), +- (int) getuid (), (int) getpid (), random (), random (), +- suffix ? "." : "", NONULL (suffix)); + size_t n = snprintf (s, slen, "%s/mutt-%s-XXXXXXXX", NONULL (Tempdir), NONULL (Hostname)); if (n >= slen) dprint (1, (debugfile, "%s:%d: ERROR: insufficient buffer space to hold temporary filename! slen=%zu but need %zu\n", - src, line, slen, n)); + src, line, slen, n)); - dprint (3, (debugfile, "%s:%d: mutt_mktemp returns \"%s\".\n", src, line, s)); - if (unlink (s) && errno != ENOENT) - dprint (1, (debugfile, "%s:%d: ERROR: unlink(\"%s\"): %s (errno %d)\n", src, line, s, strerror (errno), errno)); + if (mktemp (s)) { + dprint (3, (debugfile, "%s:%d: mutt_mktemp returns \"%s\".\n", src, line, s)); + } else { + dprint (1, (debugfile, "%s:%d: ERROR: mktemp(\"%s\"): %s (errno %d)\n", src, line, s, strerror (errno), errno)); + } } - void mutt_free_alias (ALIAS **p) + /* these characters must be escaped in regular expressions */ Index: head/mail/mutt/files/patch-smime-sender =================================================================== --- head/mail/mutt/files/patch-smime-sender (revision 502977) +++ head/mail/mutt/files/patch-smime-sender (revision 502978) @@ -1,39 +1,39 @@ ---- commands.c.orig 2018-10-04 22:30:10 UTC +--- commands.c.orig 2019-04-28 20:41:58 UTC +++ commands.c -@@ -186,7 +186,7 @@ int mutt_display_message (HEADER *cur) +@@ -266,7 +266,7 @@ int mutt_display_message (HEADER *cur) { if (cur->security & GOODSIGN) { - if (!crypt_smime_verify_sender(cur)) + if (option(OPTSMIMENOSENDER) || !crypt_smime_verify_sender(cur)) mutt_message ( _("S/MIME signature successfully verified.")); else mutt_error ( _("S/MIME certificate owner does not match sender.")); ---- init.h.orig 2018-11-24 19:06:11 UTC +--- init.h.orig 2019-05-26 19:28:51 UTC +++ init.h -@@ -3232,6 +3232,15 @@ struct option_t MuttVars[] = { +@@ -3357,6 +3357,15 @@ struct option_t MuttVars[] = { ** to determine the key to use. It will ask you to supply a key, if it can't find one. ** (S/MIME only) */ + { "smime_dont_check_sender", DT_BOOL, R_NONE, OPTSMIMENOSENDER, 0 }, + /* + ** .pp + ** This flag controls wether you want the skip the check for the sender's + ** email address against the email address stored in the certificate. + ** This can be useful if most of your email senders use SMIMEv3 which no + ** longer needs email-addresses as part of the certificates. + ** It is not set by default. + */ { "smime_self_encrypt_as", DT_SYN, R_NONE, UL "smime_default_key", 0 }, { "smime_default_key", DT_STR, R_NONE, UL &SmimeDefaultKey, 0 }, /* ---- mutt.h.orig 2018-11-24 19:06:11 UTC +--- mutt.h.orig 2019-05-26 19:28:52 UTC +++ mutt.h -@@ -551,6 +551,7 @@ enum +@@ -566,6 +566,7 @@ enum OPTSMIMEISDEFAULT, OPTSMIMESELFENCRYPT, OPTASKCERTLABEL, + OPTSMIMENOSENDER, OPTSDEFAULTDECRYPTKEY, OPTPGPIGNORESUB, OPTPGPCHECKEXIT, Index: head/mail/mutt/files/patch-threadcomplete =================================================================== --- head/mail/mutt/files/patch-threadcomplete (revision 502977) +++ head/mail/mutt/files/patch-threadcomplete (revision 502978) @@ -1,37 +1,37 @@ ---- mutt.h.orig 2018-11-24 19:06:11 UTC +--- mutt.h.orig 2019-05-26 19:28:54 UTC +++ mutt.h -@@ -234,6 +234,7 @@ enum +@@ -242,6 +242,7 @@ enum MUTT_EXPIRED, MUTT_SUPERSEDED, MUTT_TRASH, + MUTT_THREADCOMPLETE, /* actions for mutt_pattern_comp/mutt_pattern_exec */ MUTT_AND, ---- pattern.c.orig 2018-11-24 19:06:11 UTC +--- pattern.c.orig 2019-05-10 01:46:06 UTC +++ pattern.c @@ -57,6 +57,7 @@ static const struct pattern_flags } Flags[] = { + { 'a', MUTT_THREADCOMPLETE, 0, NULL }, { 'A', MUTT_ALL, 0, NULL }, { 'b', MUTT_BODY, MUTT_FULL_MSG, eat_regexp }, { 'B', MUTT_WHOLE_MSG, MUTT_FULL_MSG, eat_regexp }, -@@ -1343,6 +1344,16 @@ mutt_pattern_exec (struct pattern_t *pat +@@ -1338,6 +1339,16 @@ mutt_pattern_exec (struct pattern_t *pat, pattern_exec 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; + if(! pattern_set) { + memset (&tmp, 0, sizeof (tmp)); + tmp.op = MUTT_TAG; + pattern_set = 1; + } + return (pat->not ^ (h->env && match_threadcomplete(&tmp, flags, ctx, h->thread, 1, 1, 1, 1))); + } case MUTT_SUBSCRIBED_LIST: if (cache) { Index: head/mail/mutt/pkg-plist =================================================================== --- head/mail/mutt/pkg-plist (revision 502977) +++ head/mail/mutt/pkg-plist (revision 502978) @@ -1,111 +1,112 @@ bin/flea bin/mutt bin/muttbug @(,mail,2755) bin/mutt_dotlock bin/mutt_pgpring bin/pgpewrap bin/smime_keys @sample etc/Muttrc.sample man/man1/mutt.1.gz man/man1/mutt_dotlock.1.gz man/man1/mutt_pgpring.1.gz man/man1/pgpewrap.1.gz man/man1/smime_keys.1.gz man/man5/mailcap.5.gz %%MAILBOX_MANPAGES%%man/man5/mbox.5.gz %%MAILBOX_MANPAGES%%man/man5/mmdf.5.gz man/man5/muttrc.5.gz %%PORTDOCS%%%%DOCSDIR%%/COPYRIGHT %%PORTDOCS%%%%DOCSDIR%%/ChangeLog %%PORTDOCS%%%%DOCSDIR%%/GPL %%PORTDOCS%%%%DOCSDIR%%/INSTALL %%PORTDOCS%%%%DOCSDIR%%/NEWS %%PORTDOCS%%%%DOCSDIR%%/PGP-Notes.txt %%PORTDOCS%%%%DOCSDIR%%/README %%PORTDOCS%%%%DOCSDIR%%/README.SECURITY %%PORTDOCS%%%%DOCSDIR%%/README.SSL %%PORTDOCS%%%%DOCSDIR%%/TODO %%PORTDOCS%%%%DOCSDIR%%/applying-patches.txt %%PORTDOCS%%%%DOCSDIR%%/devel-notes.txt %%PORTDOCS%%%%DOCSDIR%%/manual.txt %%PORTDOCS%%%%DOCSDIR%%/patch-notes.txt %%PORTDOCS%%%%DOCSDIR%%/smime-notes.txt %%NNTP%%%%PORTDOCS%%%%DOCSDIR%%/ChangeLog.nntp %%HTML%%%%PORTDOCS%%%%DOCSDIR%%/advancedusage.html %%HTML%%%%PORTDOCS%%%%DOCSDIR%%/configuration.html %%HTML%%%%PORTDOCS%%%%DOCSDIR%%/gettingstarted.html %%HTML%%%%PORTDOCS%%%%DOCSDIR%%/index.html %%HTML%%%%PORTDOCS%%%%DOCSDIR%%/intro.html %%HTML%%%%PORTDOCS%%%%DOCSDIR%%/manual.html %%HTML%%%%PORTDOCS%%%%DOCSDIR%%/mimesupport.html %%HTML%%%%PORTDOCS%%%%DOCSDIR%%/miscellany.html %%HTML%%%%PORTDOCS%%%%DOCSDIR%%/optionalfeatures.html %%HTML%%%%PORTDOCS%%%%DOCSDIR%%/reference.html %%HTML%%%%PORTDOCS%%%%DOCSDIR%%/security.html %%HTML%%%%PORTDOCS%%%%DOCSDIR%%/tuning.html %%PORTEXAMPLES%%%%EXAMPLESDIR%%/Mush.rc %%PORTEXAMPLES%%%%EXAMPLESDIR%%/Pine.rc %%PORTEXAMPLES%%%%EXAMPLESDIR%%/Tin.rc %%PORTEXAMPLES%%%%EXAMPLESDIR%%/ca-bundle.crt %%PORTEXAMPLES%%%%EXAMPLESDIR%%/colors.default %%PORTEXAMPLES%%%%EXAMPLESDIR%%/colors.linux %%PORTEXAMPLES%%%%EXAMPLESDIR%%/gpg.rc %%PORTEXAMPLES%%%%EXAMPLESDIR%%/iconv/iconv.aix-3.2.5.rc %%PORTEXAMPLES%%%%EXAMPLESDIR%%/iconv/iconv.aix-4.1.5.rc %%PORTEXAMPLES%%%%EXAMPLESDIR%%/iconv/iconv.aix-4.2.0.rc %%PORTEXAMPLES%%%%EXAMPLESDIR%%/iconv/iconv.aix-4.3.2.rc %%PORTEXAMPLES%%%%EXAMPLESDIR%%/iconv/iconv.freebsd-3.3.rc %%PORTEXAMPLES%%%%EXAMPLESDIR%%/iconv/iconv.glibc-2.1.3.rc %%PORTEXAMPLES%%%%EXAMPLESDIR%%/iconv/iconv.glibc-2.1.90.rc %%PORTEXAMPLES%%%%EXAMPLESDIR%%/iconv/iconv.hpux-10.01.rc %%PORTEXAMPLES%%%%EXAMPLESDIR%%/iconv/iconv.hpux-10.20.rc %%PORTEXAMPLES%%%%EXAMPLESDIR%%/iconv/iconv.hpux-11.00.rc %%PORTEXAMPLES%%%%EXAMPLESDIR%%/iconv/iconv.irix-6.5.rc %%PORTEXAMPLES%%%%EXAMPLESDIR%%/iconv/iconv.osf1-4.0a.rc %%PORTEXAMPLES%%%%EXAMPLESDIR%%/iconv/iconv.osf1-4.0d.rc %%PORTEXAMPLES%%%%EXAMPLESDIR%%/iconv/iconv.solaris-2.4.rc %%PORTEXAMPLES%%%%EXAMPLESDIR%%/iconv/iconv.solaris-2.5.1.rc %%PORTEXAMPLES%%%%EXAMPLESDIR%%/iconv/iconv.solaris-2.6-cjk.rc %%PORTEXAMPLES%%%%EXAMPLESDIR%%/iconv/iconv.solaris-2.6.rc %%PORTEXAMPLES%%%%EXAMPLESDIR%%/iconv/iconv.solaris-2.7.rc %%PORTEXAMPLES%%%%EXAMPLESDIR%%/mutt_xtitle %%PORTEXAMPLES%%%%EXAMPLESDIR%%/pgp2.rc %%PORTEXAMPLES%%%%EXAMPLESDIR%%/pgp6.rc %%PORTEXAMPLES%%%%EXAMPLESDIR%%/sample.mailcap %%PORTEXAMPLES%%%%EXAMPLESDIR%%/sample.muttrc %%PORTEXAMPLES%%%%EXAMPLESDIR%%/sample.muttrc-compress %%PORTEXAMPLES%%%%EXAMPLESDIR%%/sample.muttrc-sidebar +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sample.muttrc-starter %%PORTEXAMPLES%%%%EXAMPLESDIR%%/sample.muttrc-tlr %%PORTEXAMPLES%%%%EXAMPLESDIR%%/sample.vimrc-sidebar %%PORTEXAMPLES%%%%EXAMPLESDIR%%/smime.rc %%PORTEXAMPLES%%%%EXAMPLESDIR%%/smime_keys_test.pl %%NLS%%share/locale/bg/LC_MESSAGES/mutt.mo %%NLS%%share/locale/ca/LC_MESSAGES/mutt.mo %%NLS%%share/locale/cs/LC_MESSAGES/mutt.mo %%NLS%%share/locale/da/LC_MESSAGES/mutt.mo %%NLS%%share/locale/de/LC_MESSAGES/mutt.mo %%NLS%%share/locale/el/LC_MESSAGES/mutt.mo %%NLS%%share/locale/eo/LC_MESSAGES/mutt.mo %%NLS%%share/locale/es/LC_MESSAGES/mutt.mo %%NLS%%share/locale/et/LC_MESSAGES/mutt.mo %%NLS%%share/locale/eu/LC_MESSAGES/mutt.mo %%NLS%%share/locale/fi/LC_MESSAGES/mutt.mo %%NLS%%share/locale/fr/LC_MESSAGES/mutt.mo %%NLS%%share/locale/ga/LC_MESSAGES/mutt.mo %%NLS%%share/locale/gl/LC_MESSAGES/mutt.mo %%NLS%%share/locale/hu/LC_MESSAGES/mutt.mo %%NLS%%share/locale/id/LC_MESSAGES/mutt.mo %%NLS%%share/locale/it/LC_MESSAGES/mutt.mo %%NLS%%share/locale/ja/LC_MESSAGES/mutt.mo %%NLS%%share/locale/ko/LC_MESSAGES/mutt.mo %%NLS%%share/locale/lt/LC_MESSAGES/mutt.mo %%NLS%%share/locale/nl/LC_MESSAGES/mutt.mo %%NLS%%share/locale/pl/LC_MESSAGES/mutt.mo %%NLS%%share/locale/pt_BR/LC_MESSAGES/mutt.mo %%NLS%%share/locale/ru/LC_MESSAGES/mutt.mo %%NLS%%share/locale/sk/LC_MESSAGES/mutt.mo %%NLS%%share/locale/sv/LC_MESSAGES/mutt.mo %%NLS%%share/locale/tr/LC_MESSAGES/mutt.mo %%NLS%%share/locale/uk/LC_MESSAGES/mutt.mo %%NLS%%share/locale/zh_CN/LC_MESSAGES/mutt.mo %%NLS%%share/locale/zh_TW/LC_MESSAGES/mutt.mo