Index: head/mail/mutt/Makefile =================================================================== --- head/mail/mutt/Makefile (revision 440846) +++ head/mail/mutt/Makefile (revision 440847) @@ -1,315 +1,309 @@ # Created by: Udo Schweigert # $FreeBSD$ PORTNAME= mutt PORTVERSION= 1.8.2 -PORTREVISION?= 0 +PORTREVISION?= 1 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 DISTFILES= ${DISTNAME}${EXTRACT_SUFX} 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 \ - https://web-beta.archive.org/web/20161116074212/http://home.uchicago.edu/~dgc/sw/mutt/:dgc \ - http://home.uchicago.edu/~dgc/sw/mutt/:dgc \ https://www.schrab.com/aaron/mutt/:ats \ http://vc.org.ua/mutt/:vc PATCH_DIST_STRIP= -p1 -PATCHFILES= patch-1.5.1.dgc.deepif.1:dgc \ - patch-1.7.0.ats.date_conditional.1:ats +PATCHFILES= patch-1.7.0.ats.date_conditional.1:ats MAINTAINER?= dereks@lifeofadishwasher.com COMMENT?= Small but powerful text based program for read/writing e-mail LICENSE= GPLv2+ 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]* DOCSDIR?= ${PREFIX}/share/doc/mutt EXAMPLESDIR?= ${PREFIX}/share/examples/mutt DATADIR?= ${PREFIX}/share/mutt CONFIGURE_ENV= CC="${CC} -I${LOCALBASE}/include" CONFIGURE_ARGS= --disable-fcntl --with-ssl=${OPENSSLBASE} \ --with-docdir=${DOCSDIR} --sysconfdir=${PREFIX}/etc \ --enable-external-dotlock --enable-pop --enable-imap \ --enable-compressed USES+= cpe shebangfix ssl 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 USES+= autoreconf GNU_CONFIGURE= yes AUTOMAKE_ARGS= --add-missing --foreign OPTIONS_SUB= yes .if defined (MUTT_LITE) OPTIONS_EXCLUDE= NLS DOCS EXAMPLES .else 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 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 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) +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) PARENT_CHILD_MATCH_PATCH_DESC= Parent/child match QUOTE_PATCH_DESC= Extended quoting REVERSE_REPLY_PATCH_DESC= Reverse_reply SIDEBAR_DESC= Sidebar support 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 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 .if !defined (MUTT_LITE) 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 .endif .if defined (MUTT_LITE) PKGNAMESUFFIX= -lite USES+= ncurses PLIST_SUB+= MAILBOX_MANPAGES="" PLIST_SUB+= HTML="@comment " PLIST_SUB+= NNTP="@comment " # XXX bug in bpm ? PLIST_SUB+= NLS="@comment " CONFIGURE_ARGS+= --disable-nls --disable-iconv --without-idn .endif .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_CONFIGURE_OFF= --disable-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 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 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= libidn.so:dns/libidn IDN_CONFIGURE_WITH= idn IDN_IMPLIES= ICONV 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.gz:vvv \ patch-${VVV_PATCH_VERSION}.vvv.quote.gz:vvv NNTP_DISTFILES= patch-${VVV_PATCH_VERSION}.vvv.nntp.gz:vvv \ patch-${VVV_PATCH_VERSION}.vvv.nntp_ru.gz:vvv NNTP_CONFIGURE_ON= --enable-nntp NNTP_VARS= XML_NEEDED=yes NNTP_CATEGORIES= news SIDEBAR_CONFIGURE_ENABLE= sidebar DOCS_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-doc-ref .include # un/comment as each VERSION is created for PORTVERSION -VVV_PATCH_VERSION= 1.8.0 +#VVV_PATCH_VERSION= 1.8.0 #GREETING_PATCH_VERSION= 1.8.1 .if !defined(VVV_PATCH_VERSION) VVV_PATCH_VERSION= ${PORTVERSION} .endif .if !defined(GREETING_PATCH_VERSION) GREETING_PATCH_VERSION= ${PORTVERSION} .endif # XXX # this should be done automagically by aclocal but .... # for now, this will have to do pre-build:: @${REINPLACE_CMD} -E -e "s|^(ACLOCAL = ).+|\1${ACLOCAL}|" \ -e "s|^(AUTOCONF = ).+|\1${AUTOCONF}|" \ -e "s|^(AUTOMAKE = ).+|\1${AUTOMAKE}|" \ -e "s|^(AUTOHEADER = ).+|\1${AUTOHEADER}|" \ ${BUILD_WRKSRC}/Makefile LDFLAGS+= -L${LOCALBASE}/lib -Wl,-rpath=${LOCALBASE}/lib:/usr/lib -ltinfow CFLAGS+= ${CFLAGS_ADD} LDFLAGS+= ${LDFLAGS_ADD} 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' \ ${WRKDIR}/patch-nntp @${PATCH} -d ${PATCH_WRKSRC} ${PATCH_ARGS} -p1 < ${WRKDIR}/patch-nntp post-patch-NNTP-on: .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} post-patch-IFDEF_PATCH-on: @${PATCH} -d ${PATCH_WRKSRC} ${PATCH_ARGS} -p1 < ${PATCHDIR}/extra-patch-ifdef WRKSRC= ${WRKDIR}/${DISTNAME:S/i$//} post-patch: @${REINPLACE_CMD} -e 's,/usr/bin/gpg,${LOCALBASE}/bin/gpg,g' \ ${WRKSRC}/contrib/gpg.rc @${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.am pre-configure:: @${RM} ${WRKSRC}/missing .if defined(WITH_KRB5_SYS) @${ECHO_CMD} "#define HAVE_HEIMDAL" >> ${WRKSRC}/config.h.in @${REINPLACE_CMD} -e 's|||' \ ${WRKSRC}/imap/auth_gss.c .endif -.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 +pre-configure-HCACHE_BDB-on: + @${REINPLACE_CMD} -E -e 's/BDB_VERSIONS="/&${BDB_LIB_NAME} db${BDB_VER} /' \ + ${CONFIGURE_WRKSRC}/${CONFIGURE_SCRIPT}.ac .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 -e 's|-xsltproc|@-true xsltproc|g' \ ${WRKSRC}/doc/Makefile .endif .include Index: head/mail/mutt/distinfo =================================================================== --- head/mail/mutt/distinfo (revision 440846) +++ head/mail/mutt/distinfo (revision 440847) @@ -1,17 +1,15 @@ -TIMESTAMP = 1492629436 +TIMESTAMP = 1494678618 SHA256 (mutt/mutt-1.8.2.tar.gz) = 1d057bf1b565f2c38ee50c9a661654cbbe4165f98e25bfa361ebbd707d96f235 SIZE (mutt/mutt-1.8.2.tar.gz) = 4118429 -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.8.2.vvv.nntp.gz) = 940cf7fd4fbea39f48bd5594180a7be5c3cc6714d62eeb3f2e5fbc0ab4b3545b +SIZE (mutt/patch-1.8.2.vvv.nntp.gz) = 60675 +SHA256 (mutt/patch-1.8.2.vvv.nntp_ru.gz) = c85a288ed6864c311cbc70b31bab9f0d0d1051846becb5e8fe737609fd939a9c +SIZE (mutt/patch-1.8.2.vvv.nntp_ru.gz) = 3465 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.8.2.vc.greeting) = 73113eb0a3eb761755315ab03c0b6bcb316c09603461a1f8a3f54bd870a576cc SIZE (mutt/mutt-1.8.2.vc.greeting) = 4499 -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 +SHA256 (mutt/patch-1.8.2.vvv.initials.gz) = e929c863dd012624b2ac724cd296f346374cd2522f256020fa458e94890ca750 +SIZE (mutt/patch-1.8.2.vvv.initials.gz) = 686 +SHA256 (mutt/patch-1.8.2.vvv.quote.gz) = 03b1aa4aa9152b968fc1709e68207073df62b9b1a5da43ff1d680d6dfe17fe35 +SIZE (mutt/patch-1.8.2.vvv.quote.gz) = 1282 Index: head/mail/mutt/files/extra-patch-pgp-dw =================================================================== --- head/mail/mutt/files/extra-patch-pgp-dw (revision 440846) +++ head/mail/mutt/files/extra-patch-pgp-dw (nonexistent) @@ -1,1039 +0,0 @@ ---- PATCHES Dec 2002 17:44:54 -0000 3.6 -+++ PATCHES Feb 2004 06:07:13 -0000 -@@ -0,0 +1,4 @@ -+patch-1.5.6.dw.multiple-crypt-hook.2 -+patch-1.5.6.dw.confirm-crypt-hook.1 -+patch-1.5.6.dw.crypt-autoselectkey.1 -+patch-1.5.6.dw.pgp-menu-traditional.2 ---- compose.c Oct 2003 20:34:59 -0000 3.14 -+++ compose.c Feb 2004 06:07:13 -0000 -@@ -133,2 +133,9 @@ static void redraw_crypt_lines (HEADER * - addstr (_("Clear")); -+ -+ if ((WithCrypto & APPLICATION_PGP)) -+ if ((msg->security & (ENCRYPT | SIGN))) -+ if ((msg->security & INLINE)) -+ addstr (_(" (inline)")); -+ else -+ addstr (_(" (PGP/MIME)")); - clrtoeol (); -@@ -158,2 +165,3 @@ static int pgp_send_menu (HEADER *msg, i - { -+ int use_autoinline = 0; - pgp_key_t p; -@@ -164,7 +172,10 @@ static int pgp_send_menu (HEADER *msg, i - -- switch (mutt_multi_choice (_("PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? "), -- N_("esabf"))) -+ if (!(msg->security & (SIGN | ENCRYPT))) -+ use_autoinline = 1; -+ -+ switch (mutt_multi_choice (_("PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? "), -+ N_("esabif"))) - { - case 1: /* (e)ncrypt */ -- msg->security |= ENCRYPT; -+ msg->security ^= ENCRYPT; - break; -@@ -172,3 +183,3 @@ static int pgp_send_menu (HEADER *msg, i - case 2: /* (s)ign */ -- msg->security |= SIGN; -+ msg->security ^= SIGN; - break; -@@ -199,6 +210,16 @@ static int pgp_send_menu (HEADER *msg, i - case 4: /* (b)oth */ -- msg->security = ENCRYPT | SIGN; -+ if ((msg->security & (ENCRYPT | SIGN)) == (ENCRYPT | SIGN)) -+ msg->security = 0; -+ else -+ msg->security |= (ENCRYPT | SIGN); - break; - -- case 5: /* (f)orget it */ -+ case 5: /* (i)nline */ -+ if ((msg->security & (ENCRYPT | SIGN))) -+ msg->security ^= INLINE; -+ else -+ msg->security &= ~INLINE; -+ break; -+ -+ case 6: /* (f)orget it */ - msg->security = 0; -@@ -207,6 +228,16 @@ static int pgp_send_menu (HEADER *msg, i - -- if (msg->security && msg->security != APPLICATION_PGP) -- msg->security |= APPLICATION_PGP; -- else -- msg->security = 0; -+ if (msg->security) -+ { -+ if (!(msg->security & (ENCRYPT | SIGN))) -+ { -+ msg->security = 0; -+ } -+ else -+ { -+ msg->security |= APPLICATION_PGP; -+ -+ if (use_autoinline && option (OPTPGPAUTOINLINE)) -+ msg->security |= INLINE; -+ } -+ } - ---- crypt.c Jan 2004 19:59:38 -0000 3.22 -+++ crypt.c Feb 2004 06:07:13 -0000 -@@ -161,3 +161,3 @@ int crypt_valid_passphrase(int flags) - --int mutt_protect (HEADER *msg, HEADER *cur, char *keylist) -+int mutt_protect (HEADER *msg, char *keylist) - { -@@ -166,3 +166,2 @@ int mutt_protect (HEADER *msg, HEADER *c - BODY *tmp_pgp_pbody = NULL; -- int traditional = 0; - int flags = (WithCrypto & APPLICATION_PGP)? msg->security: 0; -@@ -176,29 +175,9 @@ int mutt_protect (HEADER *msg, HEADER *c - -- if ((WithCrypto & APPLICATION_PGP) && (msg->security & APPLICATION_PGP)) -+ if ((WithCrypto & APPLICATION_PGP) && ((msg->security & PGPINLINE) == PGPINLINE)) - { -- if ((msg->content->type == TYPETEXT) && -- !ascii_strcasecmp (msg->content->subtype, "plain")) -- { -- if (cur && cur->security && option (OPTPGPAUTOTRAD) -- && (option (OPTCRYPTREPLYENCRYPT) -- || option (OPTCRYPTREPLYSIGN) -- || option (OPTCRYPTREPLYSIGNENCRYPTED))) -- { -- if(mutt_is_application_pgp(cur->content)) -- traditional = 1; -- } -- else -- { -- if ((i = query_quadoption (OPT_PGPTRADITIONAL, _("Create a traditional (inline) PGP message?"))) == -1) -- return -1; -- else if (i == M_YES) -- traditional = 1; -- } -- } -- if (traditional) -+ /* they really want to send it inline... go for it */ -+ if (!isendwin ()) mutt_endwin _("Invoking PGP..."); -+ pbody = crypt_pgp_traditional_encryptsign (msg->content, flags, keylist); -+ if (pbody) - { -- if (!isendwin ()) mutt_endwin _("Invoking PGP..."); -- if (!(pbody = crypt_pgp_traditional_encryptsign (msg->content, flags, keylist))) -- return -1; -- - msg->content = pbody; -@@ -206,2 +185,8 @@ int mutt_protect (HEADER *msg, HEADER *c - } -+ -+ /* otherwise inline won't work...ask for revert */ -+ if ((i = query_quadoption (OPT_PGPMIMEASK, _("Message can't be sent inline. Revert to using PGP/MIME?"))) != MUTT_YES) -+ return -1; -+ -+ /* go ahead with PGP/MIME */ - } -@@ -393,2 +378,5 @@ int mutt_is_application_pgp (BODY *m) - } -+ if (t) -+ t |= PGPINLINE; -+ - return t; ---- hook.c Jan 2004 09:52:55 -0000 3.8 -+++ hook.c Feb 2004 06:07:13 -0000 -@@ -119,3 +119,7 @@ int mutt_parse_hook (BUFFER *buf, BUFFER - { -+#ifdef MUTT_CRYPTHOOK -+ if (data & (MUTT_FOLDERHOOK | MUTT_SENDHOOK | MUTT_MESSAGEHOOK | MUTT_ACCOUNTHOOK | MUTT_REPLYHOOK | MUTT_CRYPTHOOK)) -+#else - if (data & (M_FOLDERHOOK | M_SENDHOOK | M_MESSAGEHOOK | M_ACCOUNTHOOK | M_REPLYHOOK)) -+#endif - { -@@ -445,5 +449,21 @@ char *mutt_iconv_hook (const char *chs) - --char *mutt_crypt_hook (ADDRESS *adr) -+LIST *mutt_crypt_hook (ADDRESS *adr) - { -- return _mutt_string_hook (adr->mailbox, M_CRYPTHOOK); -+ HOOK *hook; -+ LIST *key_list = NULL; -+ -+ if (!adr && !adr->mailbox) -+ return (NULL); -+ -+ for (hook = Hooks; hook; hook = hook->next) -+ { -+ if (!hook->command) -+ continue; -+ if (!(hook->type & MUTT_CRYPTHOOK)) -+ continue; -+ -+ if ((regexec (hook->rx.rx, adr->mailbox, 0, NULL, 0) == 0) ^ hook->rx.not) -+ key_list = mutt_add_list (key_list, hook->command); -+ } -+ return (key_list); - } ---- init.h Feb 2004 17:10:43 -0000 3.43 -+++ init.h Feb 2004 06:07:14 -0000 -@@ -1205,2 +1205,12 @@ struct option_t MuttVars[] = { - */ -+ -+ -+ { "pgp_autoselectkey", DT_SYN, R_NONE, UL "crypt_autoselectkey", 0 }, -+ { "crypt_autoselectkey", DT_BOOL, R_NONE, OPTCRYPTAUTOSELECT, 0 }, -+ /* -+ ** .pp -+ ** If set, then a list of keys is not presented for selection when only -+ ** one matching key is available. This may be useful in conjunction with -+ ** the \fIcrypt-hook\fP command. -+ */ - { "pgp_autosign", DT_SYN, R_NONE, UL "crypt_autosign", 0 }, -@@ -1230,2 +1240,11 @@ struct option_t MuttVars[] = { - */ -+ { "pgp_confirmhook", DT_SYN, R_NONE, UL "crypt_confirmhook", 1 }, -+ { "crypt_confirmhook", DT_BOOL, R_NONE, OPTCRYPTCONFIRMHOOK, 1 }, -+ /* -+ ** .pp -+ ** If set, then you will be prompted for confirmation of keys when using -+ ** the \fIcrypt-hook\fP command. If unset, no such confirmation prompt will -+ ** be presented. This is generally considered unsafe, especially where -+ ** typos are concerned. -+ */ - { "pgp_ignore_subkeys", DT_BOOL, R_NONE, OPTPGPIGNORESUB, 1}, -@@ -1374,2 +1393,44 @@ struct option_t MuttVars[] = { - */ -+ { "pgp_create_traditional", DT_SYN, R_NONE, UL "pgp_autoinline", 0 }, -+ { "pgp_autoinline", DT_BOOL, R_NONE, OPTPGPAUTOINLINE, 0 }, -+ /* -+ ** .pp -+ ** This option controls whether Mutt generates old-style inline -+ ** (traditional) PGP encrypted or signed messages under certain -+ ** circumstances. This can be overridden by use of the \fIpgp-menu\fP, -+ ** when inline is not required. -+ ** .pp -+ ** Note that Mutt might automatically use PGP/MIME for messages -+ ** which consist of more than a single MIME part. Mutt can be -+ ** configured to ask before sending PGP/MIME messages when inline -+ ** (traditional) would not work. -+ ** See also: ``$$pgp_mime_ask''. -+ ** .pp -+ ** Also note that using the old-style PGP message format is \fBstrongly\fP -+ ** \fBdeprecated\fP. -+ ** (PGP only) -+ */ -+ { "pgp_auto_traditional", DT_SYN, R_NONE, UL "pgp_replyinline", 0 }, -+ { "pgp_replyinline", DT_BOOL, R_NONE, OPTPGPREPLYINLINE, 0 }, -+ /* -+ ** .pp -+ ** Setting this variable will cause Mutt to always attempt to -+ ** create an inline (traditional) message when replying to a -+ ** message which is PGP encrypted/signed inline. This can be -+ ** overridden by use of the \fIpgp-menu\fP, when inline is not -+ ** required. This option does not automatically detect if the -+ ** (replied-to) message is inline; instead it relies on Mutt -+ ** internals for previously checked/flagged messages. -+ ** .pp -+ ** Note that Mutt might automatically use PGP/MIME for messages -+ ** which consist of more than a single MIME part. Mutt can be -+ ** configured to ask before sending PGP/MIME messages when inline -+ ** (traditional) would not work. -+ ** See also: ``$$pgp_mime_ask''. -+ ** .pp -+ ** Also note that using the old-style PGP message format is \fBstrongly\fP -+ ** \fBdeprecated\fP. -+ ** (PGP only) -+ ** -+ */ - { "pgp_show_unusable", DT_BOOL, R_NONE, OPTPGPSHOWUNUSABLE, 1 }, -@@ -1423,11 +1484,8 @@ struct option_t MuttVars[] = { - */ -- { "pgp_create_traditional", DT_QUAD, R_NONE, OPT_PGPTRADITIONAL, M_NO }, -+ { "pgp_mime_ask", DT_QUAD, R_NONE, OPT_PGPMIMEASK, MUTT_NO }, - /* - ** .pp -- ** This option controls whether Mutt generates old-style inline PGP -- ** encrypted or signed messages. -- ** .pp -- ** Note that PGP/MIME will be used automatically for messages which have -- ** a character set different from us-ascii, or which consist of more than -- ** a single MIME part. -+ ** This option controls whether Mutt will prompt you for -+ ** automatically sending a (signed/encrypted) message using -+ ** PGP/MIME when inline (traditional) fails (for any reason). - ** .pp -@@ -1435,19 +1493,2 @@ struct option_t MuttVars[] = { - ** \fBdeprecated\fP. -- ** (PGP only) -- */ -- { "pgp_auto_traditional", DT_BOOL, R_NONE, OPTPGPAUTOTRAD, 0 }, -- /* -- ** .pp -- ** This option causes Mutt to generate an old-style inline PGP -- ** encrypted or signed message when replying to an old-style -- ** message, and a PGP/MIME message when replying to a PGP/MIME -- ** message. Note that this option is only meaningful when using -- ** ``$$crypt_replyencrypt'', ``$$crypt_replysign'', or -- ** ``$$crypt_replysignencrypted''. -- ** .pp -- ** Also note that PGP/MIME will be used automatically for messages -- ** which have a character set different from us-ascii, or which -- ** consist of more than a single MIME part. -- ** .pp -- ** This option overrides ``$$pgp_create_traditional'' - ** (PGP only) ---- mutt.h Feb 2004 17:10:43 -0000 3.23 -+++ mutt.h Feb 2004 06:07:14 -0000 -@@ -278,3 +278,2 @@ enum - OPT_MOVE, -- OPT_PGPTRADITIONAL, /* create old-style PGP messages */ - #ifdef USE_POP -@@ -284,2 +283,3 @@ enum - OPT_POSTPONE, -+ OPT_PGPMIMEASK, /* ask to revert to PGP/MIME when inline fails */ - OPT_PRINT, -@@ -431,2 +431,3 @@ enum - -+ OPTCRYPTAUTOSELECT, - OPTCRYPTAUTOSIGN, -@@ -442,2 +443,3 @@ enum - OPTSDEFAULTDECRYPTKEY, -+ OPTCRYPTCONFIRMHOOK, - OPTPGPIGNORESUB, -@@ -445,3 +447,2 @@ enum - OPTPGPLONGIDS, -- OPTPGPAUTOTRAD, - #if 0 -@@ -453,2 +454,4 @@ enum - OPTPGPSHOWUNUSABLE, -+ OPTPGPAUTOINLINE, -+ OPTPGPREPLYINLINE, - -@@ -642,4 +645,4 @@ typedef struct header - { -- unsigned int security : 9; /* bit 0-6: flags, bit 7,8: application. -- see: crypt.h pgplib.h, smime.h */ -+ unsigned int security : 10; /* bit 0-7: flags, bit 8,9: application. -+ see: mutt_crypt.h */ - ---- mutt_crypt.h Dec 2003 13:04:20 -0000 3.5 -+++ mutt_crypt.h Feb 2004 06:07:14 -0000 -@@ -38,6 +38,7 @@ - #define SIGNOPAQUE (1 << 5) --/* (1 << 6) is used by PGPKEY below. */ -+#define KEYBLOCK (1 << 6) /* KEY too generic? */ -+#define INLINE (1 << 7) - --#define APPLICATION_PGP (1 << 7) --#define APPLICATION_SMIME (1 << 8) -+#define APPLICATION_PGP (1 << 8) -+#define APPLICATION_SMIME (1 << 9) - -@@ -46,3 +47,4 @@ - #define PGPGOODSIGN (APPLICATION_PGP | GOODSIGN) --#define PGPKEY (APPLICATION_PGP | (1 << 6)) -+#define PGPKEY (APPLICATION_PGP | KEYBLOCK) -+#define PGPINLINE (APPLICATION_PGP | INLINE) - -@@ -105,3 +107,3 @@ typedef struct pgp_keyinfo *pgp_key_t; - --int mutt_protect (HEADER *, HEADER *, char *); -+int mutt_protect (HEADER *, char *); - ---- pgp.c Sep 2003 13:03:26 -0000 3.26 -+++ pgp.c Feb 2004 06:07:14 -0000 -@@ -1018,2 +1018,4 @@ char *pgp_findKeys (ADDRESS *to, ADDRESS - size_t keylist_used = 0; -+ LIST *hook_list = NULL; -+ LIST *hook = NULL; - ADDRESS *tmp = NULL, *addr = NULL; -@@ -1051,66 +1053,93 @@ char *pgp_findKeys (ADDRESS *to, ADDRESS - q = p; -- k_info = NULL; - -- if ((keyID = mutt_crypt_hook (p)) != NULL) -+ /* -+ * grab the list of matching hooks (matching on recipient address) -+ * process each entry singly so that auto key selection still works -+ */ -+ hook_list = mutt_crypt_hook (p); -+ hook = hook_list; -+ while (1) - { - int r; -- snprintf (buf, sizeof (buf), _("Use keyID = \"%s\" for %s?"), keyID, p->mailbox); -- if ((r = mutt_yesorno (buf, M_YES)) == M_YES) -+ -+ k_info = NULL; -+ key = NULL; -+ -+ if (hook) - { -- if (is_numerical_keyid (keyID)) -+ keyID = (char *)hook->data; -+ snprintf (buf, sizeof (buf), _("Use keyID = \"%s\" for %s?"), keyID, p->mailbox); -+ if (!option(OPTCRYPTCONFIRMHOOK) || (r = mutt_yesorno (buf, MUTT_YES)) == MUTT_YES) - { -- if (strncmp (keyID, "0x", 2) == 0) -- keyID += 2; -- goto bypass_selection; /* you don't see this. */ -+ if (is_numerical_keyid (keyID)) -+ { -+ if (strncmp (keyID, "0x", 2) == 0) -+ keyID += 2; -+ goto bypass_selection; /* you don't see this. */ -+ } -+ -+ /* check for e-mail address */ -+ if ((t = strchr (keyID, '@')) && -+ (addr = rfc822_parse_adrlist (NULL, keyID))) -+ { -+ if (fqdn) rfc822_qualify (addr, fqdn); -+ q = addr; -+ } -+ else -+ k_info = pgp_getkeybystr (keyID, KEYFLAG_CANENCRYPT, PGP_PUBRING); - } -- -- /* check for e-mail address */ -- if ((t = strchr (keyID, '@')) && -- (addr = rfc822_parse_adrlist (NULL, keyID))) -+ else if (r == -1) - { -- if (fqdn) rfc822_qualify (addr, fqdn); -- q = addr; -+ /* -+ * yes, this implies that if one key fails they all do -+ */ -+ FREE (&keylist); -+ rfc822_free_address (&tmp); -+ rfc822_free_address (&addr); -+ mutt_free_list (&hook_list); -+ return NULL; - } -- else -- k_info = pgp_getkeybystr (keyID, KEYFLAG_CANENCRYPT, PGP_PUBRING); - } -- else if (r == -1) -- { -- FREE (&keylist); -- rfc822_free_address (&tmp); -- rfc822_free_address (&addr); -- return NULL; -- } -- } - -- if (k_info == NULL) -- pgp_invoke_getkeys (q); -- -- if (k_info == NULL && (k_info = pgp_getkeybyaddr (q, KEYFLAG_CANENCRYPT, PGP_PUBRING)) == NULL) -- { -- snprintf (buf, sizeof (buf), _("Enter keyID for %s: "), q->mailbox); -+ if (k_info == NULL) -+ pgp_invoke_getkeys (q); - -- if ((key = pgp_ask_for_key (buf, q->mailbox, -- KEYFLAG_CANENCRYPT, PGP_PUBRING)) == NULL) -+ if (k_info == NULL && (k_info = pgp_getkeybyaddr (q, KEYFLAG_CANENCRYPT, PGP_PUBRING)) == NULL) - { -- FREE (&keylist); -- rfc822_free_address (&tmp); -- rfc822_free_address (&addr); -- return NULL; -+ snprintf (buf, sizeof (buf), _("Enter keyID for %s: "), q->mailbox); -+ -+ if ((key = pgp_ask_for_key (buf, q->mailbox, -+ KEYFLAG_CANENCRYPT, PGP_PUBRING)) == NULL) -+ { -+ FREE (&keylist); -+ rfc822_free_address (&tmp); -+ rfc822_free_address (&addr); -+ mutt_free_list (&hook_list); -+ return NULL; -+ } - } -- } -- else -- key = k_info; -+ else -+ key = k_info; - -- keyID = pgp_keyid (key); -+ keyID = pgp_keyid (key); - - bypass_selection: -- keylist_size += mutt_strlen (keyID) + 4; -- safe_realloc (&keylist, keylist_size); -- sprintf (keylist + keylist_used, "%s0x%s", keylist_used ? " " : "", /* __SPRINTF_CHECKED__ */ -- keyID); -- keylist_used = mutt_strlen (keylist); -+ keylist_size += mutt_strlen (keyID) + 4; -+ safe_realloc (&keylist, keylist_size); -+ sprintf (keylist + keylist_used, "%s0x%s", keylist_used ? " " : "", /* __SPRINTF_CHECKED__ */ -+ keyID); -+ keylist_used = mutt_strlen (keylist); - -- pgp_free_key (&key); -- rfc822_free_address (&addr); -+ pgp_free_key (&key); -+ rfc822_free_address (&addr); -+ -+ if (!hook_list) -+ break; -+ -+ hook = hook->next; -+ if (!hook) -+ break; -+ -+ } -+ mutt_free_list (&hook_list); - ---- pgpkey.c Oct 2003 19:55:39 -0000 3.8 -+++ pgpkey.c Feb 2004 06:07:14 -0000 -@@ -437,4 +437,9 @@ static int pgp_id_matches_addr (ADDRESS - -+ -+#define pgp_trusted_id(uid) (!option(OPTPGPCHECKTRUST) \ -+ || (pgp_id_is_valid((uid)) \ -+ && pgp_id_is_strong((uid)))) -+ - static pgp_key_t pgp_select_key (pgp_key_t keys, -- ADDRESS * p, const char *s) -+ ADDRESS * p, const char *s) - { -@@ -452,2 +457,3 @@ static pgp_key_t pgp_select_key (pgp_key - -+ int keymatch = 0; /* count matching keys */ - int unusable = 0; -@@ -481,2 +487,3 @@ static pgp_key_t pgp_select_key (pgp_key - } -+ keymatch++; - } -@@ -489,2 +496,17 @@ static pgp_key_t pgp_select_key (pgp_key - } -+ else if (keymatch == 1 && option(OPTCRYPTAUTOSELECT)) -+ { -+ /* -+ * Only one matching key...see if there's an id with enough trust to auto-select -+ */ -+ kp = KeyTable[0]->parent; -+ for (a = kp->address; a; a = a->next) -+ { -+ if (pgp_trusted_id(a)) -+ { -+ safe_free ((void **) &KeyTable); -+ return (kp); -+ } -+ } -+ } - -@@ -599,5 +621,3 @@ static pgp_key_t pgp_select_key (pgp_key - -- if (option (OPTPGPCHECKTRUST) && -- (!pgp_id_is_valid (KeyTable[menu->current]) -- || !pgp_id_is_strong (KeyTable[menu->current]))) -+ if (!pgp_trusted_id(KeyTable[menu->current])) - { ---- postpone.c Sep 2003 17:22:09 -0000 3.9 -+++ postpone.c Feb 2004 06:07:14 -0000 -@@ -486,2 +486,7 @@ int mutt_parse_crypt_hdr (char *p, int s - -+ case 'i': -+ case 'I': -+ pgp |= INLINE; -+ break; -+ - default: ---- protos.h Feb 2004 17:10:43 -0000 3.19 -+++ protos.h Feb 2004 06:07:14 -0000 -@@ -131,3 +131,3 @@ const char *mutt_get_name (ADDRESS *); - char *mutt_get_parameter (const char *, PARAMETER *); --char *mutt_crypt_hook (ADDRESS *); -+LIST *mutt_crypt_hook (ADDRESS *); - char *mutt_make_date (char *, size_t); ---- send.c Jan 2004 10:03:46 -0000 3.29 -+++ send.c Feb 2004 06:07:14 -0000 -@@ -1258,2 +1258,9 @@ ci_send_message (int flags, /* send mod - msg->security |= SIGN; -+ if ((WithCrypto & APPLICATION_PGP) && (msg->security & (ENCRYPT | SIGN))) -+ { -+ if (option (OPTPGPAUTOINLINE)) -+ msg->security |= INLINE; -+ if (option (OPTPGPREPLYINLINE) && cur && (cur->security & INLINE)) -+ msg->security |= INLINE; -+ } - } -@@ -1496,3 +1503,3 @@ main_loop: - if ((crypt_get_keys (msg, &pgpkeylist) == -1) || -- mutt_protect (msg, cur, pgpkeylist) == -1) -+ mutt_protect (msg, pgpkeylist) == -1) - { -@@ -1576,3 +1583,3 @@ main_loop: - -- if (mutt_protect (msg, cur, pgpkeylist) == -1) -+ if (mutt_protect (msg, pgpkeylist) == -1) - { ---- sendlib.c Sep 2003 13:03:26 -0000 3.24 -+++ sendlib.c Feb 2004 06:07:14 -0000 -@@ -2407,2 +2407,4 @@ int mutt_write_fcc (const char *path, HE - } -+ if (hdr->security & INLINE) -+ fputc ('I', msg->fp); - fputc ('\n', msg->fp); ---- doc/manual.sgml.head Feb 2004 17:45:33 -0000 3.26 -+++ doc/manual.sgml.head Feb 2004 06:07:15 -0000 -@@ -1450,3 +1450,5 @@ normally use. The crypt-hook command pr - specify the ID of the public key to be used when encrypting messages to --a certain recipient. -+a certain recipient. You may use multiple pgp-hook's with the same -+pattern; multiple matching pgp-hook's result in the use of multiple -+keyids for recipient. - ---- doc/muttrc.man.head Feb 2004 17:10:43 -0000 3.10 -+++ doc/muttrc.man.head Feb 2004 06:07:15 -0000 -@@ -297,3 +297,6 @@ to a certain recipient. The meaning of - broadly: This can be a different e-mail address, a numerical key ID, --or even just an arbitrary search string. -+or even just an arbitrary search string. You may use multiple -+\fBpgp-hook\fPs with the same \fIpattern\fP; multiple matching -+\fBpgp-hook\fPs result in the use of multiple \fIkey-id\fPs for -+recipient. - .TP ---- po/ca.po Feb 2004 18:26:11 -0000 3.13 -+++ po/ca.po Feb 2004 06:07:15 -0000 -@@ -603,10 +603,10 @@ msgstr "Xifra amb: " - #: compose.c:165 --msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " --msgstr "PGP: (x)ifra, (s)igna, si(g)na com a, (a)mbds, o en (c)lar? " -+msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " -+msgstr "PGP: (x)ifra, (s)igna, s(i)gna com a, (a)mbds, en (l)nia, o en (c)lar? " - - # ivb (2003/03/26) --# ivb (x)ifra, (s)igna, si(g)na com a, (a)mbds, (c)lar -+# ivb (x)ifra, (s)igna, s(i)gna com a, (a)mbds, en (l)nia, o en (c)lar - #: compose.c:166 --msgid "esabf" --msgstr "xsgac" -+msgid "esabif" -+msgstr "xsialc" - ---- po/cs.po Feb 2004 18:26:11 -0000 3.12 -+++ po/cs.po Feb 2004 06:07:16 -0000 -@@ -683,4 +683,4 @@ msgstr "Zaifrovat pomoc:" - #: compose.c:165 --msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " --msgstr "PGP - ()ifrovat, (p)odepsat, podepsat (j)ako, (o)boj, i (n)ic?" -+msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " -+msgstr "PGP - ()ifrovat, (p)odepsat, podepsat (j)ako, (o)boj, p(m), i (n)ic?" - -@@ -688,4 +688,4 @@ msgstr "PGP - ()ifrovat, (p)odepsat, po - #: compose.c:166 --msgid "esabf" --msgstr "pjon" -+msgid "esabif" -+msgstr "pjomn" - ---- po/da.po Feb 2004 18:26:11 -0000 3.11 -+++ po/da.po Feb 2004 06:07:16 -0000 -@@ -578,8 +578,8 @@ msgstr "Kryptr" - #, fuzzy --msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " --msgstr "(k)ryptr, (u)nderskriv, underskriv (s)om, (b)egge, (i)ngen PGP" -+msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " -+msgstr "(k)ryptr, (u)nderskriv, underskriv (s)om, (b)egge, i(n)tegreret, (i)ngen PGP" - - #: compose.c:166 --msgid "esabf" --msgstr "kusbi" -+msgid "esabif" -+msgstr "kusbni" - ---- po/de.po Feb 2004 18:26:11 -0000 3.15 -+++ po/de.po Feb 2004 06:07:16 -0000 -@@ -569,8 +569,8 @@ msgstr "Verschlsseln mit: " - #: compose.c:165 --msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " --msgstr "PGP (v)erschl., (s)ign., sign. (a)ls, (b)eides, (k)ein PGP? " -+msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " -+msgstr "PGP (v)erschl., (s)ign., sign. (a)ls, (b)eides, (i)nline, (k)ein PGP? " - - #: compose.c:166 --msgid "esabf" --msgstr "vsabk" -+msgid "esabif" -+msgstr "vsabik" - ---- po/el.po Feb 2004 18:26:11 -0000 3.12 -+++ po/el.po Feb 2004 06:07:17 -0000 -@@ -700,4 +700,4 @@ msgstr " : " - #: compose.c:165 --msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " --msgstr "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (f)orget it? " -+msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " -+msgstr "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i), (f)orget it? " - -@@ -706,4 +706,4 @@ msgstr "PGP (e)ncrypt, (s)ign, sign (a)s - #: compose.c:166 --msgid "esabf" --msgstr "esabf" -+msgid "esabif" -+msgstr "esabif" - ---- po/eo.po Feb 2004 18:26:11 -0000 3.13 -+++ po/eo.po Feb 2004 06:07:17 -0000 -@@ -571,8 +571,8 @@ msgstr "ifri per: " - #: compose.c:165 --msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " --msgstr "PGP (i)fri, (s)ubskribi, subskribi (k)iel, (a)mba, a (f)orgesi? " -+msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " -+msgstr "PGP (i)fri, (s)ubskribi, subskribi (k)iel, (a)mba, \"i(n)line\", a (f)orgesi? " - - #: compose.c:166 --msgid "esabf" --msgstr "iskaf" -+msgid "esabif" -+msgstr "iskanf" - ---- po/es.po Feb 2004 18:26:11 -0000 3.14 -+++ po/es.po Feb 2004 06:07:17 -0000 -@@ -576,4 +576,4 @@ msgstr "Cifrar" - #, fuzzy --msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " --msgstr "co(d)ificar, f(i)rmar (c)omo, amb(o)s o ca(n)celar? " -+msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " -+msgstr "co(d)ificar, f(i)rmar (c)omo, amb(o)s, inc(l)uido, o ca(n)celar? " - -@@ -581,4 +581,4 @@ msgstr "co(d)ificar, f(i)rmar (c)omo, a - #, fuzzy --msgid "esabf" --msgstr "dicon" -+msgid "esabif" -+msgstr "dicoln" - ---- po/et.po Feb 2004 18:26:11 -0000 3.13 -+++ po/et.po Feb 2004 06:07:18 -0000 -@@ -571,8 +571,8 @@ msgstr "Krpti kasutades: " - #: compose.c:165 --msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " --msgstr "PGP (k)rpti, (a)llkiri, allk. ku(i), (m)lemad vi (u)nusta? " -+msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " -+msgstr "PGP (k)rpti, (a)llkiri, allk. ku(i), (m)lemad, k(e)hasse, vi (u)nusta? " - - #: compose.c:166 --msgid "esabf" --msgstr "kaimu" -+msgid "esabif" -+msgstr "kaimeu" - ---- po/fr.po Feb 2004 18:26:11 -0000 3.23 -+++ po/fr.po Feb 2004 06:07:18 -0000 -@@ -596,8 +596,8 @@ msgstr "Chiffrer avec : " - #: compose.c:165 --msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " --msgstr "(c)hiffrer PGP, (s)igner, (e)n tant que, les (d)eux, ou (o)ublier ? " -+msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " -+msgstr "(c)hiffrer PGP, (s)igner, (e)n tant que, les (d)eux, en (l)igne, ou (o)ublier ? " - - #: compose.c:166 --msgid "esabf" --msgstr "csedo" -+msgid "esabif" -+msgstr "csedlo" - ---- po/gl.po Feb 2004 18:26:11 -0000 3.11 -+++ po/gl.po Feb 2004 06:07:18 -0000 -@@ -580,8 +580,8 @@ msgstr "Encriptar" - #, fuzzy --msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " --msgstr "(e)ncriptar, (f)irmar, firmar (c)omo, (a)mbas ou (o)lvidar? " -+msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " -+msgstr "(e)ncriptar, (f)irmar, firmar (c)omo, (a)mbas, (i)nterior, ou (o)lvidar? " - - #: compose.c:166 --msgid "esabf" --msgstr "efcao" -+msgid "esabif" -+msgstr "efcaio" - ---- po/hu.po Feb 2004 18:26:11 -0000 3.12 -+++ po/hu.po Feb 2004 06:07:19 -0000 -@@ -571,8 +571,8 @@ msgstr "Titkosts: " - #: compose.c:165 --msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " --msgstr "PGP (t)itkost, (a)lr, alr (m)int, titkost (s) alr, m(g)se? " -+msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " -+msgstr "PGP (t)itkost, (a)lr, alr (m)int, titkost (s) alr, (b)egyazott, m(g)se? " - - #: compose.c:166 --msgid "esabf" --msgstr "tamsg" -+msgid "esabif" -+msgstr "tamsbg" - ---- po/id.po Feb 2004 18:26:12 -0000 3.14 -+++ po/id.po Feb 2004 06:07:19 -0000 -@@ -572,8 +572,8 @@ msgstr "Enkrip dengan: " - #: compose.c:165 --msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " --msgstr "PGP (e)nkrip, (t)andatangan, tandatangan (s)bg, ke(d)uanya, (b)atal? " -+msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " -+msgstr "PGP (e)nkrip, (t)andatangan, tandatangan (s)bg, ke(d)uanya, (i)nline, (b)atal? " - - #: compose.c:166 --msgid "esabf" --msgstr "etsdb" -+msgid "esabif" -+msgstr "etsdib" - ---- po/it.po Feb 2004 18:26:12 -0000 3.11 -+++ po/it.po Feb 2004 06:07:19 -0000 -@@ -582,8 +582,8 @@ msgstr "Crittografa" - #, fuzzy --msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " --msgstr "cifra(e), firma(s), firma come(a), entrambi(b), annulla(f) " -+msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " -+msgstr "cifra(e), firma(s), firma come(a), entrambi(b), in l(i)nea , annulla(f) " - - #: compose.c:166 --msgid "esabf" --msgstr "esabf" -+msgid "esabif" -+msgstr "esabif" - ---- po/ja.po Feb 2004 18:26:12 -0000 3.21 -+++ po/ja.po Feb 2004 06:07:20 -0000 -@@ -569,8 +569,8 @@ msgstr " Ź沽: " - #: compose.c:165 --msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " --msgstr "PGP (e)Ź沽,(s)̾,(a)..Ȥƽ̾,(b)ξ,(f)?" -+msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " -+msgstr "PGP (e)Ź沽,(s)̾,(a)..Ȥƽ̾,(b)ξ,(i)nline,(f)?" - - #: compose.c:166 --msgid "esabf" --msgstr "esabf" -+msgid "esabif" -+msgstr "esabif" - ---- po/ko.po Feb 2004 18:26:12 -0000 3.15 -+++ po/ko.po Feb 2004 06:07:20 -0000 -@@ -570,8 +570,8 @@ msgstr "ȣȭ : " - #: compose.c:165 --msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " --msgstr "PGP ȣȭ(e), (s), (a), (b), (f)? " -+msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " -+msgstr "PGP ȣȭ(e), (s), (a), (b), (i)nline, (f)? " - - #: compose.c:166 --msgid "esabf" --msgstr "esabf" -+msgid "esabif" -+msgstr "esabif" - ---- po/lt.po Feb 2004 18:26:12 -0000 3.11 -+++ po/lt.po Feb 2004 06:07:20 -0000 -@@ -578,5 +578,5 @@ msgstr "Uifruoti" - #, fuzzy --msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " -+msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " - msgstr "" --"(u)ifruot, pa(s)irayt, pasirayt k(a)ip, a(b)u, rinktis (m)ic algoritm, " -+"(u)ifruot, pa(s)irayt, pasirayt k(a)ip, a(b)u, (l)aike, " - "ar (p)amirti?" -@@ -585,4 +585,4 @@ msgstr "" - #, fuzzy --msgid "esabf" --msgstr "usabmp" -+msgid "esabif" -+msgstr "usablp" - -@@ -598,4 +598,3 @@ msgid "" - msgstr "" --"(u)ifruot, pa(s)irayt, pasirayt k(a)ip, a(b)u, rinktis (m)ic algoritm, " --"ar (p)amirti?" -+"(u)ifruot, pa(s)irayt, uifruo(t) su, pasirayt k(a)ip, a(b)u, ar (p)amirti?" - -@@ -604,3 +603,3 @@ msgstr "" - msgid "eswabf" --msgstr "usabmp" -+msgstr "ustabp" - ---- po/nl.po Feb 2004 18:26:12 -0000 3.16 -+++ po/nl.po Feb 2004 06:07:21 -0000 -@@ -568,8 +568,8 @@ msgstr "Versleutelen met: " - #: compose.c:165 --msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " --msgstr "PGP (v)ersleutel, (o)ndertekenen, ondert. (a)ls, (b)eiden, (g)een? " -+msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " -+msgstr "PGP (v)ersleutel, (o)ndertekenen, ondert. (a)ls, (b)eiden, ber(i)cht, (g)een? " - - #: compose.c:166 --msgid "esabf" --msgstr "voabg" -+msgid "esabif" -+msgstr "voabig" - ---- po/pl.po Feb 2004 18:26:12 -0000 3.17 -+++ po/pl.po Feb 2004 06:07:21 -0000 -@@ -571,8 +571,8 @@ msgstr "Zaszyfruj uywajc: " - #: compose.c:165 --msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " --msgstr "PGP: (z)aszyfruj, podpi(s)z, podpisz j(a)ko, o(b)a, b(e)z PGP? " -+msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " -+msgstr "PGP: (z)aszyfruj, podpi(s)z, podpisz j(a)ko, o(b)a, (i)nline, b(e)z PGP? " - - #: compose.c:166 --msgid "esabf" --msgstr "zsabe" -+msgid "esabif" -+msgstr "zsabie" - ---- po/pt_BR.po Feb 2004 18:26:13 -0000 3.12 -+++ po/pt_BR.po Feb 2004 06:07:21 -0000 -@@ -581,5 +581,5 @@ msgstr "Encriptar" - #, fuzzy --msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " -+msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " - msgstr "" --"(e)ncripa, a(s)sina, assina (c)omo, (a)mbos, escolhe (m)ic, ou es(q)uece? " -+"(e)ncripa, a(s)sina, assina (c)omo, (a)mbos, em l(i)nha, ou es(q)uece? " - -@@ -587,4 +587,4 @@ msgstr "" - #, fuzzy --msgid "esabf" --msgstr "escamq" -+msgid "esabif" -+msgstr "escaiq" - -@@ -600,3 +600,3 @@ msgid "" - msgstr "" --"(e)ncripa, a(s)sina, assina (c)omo, (a)mbos, escolhe (m)ic, ou es(q)uece? " -+"(e)ncripa, a(s)sina, e(n)cripa com, assina (c)omo, (a)mbos, ou es(q)uece? " - -@@ -605,3 +605,3 @@ msgstr "" - msgid "eswabf" --msgstr "escamq" -+msgstr "esncaq" - ---- po/ru.po Feb 2004 18:26:13 -0000 3.19 -+++ po/ru.po Feb 2004 06:07:22 -0000 -@@ -577,8 +577,8 @@ msgstr ": " - #: compose.c:165 --msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " --msgstr "PGP (e), (s), (a) , (b), (f)? " -+msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " -+msgstr "PGP (e), (s), (a) , (b), (i)nline, (f)? " - - #: compose.c:166 --msgid "esabf" --msgstr "esabf" -+msgid "esabif" -+msgstr "esabif" - ---- po/sk.po Feb 2004 18:26:13 -0000 3.11 -+++ po/sk.po Feb 2004 06:07:22 -0000 -@@ -586,5 +586,5 @@ msgstr "Zaifruj" - #, fuzzy --msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " -+msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " - msgstr "" --"(e)-ifr, (s)-podp, podp (a)ko, o(b)e, ozna alg. mi(c), alebo (f)-zabudn " -+"(e)-ifr, (s)-podp, podp (a)ko, o(b)e, (i)nline, alebo (f)-zabudn " - "na to? " -@@ -593,4 +593,4 @@ msgstr "" - #, fuzzy --msgid "esabf" --msgstr "esabmf" -+msgid "esabif" -+msgstr "esabif" - -@@ -606,4 +606,3 @@ msgid "" - msgstr "" --"(e)-ifr, (s)-podp, podp (a)ko, o(b)e, ozna alg. mi(c), alebo (f)-zabudn " --"na to? " -+"(e)-ifr, (s)-podp, (w)-ifr s, podp (a)ko, o(b)e, alebo (f)-zabudn na to? " - -@@ -612,3 +611,3 @@ msgstr "" - msgid "eswabf" --msgstr "esabmf" -+msgstr "eswabf" - ---- po/sv.po Feb 2004 18:26:13 -0000 3.12 -+++ po/sv.po Feb 2004 06:07:22 -0000 -@@ -568,8 +568,8 @@ msgstr "Kryptera med: " - #: compose.c:165 --msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " --msgstr "PGP: (k)ryptera, (s)ignera, signera s(o)m, (b)da, eller sk(i)ppa det?" -+msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " -+msgstr "PGP: (k)ryptera, (s)ignera, signera s(o)m, (b)da, i(n)fogat, eller sk(i)ppa det?" - - #: compose.c:166 --msgid "esabf" --msgstr "ksobi" -+msgid "esabif" -+msgstr "ksobni" - ---- po/tr.po Feb 2004 18:26:13 -0000 3.11 -+++ po/tr.po Feb 2004 06:07:22 -0000 -@@ -577,5 +577,5 @@ msgstr "ifrele" - #, fuzzy --msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " -+msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " - msgstr "" --"(i)frele, i(m)zala, (f)arkl imzala, i(k)isi de, mi(c) algoritmini se " -+"(i)frele, i(m)zala, (f)arkl imzala, i(k)isi de, (i)nline, " - "yoksa i(p)talm? " -@@ -583,4 +583,4 @@ msgstr "" - #: compose.c:166 --msgid "esabf" --msgstr "imfkcp" -+msgid "esabif" -+msgstr "imfkip" - ---- po/uk.po Feb 2004 18:26:13 -0000 3.12 -+++ po/uk.po Feb 2004 06:07:23 -0000 -@@ -572,8 +572,8 @@ msgstr "" - #, fuzzy --msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " --msgstr ".(e), Ц.(s), Ц. (a), (b) צͦ(f)? " -+msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " -+msgstr ".(e), Ц.(s), Ц. (a), (b), (i)nline צͦ(f)? " - - #: compose.c:166 --msgid "esabf" --msgstr "" -+msgid "esabif" -+msgstr "esabif" - ---- po/zh_CN.po Feb 2004 18:26:13 -0000 3.11 -+++ po/zh_CN.po Feb 2004 06:07:23 -0000 -@@ -585,5 +585,5 @@ msgstr "" - #, fuzzy --msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " -+msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " - msgstr "" --"(e), (s)ǩ, (a)ñǩ, (b)߽Ҫ, ѡ (m)ic 㷨 (f)" -+"(e), (s)ǩ, (a)ñǩ, (b)߽Ҫ, (i)nline, (f)" - "" -@@ -591,4 +591,4 @@ msgstr "" - #: compose.c:166 --msgid "esabf" --msgstr "" -+msgid "esabif" -+msgstr "esabif" - ---- po/zh_TW.po Feb 2004 18:26:13 -0000 3.11 -+++ po/zh_TW.po Feb 2004 06:07:24 -0000 -@@ -577,3 +577,3 @@ msgstr "加密" - #, fuzzy --msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, or (f)orget it? " -+msgid "PGP (e)ncrypt, (s)ign, sign (a)s, (b)oth, (i)nline, or (f)orget it? " - msgstr "(1)加密, (2)簽名, (3)用別的身份簽, (4)兩者皆要, 或 (5)放棄?" -@@ -581,4 +581,4 @@ msgstr "(1)加密, (2)簽名, (3)用別 - #: compose.c:166 --msgid "esabf" --msgstr "12345" -+msgid "esabif" -+msgstr "1234i5" - Property changes on: head/mail/mutt/files/extra-patch-pgp-dw ___________________________________________________________________ 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-doc-ref =================================================================== --- head/mail/mutt/files/extra-patch-doc-ref (revision 440846) +++ head/mail/mutt/files/extra-patch-doc-ref (revision 440847) @@ -1,12 +1,12 @@ --- doc/mutt.man.orig 2009-02-06 13:52:38.000000000 +0100 +++ doc/mutt.man 2009-02-06 13:55:05.000000000 +0100 -@@ -69,7 +69,8 @@ +@@ -67,7 +67,8 @@ .PP Mutt is a small but very powerful text based program for reading and sending electronic mail under unix operating systems, including support for color terminals, MIME, -OpenPGP, and a threaded sorting mode. +OpenPGP, and a threaded sorting mode. Details of how to use all of this is +available in @docdir@. .PP .I Note: .IR Index: head/mail/mutt/files/patch-dgc-deepif =================================================================== --- head/mail/mutt/files/patch-dgc-deepif (nonexistent) +++ head/mail/mutt/files/patch-dgc-deepif (revision 440847) @@ -0,0 +1,30 @@ +--- muttlib.c.orig 2017-04-19 01:05:29 UTC ++++ muttlib.c +@@ -1369,6 +1369,12 @@ + count = 0; + while (count < sizeof (ifstring) && *src && *src != '?' && *src != '&') + { ++ if (*src == '\\') ++ { ++ src++; ++ if (!*src) ++ break; ++ } + *cp++ = *src++; + count++; + } +@@ -1381,7 +1387,13 @@ + count = 0; + while (count < sizeof (elsestring) && *src && *src != '?') + { +- *cp++ = *src++; ++ if (*src == '\\') ++ { ++ src++; ++ if (!*src) ++ break; ++ } ++ *cp++ = *src++; + count++; + } + *cp = 0; Property changes on: head/mail/mutt/files/patch-dgc-deepif ___________________________________________________________________ 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-doc_Muttrc =================================================================== --- head/mail/mutt/files/patch-doc_Muttrc (revision 440846) +++ head/mail/mutt/files/patch-doc_Muttrc (revision 440847) @@ -1,10 +1,10 @@ --- doc/Muttrc.orig 2016-10-08 19:48:13 UTC +++ doc/Muttrc -@@ -626,6 +626,7 @@ attachments -I message/external-body +@@ -649,6 +649,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 440846) +++ head/mail/mutt/files/patch-muttlib.c (revision 440847) @@ -1,25 +1,25 @@ --- muttlib.c.orig 2016-10-08 19:35:50 UTC +++ muttlib.c -@@ -779,16 +779,15 @@ void mutt_merge_envelopes(ENVELOPE* base +@@ -802,16 +802,15 @@ void mutt_merge_envelopes(ENVELOPE* base 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)); + 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)); - 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) Index: head/mail/mutt/files/patch-smime-self =================================================================== --- head/mail/mutt/files/patch-smime-self (revision 440846) +++ head/mail/mutt/files/patch-smime-self (revision 440847) @@ -1,63 +1,63 @@ --- contrib/smime.rc.orig 2016-10-08 19:30:21 UTC +++ contrib/smime.rc @@ -23,8 +23,12 @@ set crypt_verify_sig = yes # The (default) keyfile for signing/decrypting. Uncomment the following # line and replace the keyid with your own. -set smime_default_key="12345678.0" +# set smime_default_key="12345678.0" +# Uncomment the following line in addition to the one above, if you want that +# all encrypted messages are also encrypted with your default key. +# set smime_encrypt_self = yes + # Uncomment to make mutt ask what key to use when trying to decrypt a message. # It will use the default key above (if that was set) else. # unset smime_decrypt_use_default_key --- crypt.c.orig 2016-10-08 19:35:50 UTC +++ crypt.c -@@ -231,8 +231,18 @@ int mutt_protect (HEADER *msg, char *key +@@ -229,8 +229,18 @@ int mutt_protect (HEADER *msg, char *key if ((WithCrypto & APPLICATION_SMIME) && (msg->security & APPLICATION_SMIME)) { - if (!(tmp_pbody = crypt_smime_build_smime_entity (tmp_smime_pbody, - keylist))) + char *new_keylist = keylist; + + if (SmimeDefaultKey && query_quadoption(OPT_SMIMEENCRYPTSELF, _("Encrypt message to S/MIME Default Key also?")) == MUTT_YES) + { + int size = mutt_strlen(keylist) + mutt_strlen (SmimeDefaultKey) + 2; /* +1 for NULL, +1 for \n */ + new_keylist = safe_malloc(size); + snprintf(new_keylist, size, "%s%s\n", keylist, SmimeDefaultKey); + } + + tmp_pbody = crypt_smime_build_smime_entity (tmp_smime_pbody, new_keylist); + safe_free((void **)&new_keylist); + if (!tmp_pbody) { /* signed ? free it! */ return (-1); --- init.h.orig 2016-10-08 19:35:50 UTC +++ init.h -@@ -2971,6 +2971,11 @@ struct option_t MuttVars[] = { +@@ -2997,6 +2997,11 @@ struct option_t MuttVars[] = { ** possible \fCprintf(3)\fP-like sequences. ** (S/MIME only) */ + { "smime_encrypt_self", DT_QUAD, R_NONE, OPT_SMIMEENCRYPTSELF, 1 }, + /* + ** .pp + ** Encrypt the message to smime_default_key too. + */ { "smime_encrypt_with", DT_STR, R_NONE, UL &SmimeCryptAlg, UL "aes256" }, /* ** .pp --- mutt.h.orig 2016-10-08 19:30:21 UTC +++ mutt.h -@@ -263,6 +263,7 @@ enum +@@ -274,6 +274,7 @@ enum OPT_FORWEDIT, OPT_FCCATTACH, OPT_INCLUDE, + OPT_SMIMEENCRYPTSELF, OPT_MFUPTO, OPT_MIMEFWD, OPT_MIMEFWDREST,