Index: head/mail/mutt/Makefile =================================================================== --- head/mail/mutt/Makefile (revision 512640) +++ head/mail/mutt/Makefile (revision 512641) @@ -1,257 +1,257 @@ # Created by: Udo Schweigert # $FreeBSD$ PORTNAME= mutt -DISTVERSION= 1.12.1 +DISTVERSION= 1.12.2 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 \ 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 "%@" 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 \ 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} 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 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.12.1 -GREETING_PATCH_VERSION= 1.12.0 +VVV_PATCH_VERSION= 1.12.1 +GREETING_PATCH_VERSION= 1.12.1 .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 512640) +++ head/mail/mutt/distinfo (revision 512641) @@ -1,11 +1,11 @@ -TIMESTAMP = 1565808330 -SHA256 (mutt/mutt-1.12.1.tar.gz) = 01c565406ec4ffa85db90b45ece2260b25fac3646cc063bbc20a242c6ed4210c -SIZE (mutt/mutt-1.12.1.tar.gz) = 4675166 -SHA256 (mutt/mutt-1.12.0.vc.greeting) = 7596d930447e9834567c0cfddf9ac023ecbb99add64bee4131d87e0260eec591 -SIZE (mutt/mutt-1.12.0.vc.greeting) = 4559 +TIMESTAMP = 1569099378 +SHA256 (mutt/mutt-1.12.2.tar.gz) = bc42750ce8237742b9382f2148fc547a8d8601aa4a7cd28c55fe7ca045196882 +SIZE (mutt/mutt-1.12.2.tar.gz) = 4675774 +SHA256 (mutt/mutt-1.12.1.vc.greeting) = 54d1267c1ac496662b47131f9761b5ab53f44c93498938dc93d0156c6578e378 +SIZE (mutt/mutt-1.12.1.vc.greeting) = 4559 SHA256 (mutt/patch-1.12.1.vvv.nntp.xz) = 9c420584d549ac0bb49c52ddfd2ab5bee0f89e59cb938673444ec27ad7c782ad SIZE (mutt/patch-1.12.1.vvv.nntp.xz) = 49672 SHA256 (mutt/patch-1.12.1.vvv.initials.xz) = 6c66fe6c23362b0f4970a5028a75a33454e1e53ba178e5801113939f1bc22920 SIZE (mutt/patch-1.12.1.vvv.initials.xz) = 724 SHA256 (mutt/patch-1.12.1.vvv.quote.xz) = 365200817a203a892094062445865b7b8f9ab37e8214ec526082876ffd0d8ab4 SIZE (mutt/patch-1.12.1.vvv.quote.xz) = 1332 Index: head/mail/mutt/files/extra-patch-ifdef =================================================================== --- head/mail/mutt/files/extra-patch-ifdef (revision 512640) +++ head/mail/mutt/files/extra-patch-ifdef (revision 512641) @@ -1,77 +1,77 @@ ---- PATCHES.orig 2019-06-15 21:17:01 UTC +--- PATCHES.orig 2017-12-03 03:10:17 UTC +++ PATCHES @@ -0,0 +1 @@ +patch-1.5.4.cd.ifdef.1 ---- init.c.orig 2019-05-25 16:22:39 UTC +--- init.c.orig 2019-09-21 19:18:34 UTC +++ init.c @@ -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 2019-06-15 15:57:01 UTC +--- init.h.orig 2019-09-21 19:18:34 UTC +++ init.h -@@ -4330,6 +4330,7 @@ static int parse_lists (BUFFER *, BUFFER *, unsigned l +@@ -4343,6 +4343,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 *); -@@ -4394,6 +4395,7 @@ const struct command_t Commands[] = { +@@ -4407,6 +4407,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-reverse_reply =================================================================== --- head/mail/mutt/files/extra-patch-reverse_reply (revision 512640) +++ head/mail/mutt/files/extra-patch-reverse_reply (revision 512641) @@ -1,91 +1,91 @@ ---- PATCHES.orig 2019-06-15 21:17:02 UTC +--- PATCHES.orig 2017-12-03 03:10:17 UTC +++ PATCHES @@ -0,0 +1 @@ +patch-1.5.6.cb.reverse_reply.2 ---- init.h.orig 2019-06-15 21:17:01 UTC +--- init.h.orig 2019-09-21 19:18:34 UTC +++ init.h @@ -2966,6 +2966,13 @@ struct option_t MuttVars[] = { ** In either case, a missing real name will be filled in afterwards ** using the value of $$realname. */ + { "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 2019-06-15 21:17:01 UTC +--- mutt.h.orig 2019-09-21 19:18:34 UTC +++ mutt.h @@ -491,6 +491,7 @@ enum OPTREVALIAS, OPTREVNAME, OPTREVREAL, + OPTREVREPLY, OPTRFC2047PARAMS, OPTSAVEADDRESS, OPTSAVEEMPTY, ---- protos.h.orig 2019-05-25 16:22:39 UTC +--- protos.h.orig 2019-09-21 19:18:34 UTC +++ protos.h @@ -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 2019-06-14 15:57:33 UTC +--- send.c.orig 2019-09-21 19:18:34 UTC +++ send.c @@ -717,6 +717,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 2019-06-14 15:57:30 UTC +--- sendlib.c.orig 2019-09-21 19:18:34 UTC +++ sendlib.c -@@ -2764,6 +2764,35 @@ static void set_noconv_flags (BODY *b, short flag) +@@ -2765,6 +2765,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;