1
0
forked from pool/mutt
Dr. Werner Fink 2017-04-28 14:47:43 +00:00 committed by Git OBS Bridge
parent e98f0d53a6
commit 5f1e94b174
19 changed files with 512 additions and 762 deletions

View File

@ -1,37 +0,0 @@
Use professionel VLINE
---
sidebar.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
--- sidebar.c
+++ sidebar.c 2016-09-13 10:03:50.282864137 +0000
@@ -579,6 +579,7 @@ static int draw_divider (int first_row,
{
/* Calculate the width of the delimiter in screen cells */
int delim_len = mutt_strwidth (SidebarDividerChar);
+ int altchar = 0;
if (delim_len < 1)
return delim_len;
@@ -589,13 +590,19 @@ static int draw_divider (int first_row,
if (delim_len > SidebarWidth)
return -1;
+ if (delim_len == 1 && strcmp(SidebarDividerChar, "|") == 0)
+ altchar++;
+
SETCOLOR(MT_COLOR_DIVIDER);
int i;
for (i = 0; i < num_rows; i++)
{
move (first_row + i, SidebarWidth - delim_len);
- addstr (NONULL(SidebarDividerChar));
+ if (altchar)
+ addch (ACS_VLINE);
+ else
+ addstr (NONULL(SidebarDividerChar));
}
return delim_len;

View File

@ -8,49 +8,49 @@ ask when sending list message replies to author only - Armin Wolfermann (aw)
4 files changed, 27 insertions(+)
--- PATCHES
+++ PATCHES 2016-09-13 10:01:22.837626357 +0000
+++ PATCHES 2017-04-28 13:20:07.709043569 +0000
@@ -1,3 +1,4 @@
+patch-1.5.9.aw.listreply.1
patch-compress-neo-git
patch-cond-date-neo-git
patch-fmemopen-neo-git
patch-attach-headers-color-neomutt
patch-compose-to-sender-neomutt
patch-compress-neomutt
--- init.h
+++ init.h 2016-09-13 10:00:49.794245364 +0000
@@ -1501,6 +1501,13 @@ struct option_t MuttVars[] = {
** The locale used by \fCstrftime(3)\fP to format dates. Legal values are
** the strings your system accepts for the locale environment variable \fC$$$LC_TIME\fP.
+++ init.h 2017-04-28 13:20:58.292077398 +0000
@@ -1581,6 +1581,13 @@ struct option_t MuttVars[] = {
** ``$$keywords_standard'' are \fCfalse\fP, mutt will save keywords
** to legacy headers to ensure that it does not lose your labels.
*/
+ { "list_reply", DT_QUAD, R_NONE, OPT_LISTREPLY, M_NO },
+ { "list_reply", DT_QUAD, R_NONE, OPT_LISTREPLY, MUTT_NO },
+ /*
+ ** .pp
+ ** When set, address replies to the mailing list the original message came
+ ** from (instead to the author only). Setting this option to ``ask-yes'' or
+ ** ``ask-no'' will ask if you really intended to reply to the author only.
+ */
{ "mail_check", DT_NUM, R_NONE, UL &BuffyTimeout, 5 },
{ "mail_check", DT_NUM, R_NONE, UL &BuffyTimeout, 5 },
/*
** .pp
--- mutt.h
+++ mutt.h 2016-09-13 10:00:49.794245364 +0000
@@ -315,6 +315,7 @@ enum
+++ mutt.h 2017-04-28 13:21:29.103488852 +0000
@@ -299,6 +299,7 @@ enum
#endif
OPT_SUBJECT,
OPT_VERIFYSIG, /* verify PGP signatures */
OPT_VERIFYSIG, /* verify PGP signatures */
+ OPT_LISTREPLY,
#ifdef USE_NNTP
OPT_TOMODERATED,
OPT_CATCHUP,
--- send.c
+++ send.c 2016-09-13 10:00:49.794245364 +0000
@@ -516,6 +516,7 @@ static int include_reply (CONTEXT *ctx,
static int default_to (ADDRESS **to, ENVELOPE *env, int flags, int hmfupto)
+++ send.c 2017-04-28 13:22:41.410113734 +0000
@@ -498,6 +498,7 @@ static int include_reply(CONTEXT *ctx, H
static int default_to(ADDRESS **to, ENVELOPE *env, int flags, int hmfupto)
{
char prompt[STRING];
+ ADDRESS *tmp;
if (flags && env->mail_followup_to && hmfupto == M_YES)
if (flags && env->mail_followup_to && hmfupto == MUTT_YES)
{
@@ -529,6 +530,23 @@ static int default_to (ADDRESS **to, ENV
@@ -511,6 +512,23 @@ static int default_to(ADDRESS **to, ENVE
if (flags & SENDLISTREPLY)
return 0;
@ -61,7 +61,7 @@ ask when sending list message replies to author only - Armin Wolfermann (aw)
+ switch (query_quadoption (OPT_LISTREPLY,
+ _("Message came from a mailing list. Reply to author only?")))
+ {
+ case M_NO:
+ case MUTT_NO:
+ tmp = find_mailing_lists (env->to, env->cc);
+ rfc822_append (to, tmp, 0);
+ rfc822_free_address (&tmp);
@ -71,6 +71,6 @@ ask when sending list message replies to author only - Armin Wolfermann (aw)
+ }
+ }
+
if (!option(OPTREPLYSELF) && mutt_addr_is_user (env->from))
if (!option(OPTREPLYSELF) && mutt_addr_is_user(env->from))
{
/* mail is from the user, assume replying to recipients */

View File

@ -17,10 +17,10 @@ Index: mutt/lib.c
1 file changed, 3 insertions(+)
--- lib.c
+++ lib.c 2015-01-26 00:00:00.000000000 +0000
@@ -824,6 +824,9 @@ char *mutt_substrdup (const char *begin,
+++ lib.c 2017-04-28 13:46:19.479130332 +0000
@@ -825,6 +825,9 @@ char *mutt_substrdup(const char *begin,
size_t len;
char *p;
char *p = NULL;
+ if (end != NULL && end < begin)
+ return NULL;

View File

@ -1,23 +1,23 @@
---
crypt-gpgme.c | 2 +-
crypt_gpgme.c | 2 +-
mh.c | 6 +++---
mutt.h | 2 +-
3 files changed, 5 insertions(+), 5 deletions(-)
--- crypt-gpgme.c
+++ crypt-gpgme.c 2016-09-13 10:00:08.959010324 +0000
@@ -496,7 +496,7 @@ static gpgme_data_t body_to_data_object
--- crypt_gpgme.c
+++ crypt_gpgme.c 2017-04-28 13:17:28.120091455 +0000
@@ -485,7 +485,7 @@ static gpgme_data_t body_to_data_object(
/* Create a GPGME data object from the stream FP but limit the object
to LENGTH bytes starting at OFFSET bytes from the beginning of the
file. */
-static gpgme_data_t file_to_data_object (FILE *fp, long offset, long length)
+static gpgme_data_t file_to_data_object (FILE *fp, LOFF_T offset, long length)
-static gpgme_data_t file_to_data_object(FILE *fp, long offset, long length)
+static gpgme_data_t file_to_data_object(FILE *fp, LOFF_T offset, long length)
{
int err = 0;
gpgme_data_t data;
--- mh.c
+++ mh.c 2016-09-13 10:00:08.959010324 +0000
@@ -1625,9 +1625,9 @@ static int mh_rewrite_message (CONTEXT *
+++ mh.c 2017-04-28 13:18:03.683412304 +0000
@@ -1735,9 +1735,9 @@ static int mh_rewrite_message(CONTEXT *c
char newpath[_POSIX_PATH_MAX];
char partpath[_POSIX_PATH_MAX];
@ -28,16 +28,16 @@
+ LOFF_T old_body_length = h->content->length;
+ LOFF_T old_hdr_lines = h->lines;
if ((dest = mx_open_new_message (ctx, h, 0)) == NULL)
if ((dest = mx_open_new_message(ctx, h, 0)) == NULL)
return -1;
--- mutt.h
+++ mutt.h 2016-09-13 10:00:08.959010324 +0000
@@ -731,7 +731,7 @@ typedef struct body
PARAMETER *parameter; /* parameters of the content-type */
char *description; /* content-description */
char *form_name; /* Content-Disposition form-data name param */
- long hdr_offset; /* offset in stream where the headers begin.
+ LOFF_T hdr_offset; /* offset in stream where the headers begin.
* this info is used when invoking metamail,
* where we need to send the headers of the
* attachment
+++ mutt.h 2017-04-28 13:18:35.438805848 +0000
@@ -738,7 +738,7 @@ typedef struct body
PARAMETER *parameter; /* parameters of the content-type */
char *description; /* content-description */
char *form_name; /* Content-Disposition form-data name param */
- long hdr_offset; /* offset in stream where the headers begin.
+ LOFF_T hdr_offset; /* offset in stream where the headers begin.
* this info is used when invoking metamail,
* where we need to send the headers of the
* attachment

View File

@ -5,8 +5,8 @@ Index: init.h
1 file changed, 2 insertions(+), 1 deletion(-)
--- init.h
+++ init.h 2016-09-13 09:58:52.548441749 +0000
@@ -4047,7 +4047,8 @@ struct option_t MuttVars[] = {
+++ init.h 2017-04-28 12:56:30.912131384 +0000
@@ -4224,7 +4224,8 @@ struct option_t MuttVars[] = {
** When \fIset\fP, mutt will weed headers when displaying, forwarding,
** printing, or replying to messages.
*/

View File

@ -1,28 +1,28 @@
---
init.h | 7 +++++++
mutt.h | 1 +
send.c | 8 ++++++++
3 files changed, 16 insertions(+)
send.c | 12 ++++++++++--
3 files changed, 18 insertions(+), 2 deletions(-)
--- init.h
+++ init.h 2016-09-13 09:58:08.893259601 +0000
@@ -2885,6 +2885,13 @@ struct option_t MuttVars[] = {
+++ init.h 2017-04-28 12:50:23.915168252 +0000
@@ -3011,6 +3011,13 @@ struct option_t MuttVars[] = {
** .pp
** Also see the $$force_name variable.
*/
+ { "send_group_reply_to", DT_BOOL, R_NONE, OPTSENDGROUPREPLYTO, 0 },
+ { "send_group_reply_to", DT_BOOL, R_NONE, OPTSENDGROUPREPLYTO, 0 },
+ /*
+ ** .pp
+ ** This variable controls how group replies are done.
+ ** When set, all recepients listet in "To:" are set in the
+ ** "To:" header again, else in the "CC", which is the default.
+ */
{ "score", DT_BOOL, R_NONE, OPTSCORE, 1 },
{ "score", DT_BOOL, R_NONE, OPTSCORE, 1 },
/*
** .pp
--- mutt.h
+++ mutt.h 2016-09-13 09:58:08.893259601 +0000
@@ -483,6 +483,7 @@ enum
+++ mutt.h 2017-04-28 12:47:19.222709344 +0000
@@ -474,6 +474,7 @@ enum
OPTSAVEADDRESS,
OPTSAVEEMPTY,
OPTSAVENAME,
@ -31,20 +31,22 @@
#ifdef USE_SIDEBAR
OPTSIDEBAR,
--- send.c
+++ send.c 2016-09-13 09:58:08.893259601 +0000
@@ -624,8 +624,16 @@ int mutt_fetch_recips (ENVELOPE *out, EN
if ((flags & SENDGROUPREPLY) && (!in->mail_followup_to || hmfupto != M_YES))
+++ send.c 2017-04-28 12:55:18.981510643 +0000
@@ -603,8 +603,16 @@ int mutt_fetch_recips(ENVELOPE *out, ENV
if ((flags & SENDGROUPREPLY) && (!in->mail_followup_to || hmfupto != MUTT_YES))
{
/* if(!mutt_addr_is_user(in->to)) */
- rfc822_append(&out->cc, in->to, 1);
- rfc822_append(&out->cc, in->cc, 1);
+ if (option (OPTSENDGROUPREPLYTO))
+ {
+ rfc822_append (&out->to, in->to, 0);
+ rfc822_append (&out->cc, in->cc, 1);
+ }
+ rfc822_append(&out->to, in->to, 0);
+ rfc822_append(&out->cc, in->cc, 1);
+ }
+ else
+ {
rfc822_append (&out->cc, in->to, 1);
rfc822_append (&out->cc, in->cc, 1);
+ rfc822_append(&out->cc, in->to, 1);
+ rfc822_append(&out->cc, in->cc, 1);
+ }
}
}

View File

@ -4,19 +4,18 @@ text/html
Index: mutt-1.5.21/init.c
===================================================================
---
init.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
init.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
--- init.c
+++ init.c 2016-07-26 12:03:14.963958298 +0000
@@ -3330,8 +3330,8 @@ void mutt_init (int skip_sys_rc, LIST *c
MailcapPath = safe_strdup (p);
else
{
- /* Default search path from RFC1524 */
- MailcapPath = safe_strdup ("~/.mailcap:" PKGDATADIR "/mailcap:" SYSCONFDIR "/mailcap:/etc/mailcap:/usr/etc/mailcap:/usr/local/etc/mailcap");
+ /* Default search path from RFC1524 plus fallback for mutt specific defaults */
+ MailcapPath = safe_strdup ("~/.mailcap:" PKGDATADIR "/mailcap:" SYSCONFDIR "/mailcap:/etc/mailcap:/usr/etc/mailcap:/usr/local/etc/mailcap:" SYSCONFDIR "/mutt/mailcap");
+++ init.c 2017-04-28 13:44:54.680745977 +0000
@@ -3935,7 +3935,8 @@ void mutt_init(int skip_sys_rc, LIST *co
/* Default search path from RFC1524 */
MailcapPath = safe_strdup(
"~/.mailcap:" PKGDATADIR "/mailcap:" SYSCONFDIR
- "/mailcap:/etc/mailcap:/usr/etc/mailcap:/usr/local/etc/mailcap");
+ "/mailcap:/etc/mailcap:/usr/etc/mailcap:/usr/local/etc/mailcap"
+ SYSCONFDIR "/mutt/mailcap");
}
Tempdir = safe_strdup ((p = getenv ("TMPDIR")) ? p : "/tmp");
Tempdir = safe_strdup((p = getenv("TMPDIR")) ? p : "/tmp");

View File

@ -1,24 +1,24 @@
---
crypt-gpgme.c | 2 +-
crypt_gpgme.c | 2 +-
lib.c | 12 ++++++++++++
lib.h | 1 +
pager.c | 2 +-
pgp.c | 24 ++++++++++++------------
5 files changed, 27 insertions(+), 14 deletions(-)
--- crypt-gpgme.c
+++ crypt-gpgme.c 2016-11-23 10:06:56.163851435 +0000
@@ -2313,7 +2313,7 @@ static void copy_clearsigned (gpgme_data
--- crypt_gpgme.c
+++ crypt_gpgme.c 2017-04-28 13:37:50.216829516 +0000
@@ -2301,7 +2301,7 @@ static void copy_clearsigned(gpgme_data_
if (armor_header)
{
- if (buf[0] == '\n')
- if (buf[0] == '\n')
+ if (buf[0] == '\n' || (buf[0] == '\r' && buf[1] == '\n'))
armor_header = 0;
armor_header = 0;
continue;
}
--- lib.c
+++ lib.c 2013-05-29 09:31:53.000000000 +0000
+++ lib.c 2017-04-28 13:36:40.198162342 +0000
@@ -880,6 +880,18 @@ int mutt_strcmp(const char *a, const cha
return strcmp(NONULL(a), NONULL(b));
}
@ -39,93 +39,92 @@
{
return strcasecmp(NONULL(a), NONULL(b));
--- lib.h
+++ lib.h 2013-05-29 09:25:22.000000000 +0000
@@ -197,6 +197,7 @@ int mutt_copy_bytes (FILE *, FILE *, siz
int mutt_rx_sanitize_string (char *, size_t, const char *);
int mutt_strcasecmp (const char *, const char *);
int mutt_strcmp (const char *, const char *);
+int mutt_strxcmp (const char *, const char *);
int mutt_strncasecmp (const char *, const char *, size_t);
int mutt_strncmp (const char *, const char *, size_t);
int mutt_strcoll (const char *, const char *);
+++ lib.h 2017-04-28 13:38:18.944282628 +0000
@@ -168,6 +168,7 @@ int mutt_copy_bytes(FILE *, FILE *, size
int mutt_rx_sanitize_string(char *, size_t, const char *);
int mutt_strcasecmp(const char *, const char *);
int mutt_strcmp(const char *, const char *);
+int mutt_strxcmp(const char *, const char *);
int mutt_strncasecmp(const char *, const char *, size_t);
int mutt_strncmp(const char *, const char *, size_t);
int mutt_strcoll(const char *, const char *);
--- pager.c
+++ pager.c 2013-05-29 09:31:53.000000000 +0000
@@ -774,7 +774,7 @@ resolve_types (char *buf, char *raw, str
else if (check_attachment_marker ((char *) raw) == 0)
+++ pager.c 2017-04-28 13:39:16.319190287 +0000
@@ -773,7 +773,7 @@ static void resolve_types(char *buf, cha
lineInfo[n].type = MT_COLOR_NORMAL;
else if (check_attachment_marker((char *) raw) == 0)
lineInfo[n].type = MT_COLOR_ATTACHMENT;
#endif
- else if (mutt_strcmp ("-- \n", buf) == 0 || mutt_strcmp ("-- \r\n", buf) == 0)
+ else if (mutt_strxcmp ("-- \n", buf) == 0)
- else if ((mutt_strcmp("-- \n", buf) == 0) || (mutt_strcmp("-- \r\n", buf) == 0))
+ else if (mutt_strxcmp("-- \n", buf) == 0)
{
i = n + 1;
--- pgp.c
+++ pgp.c 2015-01-26 15:48:02.361518080 +0000
@@ -302,7 +302,7 @@ static void pgp_copy_clearsigned (FILE *
+++ pgp.c 2017-04-28 13:40:43.301534032 +0000
@@ -282,7 +282,7 @@ static void pgp_copy_clearsigned(FILE *f
continue;
}
- if (mutt_strcmp (buf, "-----BEGIN PGP SIGNATURE-----\n") == 0)
+ if (mutt_strxcmp (buf, "-----BEGIN PGP SIGNATURE-----\n") == 0)
- if (mutt_strcmp(buf, "-----BEGIN PGP SIGNATURE-----\n") == 0)
+ if (mutt_strxcmp(buf, "-----BEGIN PGP SIGNATURE-----\n") == 0)
break;
if (armor_header)
@@ -368,14 +368,14 @@ int pgp_application_pgp_handler (BODY *m
@@ -347,14 +347,14 @@ int pgp_application_pgp_handler(BODY *m,
{
clearsign = 0;
- if (mutt_strcmp ("MESSAGE-----\n", buf + 15) == 0)
+ if (mutt_strxcmp ("MESSAGE-----\n", buf + 15) == 0)
- if (mutt_strcmp("MESSAGE-----\n", buf + 15) == 0)
+ if (mutt_strxcmp("MESSAGE-----\n", buf + 15) == 0)
needpass = 1;
- else if (mutt_strcmp ("SIGNED MESSAGE-----\n", buf + 15) == 0)
+ else if (mutt_strxcmp ("SIGNED MESSAGE-----\n", buf + 15) == 0)
- else if (mutt_strcmp("SIGNED MESSAGE-----\n", buf + 15) == 0)
+ else if (mutt_strxcmp("SIGNED MESSAGE-----\n", buf + 15) == 0)
{
clearsign = 1;
clearsign = 1;
needpass = 0;
}
- else if (!mutt_strcmp ("PUBLIC KEY BLOCK-----\n", buf + 15))
+ else if (!mutt_strxcmp ("PUBLIC KEY BLOCK-----\n", buf + 15))
- else if (mutt_strcmp("PUBLIC KEY BLOCK-----\n", buf + 15) == 0)
+ else if (mutt_strxcmp("PUBLIC KEY BLOCK-----\n", buf + 15) == 0)
{
needpass = 0;
pgp_keyblock = 1;
@@ -408,10 +408,10 @@ int pgp_application_pgp_handler (BODY *m
fputs (buf, tmpfp);
@@ -388,9 +388,9 @@ int pgp_application_pgp_handler(BODY *m,
- if ((needpass && mutt_strcmp ("-----END PGP MESSAGE-----\n", buf) == 0) ||
+ if ((needpass && mutt_strxcmp ("-----END PGP MESSAGE-----\n", buf) == 0) ||
(!needpass
- && (mutt_strcmp ("-----END PGP SIGNATURE-----\n", buf) == 0
- || mutt_strcmp ("-----END PGP PUBLIC KEY BLOCK-----\n",buf) == 0)))
+ && (mutt_strxcmp ("-----END PGP SIGNATURE-----\n", buf) == 0
+ || mutt_strxcmp ("-----END PGP PUBLIC KEY BLOCK-----\n",buf) == 0)))
break;
/* remember optional Charset: armor header as defined by RfC4880 */
if (mutt_strncmp ("Charset: ", buf, 9) == 0)
@@ -645,11 +645,11 @@ static int pgp_check_traditional_one_bod
fputs(buf, tmpfp);
- if ((needpass && (mutt_strcmp("-----END PGP MESSAGE-----\n", buf) == 0)) ||
- (!needpass && ((mutt_strcmp("-----END PGP SIGNATURE-----\n", buf) == 0) ||
- (mutt_strcmp("-----END PGP PUBLIC KEY BLOCK-----\n", buf) == 0))))
+ if ((needpass && (mutt_strxcmp("-----END PGP MESSAGE-----\n", buf) == 0)) ||
+ (!needpass && ((mutt_strxcmp("-----END PGP SIGNATURE-----\n", buf) == 0) ||
+ (mutt_strxcmp("-----END PGP PUBLIC KEY BLOCK-----\n", buf) == 0))))
break;
/* remember optional Charset: armor header as defined by RfC4880 */
if (mutt_strncmp("Charset: ", buf, 9) == 0)
@@ -631,11 +631,11 @@ static int pgp_check_traditional_one_bod
{
if (mutt_strncmp ("-----BEGIN PGP ", buf, 15) == 0)
if (mutt_strncmp("-----BEGIN PGP ", buf, 15) == 0)
{
- if (mutt_strcmp ("MESSAGE-----\n", buf + 15) == 0)
+ if (mutt_strxcmp ("MESSAGE-----\n", buf + 15) == 0)
enc = 1;
- else if (mutt_strcmp ("SIGNED MESSAGE-----\n", buf + 15) == 0)
+ else if (mutt_strxcmp ("SIGNED MESSAGE-----\n", buf + 15) == 0)
sgn = 1;
- else if (mutt_strcmp ("PUBLIC KEY BLOCK-----\n", buf + 15) == 0)
+ else if (mutt_strxcmp ("PUBLIC KEY BLOCK-----\n", buf + 15) == 0)
key = 1;
- if (mutt_strcmp("MESSAGE-----\n", buf + 15) == 0)
+ if (mutt_strxcmp("MESSAGE-----\n", buf + 15) == 0)
enc = 1;
- else if (mutt_strcmp("SIGNED MESSAGE-----\n", buf + 15) == 0)
+ else if (mutt_strxcmp("SIGNED MESSAGE-----\n", buf + 15) == 0)
sgn = 1;
- else if (mutt_strcmp("PUBLIC KEY BLOCK-----\n", buf + 15) == 0)
+ else if (mutt_strxcmp("PUBLIC KEY BLOCK-----\n", buf + 15) == 0)
key = 1;
}
}
@@ -1197,9 +1197,9 @@ BODY *pgp_sign_message (BODY *a)
@@ -1120,9 +1120,9 @@ BODY *pgp_sign_message(BODY *a)
*/
while (fgets (buffer, sizeof (buffer) - 1, pgpout) != NULL)
while (fgets(buffer, sizeof(buffer) - 1, pgpout) != NULL)
{
- if (mutt_strcmp ("-----BEGIN PGP MESSAGE-----\n", buffer) == 0)
+ if (mutt_strxcmp ("-----BEGIN PGP MESSAGE-----\n", buffer) == 0)
fputs ("-----BEGIN PGP SIGNATURE-----\n", fp);
- if (mutt_strcmp("-----BEGIN PGP MESSAGE-----\n", buffer) == 0)
+ if (mutt_strxcmp("-----BEGIN PGP MESSAGE-----\n", buffer) == 0)
fputs("-----BEGIN PGP SIGNATURE-----\n", fp);
- else if (mutt_strcmp("-----END PGP MESSAGE-----\n", buffer) == 0)
+ else if (mutt_strxcmp("-----END PGP MESSAGE-----\n", buffer) == 0)
fputs ("-----END PGP SIGNATURE-----\n", fp);
fputs("-----END PGP SIGNATURE-----\n", fp);
else
fputs (buffer, fp);
fputs(buffer, fp);

View File

@ -1,17 +1,19 @@
---
pgpewrap.c | 4 ++++
1 file changed, 4 insertions(+)
pgpewrap.c | 6 ++++++
1 file changed, 6 insertions(+)
--- pgpewrap.c
+++ pgpewrap.c 2016-05-12 11:48:02.259503685 +0000
@@ -58,6 +58,10 @@ int main(int argc, char **argv) {
}
*opt = NULL;
+++ pgpewrap.c 2017-04-28 12:46:25.911731441 +0000
@@ -61,6 +61,12 @@ int main(int argc, char **argv)
}
*opt = NULL;
+ if (opts[0] == NULL) {
+ fprintf(stderr, "Command line usage: %s [flags] -- prefix [recipients]\n", argv[0]);
+ return 1;
+ }
execvp(opts[0], opts);
perror(argv[0]);
return 2;
+ if (opts[0] == NULL)
+ {
+ fprintf(stderr, "Command line usage: %s [flags] -- prefix [recipients]\n", argv[0]);
+ return 1;
+ }
+
execvp(opts[0], opts);
perror(argv[0]);
return 2;

View File

@ -1,108 +1,44 @@
---
Makefile.am | 4 -
Makefile.in | 6 +-
lib.c | 15 ++++---
mbox.c | 2
lib.c | 7 ++-
mbox.c | 5 ++
mh.c | 9 +++-
mutt.h | 1
mutt.h | 5 +-
opennfs.c | 122 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
sendlib.c | 2
8 files changed, 148 insertions(+), 13 deletions(-)
sendlib.c | 4 +
7 files changed, 151 insertions(+), 5 deletions(-)
--- Makefile.am
+++ Makefile.am 2016-09-13 09:59:28.591766504 +0000
@@ -28,7 +28,7 @@ mutt_SOURCES = \
edit.c enter.c flags.c init.c filter.c from.c \
getdomain.c group.c \
handler.c hash.c hdrline.c headers.c help.c hook.c keymap.c \
- main.c mbox.c menu.c mh.c mx.c pager.c parse.c pattern.c \
+ main.c mbox.c menu.c mh.c mx.c opennfs.c pager.c parse.c pattern.c \
postpone.c query.c recvattach.c recvcmd.c \
rfc822.c rfc1524.c rfc2047.c rfc2231.c rfc3676.c \
score.c send.c sendlib.c signal.c sort.c \
@@ -93,7 +93,7 @@ mutt_dotlock_SOURCES = mutt_dotlock.c
+++ Makefile.am 2017-04-28 13:01:24.850494937 +0000
@@ -43,7 +43,7 @@ mutt_SOURCES = addrbook.c alias.c ascii.
date.c edit.c editmsg.c enter.c filter.c flags.c from.c getdomain.c \
group.c handler.c hash.c hdrline.c headers.c help.c history.c hook.c \
init.c keymap.c lib.c main.c mbox.c mbyte.c menu.c mh.c muttlib.c \
- mutt_idna.c mutt_sasl_plain.c mx.c pager.c parse.c pattern.c \
+ mutt_idna.c mutt_sasl_plain.c mx.c opennfs.c pager.c parse.c pattern.c \
postpone.c query.c recvattach.c recvcmd.c rfc1524.c rfc2047.c \
rfc2231.c rfc3676.c rfc822.c safe_asprintf.c score.c send.c sendlib.c \
signal.c sort.c status.c system.c thread.c url.c version.c
@@ -99,7 +99,7 @@ mutt_dotlock_SOURCES = mutt_dotlock.c
mutt_dotlock_LDADD = $(LIBOBJS)
mutt_dotlock_DEPENDENCIES = $(LIBOBJS)
-pgpring_SOURCES = pgppubring.c pgplib.c lib.c extlib.c sha1.c md5.c pgppacket.c ascii.c
+pgpring_SOURCES = pgppubring.c pgplib.c lib.c extlib.c sha1.c opennfs.c md5.c pgppacket.c ascii.c
-pgpring_SOURCES = ascii.c extlib.c lib.c md5.c pgplib.c pgppacket.c \
+pgpring_SOURCES = ascii.c extlib.c lib.c opennfs.c md5.c pgplib.c pgppacket.c \
pgppubring.c sha1.c
pgpring_LDADD = $(LIBOBJS) $(INTLLIBS)
pgpring_DEPENDENCIES = $(LIBOBJS) $(INTLDEPS)
--- Makefile.in
+++ Makefile.in 2016-09-13 09:59:28.591766504 +0000
@@ -125,7 +125,7 @@ am_mutt_OBJECTS = addrbook.$(OBJEXT) ali
hash.$(OBJEXT) hdrline.$(OBJEXT) headers.$(OBJEXT) \
help.$(OBJEXT) hook.$(OBJEXT) keymap.$(OBJEXT) main.$(OBJEXT) \
mbox.$(OBJEXT) menu.$(OBJEXT) mh.$(OBJEXT) mx.$(OBJEXT) \
- pager.$(OBJEXT) parse.$(OBJEXT) pattern.$(OBJEXT) \
+ opennfs.$(OBJEXT) pager.$(OBJEXT) parse.$(OBJEXT) pattern.$(OBJEXT) \
postpone.$(OBJEXT) query.$(OBJEXT) recvattach.$(OBJEXT) \
recvcmd.$(OBJEXT) rfc822.$(OBJEXT) rfc1524.$(OBJEXT) \
rfc2047.$(OBJEXT) rfc2231.$(OBJEXT) rfc3676.$(OBJEXT) \
@@ -154,7 +154,7 @@ pgpewrap_LDADD = $(LDADD)
pgpewrap_DEPENDENCIES = $(LIBOBJS) $(am__DEPENDENCIES_1)
am_pgpring_OBJECTS = pgppubring.$(OBJEXT) pgplib.$(OBJEXT) \
lib.$(OBJEXT) extlib.$(OBJEXT) sha1.$(OBJEXT) md5.$(OBJEXT) \
- pgppacket.$(OBJEXT) ascii.$(OBJEXT)
+ pgppacket.$(OBJEXT) ascii.$(OBJEXT) opennfs.$(OBJEXT)
pgpring_OBJECTS = $(am_pgpring_OBJECTS)
am_txt2c_OBJECTS = txt2c.$(OBJEXT)
txt2c_OBJECTS = $(am_txt2c_OBJECTS)
@@ -481,7 +481,7 @@ mutt_SOURCES = \
edit.c enter.c flags.c init.c filter.c from.c \
getdomain.c group.c \
handler.c hash.c hdrline.c headers.c help.c hook.c keymap.c \
- main.c mbox.c menu.c mh.c mx.c pager.c parse.c pattern.c \
+ main.c mbox.c menu.c mh.c mx.c opennfs.c pager.c parse.c pattern.c \
postpone.c query.c recvattach.c recvcmd.c \
rfc822.c rfc1524.c rfc2047.c rfc2231.c rfc3676.c \
score.c send.c sendlib.c signal.c sort.c \
--- lib.c
+++ lib.c 2016-09-13 09:59:28.591766504 +0000
@@ -50,6 +50,7 @@
#define EX_OK 0
#endif
+++ lib.c 2017-04-28 13:06:30.924636428 +0000
@@ -34,6 +34,7 @@
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
+#include "mutt.h"
#include "lib.h"
@@ -545,7 +546,7 @@ int safe_rename (const char *src, const
/* Create a temporary directory next to a file name */
-
+#if defined(__linux__)
static int mutt_mkwrapdir (const char *path, char *newfile, size_t nflen,
char *newdir, size_t ndlen)
{
@@ -581,7 +582,7 @@ static int mutt_mkwrapdir (const char *p
}
return 0;
}
-
+#endif
/* remove a directory and everything under it */
int mutt_rmtree (const char* path)
{
@@ -621,7 +622,7 @@ int mutt_rmtree (const char* path)
return rc;
}
-
+#if defined(__linux__)
static int mutt_put_file_in_place (const char *path, const char *safe_file, const char *safe_dir)
{
int rv;
@@ -631,12 +632,16 @@ static int mutt_put_file_in_place (const
rmdir (safe_dir);
return rv;
}
-
+#endif
int safe_open (const char *path, int flags)
{
#ifdef HAVE_SYSEXITS_H
@@ -640,6 +641,10 @@ int safe_open(const char *path, int flag
struct stat osb, nsb;
int fd;
@ -110,66 +46,74 @@
+ if ((fd = opennfs (path, flags, 0600)) < 0)
+ return fd;
+#else
if (flags & O_EXCL)
if (flags & O_EXCL)
{
char safe_file[_POSIX_PATH_MAX];
@@ -660,7 +665,7 @@ int safe_open (const char *path, int fla
@@ -662,7 +667,7 @@ int safe_open(const char *path, int flag
if ((fd = open (path, flags & ~O_EXCL, 0600)) < 0)
if ((fd = open(path, flags & ~O_EXCL, 0600)) < 0)
return fd;
-
-
+#endif
/* make sure the file is not symlink */
if (lstat (path, &osb) < 0 || fstat (fd, &nsb) < 0 ||
compare_stat(&osb, &nsb) == -1)
if (lstat(path, &osb) < 0 || fstat(fd, &nsb) < 0 || !compare_stat(&osb, &nsb))
{
--- mbox.c
+++ mbox.c 2016-09-13 09:59:28.591766504 +0000
@@ -781,7 +781,7 @@ int mbox_sync_mailbox (CONTEXT *ctx, int
+++ mbox.c 2017-04-28 13:09:43.360964197 +0000
@@ -1055,8 +1055,13 @@ static int mbox_sync_mailbox(CONTEXT *ct
/* Create a temporary file to write the new version of the mailbox in. */
mutt_mktemp (tempfile, sizeof (tempfile));
- if ((i = open (tempfile, O_WRONLY | O_EXCL | O_CREAT, 0600)) == -1 ||
+ if ((i = opennfs (tempfile, O_WRONLY | O_EXCL | O_CREAT, 0600)) == -1 ||
(fp = fdopen (i, "w")) == NULL)
mutt_mktemp(tempfile, sizeof(tempfile));
+#if defined(__linux__)
+ if ((i = opennfs(tempfile, O_WRONLY | O_EXCL | O_CREAT, 0600)) == -1 ||
+ (fp = fdopen(i, "w")) == NULL)
+#else
if ((i = open(tempfile, O_WRONLY | O_EXCL | O_CREAT, 0600)) == -1 ||
(fp = fdopen(i, "w")) == NULL)
+#endif
{
if (-1 != i)
{
--- mh.c
+++ mh.c 2016-09-13 09:59:28.591766504 +0000
@@ -358,7 +358,11 @@ static int mh_mkstemp (CONTEXT * dest, F
+++ mh.c 2017-04-28 13:11:02.323457092 +0000
@@ -353,7 +353,11 @@ static int mh_mkstemp(CONTEXT *dest, FIL
{
snprintf (path, _POSIX_PATH_MAX, "%s/.mutt-%s-%d-%" PRIu64,
dest->path, NONULL (Hostname), (int) getpid (), mutt_rand64());
snprintf(path, _POSIX_PATH_MAX, "%s/.mutt-%s-%d-%" PRIu64, dest->path,
NONULL(Hostname), (int) getpid(), mutt_rand64());
+#if defined(__linux__)
+ if ((fd = opennfs (path, O_WRONLY | O_EXCL | O_CREAT, 0600)) == -1)
+ if ((fd = opennfs(path, O_WRONLY | O_EXCL | O_CREAT, 0666)) == -1)
+#else
if ((fd = open (path, O_WRONLY | O_EXCL | O_CREAT, 0666)) == -1)
if ((fd = open(path, O_WRONLY | O_EXCL | O_CREAT, 0666)) == -1)
+#endif
{
if (errno != EEXIST)
{
@@ -1382,8 +1386,11 @@ int maildir_open_new_message (MESSAGE *
@@ -1492,8 +1496,11 @@ static int maildir_open_new_message(MESS
subdir, (long long) time(NULL), mutt_rand64(), NONULL(Hostname), suffix);
dprint (2, (debugfile, "maildir_open_new_message (): Trying %s.\n",
path));
mutt_debug(2, "maildir_open_new_message (): Trying %s.\n", path);
-
+#if defined(__linux__)
+ if ((fd = opennfs (path, O_WRONLY | O_EXCL | O_CREAT, 0600)) == -1)
+ if ((fd = opennfs(path, O_WRONLY | O_EXCL | O_CREAT, 0666)) == -1)
+#else
if ((fd = open (path, O_WRONLY | O_EXCL | O_CREAT, 0666)) == -1)
if ((fd = open(path, O_WRONLY | O_EXCL | O_CREAT, 0666)) == -1)
+#endif
{
if (errno != EEXIST)
{
--- mutt.h
+++ mutt.h 2016-09-13 09:59:28.591766504 +0000
@@ -1076,4 +1076,5 @@ typedef struct
+++ mutt.h 2017-04-28 13:13:38.944467312 +0000
@@ -1150,4 +1150,7 @@ typedef struct
#include "lib.h"
#include "globals.h"
#include "protos.h"
-#endif /* _MUTT_H */
+#if defined(__linux__)
+extern int opennfs(const char *, int, int);
#endif /*MUTT_H*/
+#endif
+#endif /* _MUTT_H */
--- opennfs.c
+++ opennfs.c 2016-09-13 09:59:28.595766429 +0000
+++ opennfs.c 2017-04-28 12:56:59.243588127 +0000
@@ -0,0 +1,122 @@
+#include <errno.h>
+#include <fcntl.h>
@ -294,13 +238,16 @@
+ return open(path, flags, mode);
+}
--- sendlib.c
+++ sendlib.c 2016-09-13 09:59:28.595766429 +0000
@@ -2260,7 +2260,7 @@ send_msg (const char *path, char **args,
+++ sendlib.c 2017-04-28 13:13:54.220175677 +0000
@@ -2230,7 +2230,11 @@ static int send_msg(const char *path, ch
if (SendmailWait >= 0 && tempfile && *tempfile)
{
/* *tempfile will be opened as stdout */
- if (open (*tempfile, O_WRONLY | O_APPEND | O_CREAT | O_EXCL, 0600) < 0)
+ if (opennfs (*tempfile, O_WRONLY | O_CREAT | O_EXCL, 0600) < 0)
_exit (S_ERR);
/* redirect stderr to *tempfile too */
if (dup (1) < 0)
/* *tempfile will be opened as stdout */
+#if defined(__linux__)
+ if (opennfs(*tempfile, O_WRONLY | O_APPEND | O_CREAT | O_EXCL, 0600) < 0)
+#else
if (open(*tempfile, O_WRONLY | O_APPEND | O_CREAT | O_EXCL, 0600) < 0)
+#endif
_exit(S_ERR);
/* redirect stderr to *tempfile too */
if (dup(1) < 0)

View File

@ -1,38 +0,0 @@
---
crypt-gpgme.c | 2 +-
crypt-gpgme.h | 2 +-
crypt-mod-pgp-gpgme.c | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
--- crypt-gpgme.c
+++ crypt-gpgme.c 2016-11-23 10:35:10.336974209 +0000
@@ -4946,7 +4946,7 @@ int smime_gpgme_verify_sender (HEADER *h
return verify_sender (h, GPGME_PROTOCOL_CMS);
}
-void gpgme_set_sender (const char *sender)
+void mutt_gpgme_set_sender (const char *sender)
{
mutt_error ("[setting sender] mailbox: %s\n", sender);
FREE (&current_sender);
--- crypt-gpgme.h
+++ crypt-gpgme.h 2016-11-23 10:34:54.745294760 +0000
@@ -53,6 +53,6 @@ int smime_gpgme_send_menu (HEADER *msg,
int smime_gpgme_verify_sender (HEADER *h);
-void gpgme_set_sender (const char *sender);
+void mutt_gpgme_set_sender (const char *sender);
#endif
--- crypt-mod-pgp-gpgme.c
+++ crypt-mod-pgp-gpgme.c 2016-11-23 10:35:45.700247187 +0000
@@ -104,7 +104,7 @@ static BODY *crypt_mod_pgp_make_key_atta
static void crypt_mod_pgp_set_sender (const char *sender)
{
- gpgme_set_sender (sender);
+ mutt_gpgme_set_sender (sender);
}
struct crypt_module_specs crypt_mod_pgp_gpgme =

View File

@ -1,320 +0,0 @@
---
configure.ac | 10 ++++-
doc/Makefile.in | 2 -
doc/Muttrc | 102 +++++++++++++++++++++++++++++++++++++++++---------------
doc/Muttrc.head | 2 -
imap/auth.c | 20 ++++++++++
init.h | 3 +
mx.c | 3 +
7 files changed, 112 insertions(+), 30 deletions(-)
--- configure.ac
+++ configure.ac 2016-09-13 09:57:13.810291522 +0000
@@ -280,7 +280,7 @@ main ()
mutt_cv_slang=$withval
if test -d $withval/include/slang; then
CPPFLAGS="$CPPFLAGS -I${withval}/include/slang"
- elif test -d $withval/include; then
+ elif test -d $withval/include && test $withval != /usr ; then
CPPFLAGS="$CPPFLAGS -I${withval}/include"
fi
LDFLAGS="$LDFLAGS -L${withval}/lib"
@@ -721,8 +721,12 @@ AC_ARG_WITH(ssl, AS_HELP_STRING([--with-
else
if test "$with_ssl" != "yes"
then
+ case $withval in /usr|/usr/local) ;;
+ *)
LDFLAGS="$LDFLAGS -L$withval/lib"
CPPFLAGS="$CPPFLAGS -I$withval/include"
+ ;;
+ esac
fi
saved_LIBS="$LIBS"
@@ -801,8 +805,12 @@ AC_ARG_WITH(sasl, AS_HELP_STRING([--with
if test "$with_sasl" != "yes"
then
+ case $with_sasl in /usr|/usr/local) ;;
+ *)
CPPFLAGS="$CPPFLAGS -I$with_sasl/include"
LDFLAGS="$LDFLAGS -L$with_sasl/lib"
+ ;;
+ esac
fi
saved_LIBS="$LIBS"
--- doc/Makefile.in
+++ doc/Makefile.in 2016-09-13 09:57:13.810291522 +0000
@@ -697,7 +697,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 lynx -dont_wrap_pre -center -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' > $@
--- doc/Muttrc.head
+++ doc/Muttrc.head 2016-09-13 09:57:13.810291522 +0000
@@ -23,7 +23,7 @@ macro index,pager,attach,compose \cb "\
"call urlview to extract URLs out of a message"
# Show documentation when pressing F1
-macro generic,pager <F1> "<shell-escape> less @docdir@/manual.txt<Enter>" "show Mutt documentation"
+macro generic,index,pager <F1> "<shell-escape> less -iM @docdir@/manual.txt<Enter>" "show Mutt documentation"
# show the incoming mailboxes list (just like "mutt -y") and back when pressing "y"
macro index,pager y "<change-folder>?<toggle-mailboxes>" "show incoming mailboxes list"
--- doc/Muttrc
+++ doc/Muttrc 2016-09-13 09:57:13.810291522 +0000
@@ -23,7 +23,7 @@ macro index,pager,attach,compose \cb "\
"call urlview to extract URLs out of a message"
# Show documentation when pressing F1
-macro generic,pager <F1> "<shell-escape> less /usr/local/share/doc/mutt/manual.txt<Enter>" "show Mutt documentation"
+macro generic,index,pager <F1> "<shell-escape> less -iM /usr/share/doc/packages/mutt/manual.txt.gz<Enter>" "show Mutt documentation"
# show the incoming mailboxes list (just like "mutt -y") and back when pressing "y"
macro index,pager y "<change-folder>?<toggle-mailboxes>" "show incoming mailboxes list"
@@ -364,9 +364,9 @@ attachments -I message/external-body
# unset, you must first use the <tag-prefix> function (bound to ``;''
# by default) to make the next function apply to all tagged messages.
#
-#
-# set autoedit=no
-#
+
+set autoedit=yes
+
# Name: autoedit
# Type: boolean
# Default: no
@@ -482,9 +482,9 @@ attachments -I message/external-body
# Note: It should only be set in case Mutt isn't able to determine the
# character set used correctly.
#
-#
-# set check_mbox_size=no
-#
+
+set check_mbox_size=yes
+
# Name: check_mbox_size
# Type: boolean
# Default: no
@@ -912,11 +912,11 @@ attachments -I message/external-body
# filtered message is read from the standard output.
#
#
-# set dotlock_program="/usr/local/bin/mutt_dotlock"
+# set dotlock_program="/usr/bin/mutt_dotlock"
#
# Name: dotlock_program
# Type: path
-# Default: "/usr/local/bin/mutt_dotlock"
+# Default: "/usr/bin/mutt_dotlock"
#
#
# Contains the path of the mutt_dotlock(8) binary to be used by
@@ -2380,9 +2380,9 @@ attachments -I message/external-body
# directly from the pager, and screen resizes cause lines longer than
# the screen width to be badly formatted in the help menu.
#
-#
-# set pager_context=0
-#
+
+set pager_context=4
+
# Name: pager_context
# Type: number
# Default: 0
@@ -2410,9 +2410,9 @@ attachments -I message/external-body
# pager. The valid sequences are listed in the $index_format
# section.
#
-#
-# set pager_index_lines=0
-#
+
+set pager_index_lines=10
+
# Name: pager_index_lines
# Type: number
# Default: 0
@@ -2430,9 +2430,9 @@ attachments -I message/external-body
# is less than $pager_index_lines, then the index will only use as
# many lines as it needs.
#
-#
-# set pager_stop=no
-#
+
+set pager_stop=yes
+
# Name: pager_stop
# Type: boolean
# Default: no
@@ -3538,9 +3538,9 @@ attachments -I message/external-body
# user-defined headers, and other processing effects from being
# made multiple times to the draft file.
#
-#
-# set reverse_alias=no
-#
+
+set reverse_alias=yes
+
# Name: reverse_alias
# Type: boolean
# Default: no
@@ -3672,6 +3672,18 @@ attachments -I message/external-body
# Also see the $force_name variable.
#
#
+# set send_group_reply_to=no
+#
+# Name: send_group_reply_to
+# Type: boolean
+# Default: no
+#
+#
+# This variable controls how group replies are done.
+# When set, all recepients listet in "To:" are set in the
+# "To:" header again, else in the "CC", which is the default.
+#
+#
# set score=yes
#
# Name: score
@@ -4255,9 +4267,9 @@ attachments -I message/external-body
# Setting this variable overrides the value of the $sendmail
# variable.
#
-#
-# set sort=date
-#
+
+set sort=reverse-date-sent
+
# Name: sort
# Type: sort order
# Default: date
@@ -4741,9 +4753,9 @@ attachments -I message/external-body
# When set, mutt uses the date received rather than the date sent
# to thread messages by subject.
#
-#
-# set tilde=no
-#
+
+set tilde=yes
+
# Name: tilde
# Type: boolean
# Default: no
@@ -5079,6 +5091,42 @@ attachments -I message/external-body
# in this case.
#
#
+# set xterm_icon="M%?n?AIL&ail?"
+#
+# Name: xterm_icon
+# Type: string
+# Default: "M%?n?AIL&ail?"
+#
+#
+# Controls the format of the icon title, as long as xterm_set_titles
+# is enabled. This string is identical in formatting to the one used by
+# ``$status_format''.
+#
+#
+# set xterm_set_titles=no
+#
+# Name: xterm_set_titles
+# Type: boolean
+# Default: no
+#
+#
+# Controls whether mutt sets the xterm title bar and icon name
+# (as long as you're in an appropriate terminal). The default must
+# be off to force in the validity checking.
+#
+#
+# set xterm_title="Mutt with %?m?%m messages&no messages?%?n? [%n NEW]?"
+#
+# Name: xterm_title
+# Type: string
+# Default: "Mutt with %?m?%m messages&no messages?%?n? [%n NEW]?"
+#
+#
+# Controls the format of the title bar of the xterm provided that
+# xterm_set_titles has been set. This string is identical in formatting
+# to the one used by ``$status_format''.
+#
+#
# set write_inc=10
#
# Name: write_inc
--- imap/auth.c
+++ imap/auth.c 2016-09-13 09:57:13.810291522 +0000
@@ -72,6 +72,23 @@ int imap_authenticate (IMAP_DATA* idata)
dprint (2, (debugfile, "imap_authenticate: Trying method %s\n", method));
authenticator = imap_authenticators;
+#ifdef USE_SASL
+ /* "login" not supported by SASL */
+ if (!ascii_strcasecmp ("login", method))
+ {
+ while (authenticator->authenticate)
+ {
+ const char *identify = authenticator->method;
+ if (identify && !ascii_strcasecmp(identify, method))
+ if ((r = authenticator->authenticate(idata, method)) != IMAP_AUTH_UNAVAIL)
+ {
+ FREE(&methods);
+ return r;
+ }
+ authenticator++;
+ }
+ } else {
+#endif
while (authenticator->authenticate)
{
if (!authenticator->method ||
@@ -85,6 +102,9 @@ int imap_authenticate (IMAP_DATA* idata)
authenticator++;
}
+#ifdef USE_SASL
+ }
+#endif
}
FREE (&methods);
--- init.h
+++ init.h 2016-09-13 09:57:13.814291447 +0000
@@ -3596,6 +3596,9 @@ struct option_t MuttVars[] = {
** the default from the GNUTLS library.
*/
# endif /* USE_SSL_GNUTLS */
+#if defined(USE_IMAP) && defined(SUSE_IMAP_FORCE_SSL)
+ { "imap_force_ssl", DT_SYN, R_NONE, UL "ssl_force_tls", 0 },
+#endif
{ "ssl_starttls", DT_QUAD, R_NONE, OPT_SSLSTARTTLS, M_YES },
/*
** .pp
--- mx.c
+++ mx.c 2016-09-13 09:57:13.814291447 +0000
@@ -1829,6 +1829,9 @@ void mx_update_context (CONTEXT *ctx, in
{
h = ctx->hdrs[msgno];
+ if (!h)
+ continue;
+
if (WithCrypto)
{
/* NOTE: this _must_ be done before the check for mailcap! */

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c5d02ef06486cdf04f9eeb9e9d7994890d8dfa7f47e7bfeb53a2a67da2ac1d8e
size 3956745

116
mutt-1.8.2.dif Normal file
View File

@ -0,0 +1,116 @@
---
configure.ac | 10 +++++++++-
doc/Muttrc.head | 2 +-
imap/auth.c | 20 ++++++++++++++++++++
init.h | 3 +++
mx.c | 3 +++
5 files changed, 36 insertions(+), 2 deletions(-)
--- configure.ac
+++ configure.ac 2017-04-28 12:37:53.765552498 +0000
@@ -393,7 +393,7 @@ main ()
mutt_cv_slang=$withval
if test -d $withval/include/slang; then
CPPFLAGS="$CPPFLAGS -I${withval}/include/slang"
- elif test -d $withval/include; then
+ elif test -d $withval/include && test $withval != /usr ; then
CPPFLAGS="$CPPFLAGS -I${withval}/include"
fi
LDFLAGS="$LDFLAGS -L${withval}/lib"
@@ -744,8 +744,12 @@ AC_ARG_WITH(ssl, AS_HELP_STRING([--with-
AC_MSG_WARN([SSL support is only useful with POP, IMAP or SMTP support])
else
if test "$with_ssl" != "yes"; then
+ case $withval in /usr|/usr/local) ;;
+ *)
LDFLAGS="$LDFLAGS -L$withval/lib"
CPPFLAGS="$CPPFLAGS -I$withval/include"
+ ;;
+ esac
fi
saved_LIBS="$LIBS"
@@ -825,8 +829,12 @@ AC_ARG_WITH(sasl, AS_HELP_STRING([--with
fi
if test "$with_sasl" != "yes"; then
+ case $with_sasl in /usr|/usr/local) ;;
+ *)
CPPFLAGS="$CPPFLAGS -I$with_sasl/include"
LDFLAGS="$LDFLAGS -L$with_sasl/lib"
+ ;;
+ esac
fi
saved_LIBS="$LIBS"
--- doc/Muttrc.head
+++ doc/Muttrc.head 2017-04-28 12:25:19.528026960 +0000
@@ -23,7 +23,7 @@ macro index,pager,attach,compose \cb "\
"call urlview to extract URLs out of a message"
# Show documentation when pressing F1
-macro generic,pager <F1> "<shell-escape> less @docdir@/manual.txt<Enter>" "show Mutt documentation"
+macro generic,index,pager <F1> "<shell-escape> less -iM @docdir@/manual.txt.gz<Enter>" "show Mutt documentation"
# show the incoming mailboxes list (just like "mutt -y") and back when pressing "y"
macro index,pager y "<change-folder>?<toggle-mailboxes>" "show incoming mailboxes list"
--- imap/auth.c
+++ imap/auth.c 2017-04-28 12:30:38.789900091 +0000
@@ -68,6 +68,23 @@ int imap_authenticate(IMAP_DATA *idata)
mutt_debug(2, "imap_authenticate: Trying method %s\n", method);
authenticator = imap_authenticators;
+#ifdef USE_SASL
+ /* "login" not supported by SASL */
+ if (!ascii_strcasecmp ("login", method))
+ {
+ while (authenticator->authenticate)
+ {
+ const char *identify = authenticator->method;
+ if (identify && !ascii_strcasecmp(identify, method))
+ if ((r = authenticator->authenticate(idata, method)) != IMAP_AUTH_UNAVAIL)
+ {
+ FREE(&methods);
+ return r;
+ }
+ authenticator++;
+ }
+ } else {
+#endif
while (authenticator->authenticate)
{
if (!authenticator->method || (ascii_strcasecmp(authenticator->method, method) == 0))
@@ -79,6 +96,9 @@ int imap_authenticate(IMAP_DATA *idata)
authenticator++;
}
+#ifdef USE_SASL
+ }
+#endif
}
FREE(&methods);
--- init.h
+++ init.h 2017-04-28 12:33:39.178438277 +0000
@@ -3735,6 +3735,9 @@ struct option_t MuttVars[] = {
** the default from the GNUTLS library.
*/
# endif /* USE_SSL_GNUTLS */
+#if defined(USE_IMAP) && defined(SUSE_IMAP_FORCE_SSL)
+ { "imap_force_ssl", DT_SYN, R_NONE, UL "ssl_force_tls", 0 },
+#endif
{ "ssl_starttls", DT_QUAD, R_NONE, OPT_SSLSTARTTLS, MUTT_YES },
/*
** .pp
--- mx.c
+++ mx.c 2017-04-28 12:25:20.772003088 +0000
@@ -1444,6 +1444,9 @@ void mx_update_context(CONTEXT *ctx, int
{
h = ctx->hdrs[msgno];
+ if (!h)
+ continue;
+
if (WithCrypto)
{
/* NOTE: this _must_ be done before the check for mailcap! */

View File

@ -1,3 +1,98 @@
-------------------------------------------------------------------
Fri Apr 28 14:37:01 UTC 2017 - werner@suse.de
- Update to neomutt 20170421 which updates to mutt 1.8.2
1.8.2 Bug fix release.
1.8.1 Bug fix release.
1.8.0
- $locale has been removed. Mutt now respects the LC_TIME setting
instead. See also $attribution_locale.
+ $attribution_locale can be used to override the date formatting in
attribution strings. When unset, Mutt will use the locale
environment, but note the default value of $date_format has a
leading '!' which says to use the C-locale.
! Message-id and mail-followup-to headers are now preserved for recalled
messages.
+ <unsidebar_whitelist> added to complement <sidebar_whitelist>.
! The pager position is reset to the top when toggling header-weed.
! IMAP messages moved to $trash via server-side copy are marked as read.
+ <root-message> jumps to the root message of a thread.
! Piped text attachments are charset converted.
+ Added %F to $attach_format, to show the content-disposition filename.
%d will fall back to %F which will fall back to %f.
+ <rename-attachment> allows an attachment name to be changed, without
modifying the underlying file's name.
! Mutt will look for the user's muttrc additionally in
$XDG_CONFIG_HOME/mutt/.
+ Compressed mbox and mmdf files are now supported via open-hook,
close-hook, and append-hook. See contrib/sample.muttrc-compress
for suggested settings. Note this is a compile-time option:
--enable-compressed.
+ When $flag_safe is set, flagged messages cannot be deleted.
+ The '@' pattern modifier can be used to limit matches to known aliases.
+ <mark-message> creates a hotkey binding to a specific message. The hotkey
prefix is specified via $mark_macro_prefix.
+ <setenv> and <unsetenv> can be used to add/remove environment variables
passed to children.
! Mutt will now use the built-in OpenSSL SSL_set_verify() callback
to verify certificates. This allows better support for verifying
chains, including alternative chain support.
+ $uncollapse_new controls whether a thread will be uncollapsed when a new
message arrives.
! $to_chars and $status_chars now accept multibyte characters.
+ <subjectrx> allows replacing matching subjects with something else.
This can be used to declutter subject lines in the index.
+ <edit-label> can be used to add, change, or delete a message's X-Label.
! Pattern expressions with ~y support label tab completion.
+ The header cache now also supports Kyoto Cabinet and LMDB as
backend databases.
1.7.2 (2016-12-04):
! Bug fix release. No features were modified or added.
! Fixes for OpenSSL 1.1. Versions less than 0.9.6 are no longer supported.
1.7.1 (2016-10-08):
! Bug fix release. No features were modified or added.
1.7.0 (2016-08-18):
! Improved alignment when using multi-column characters with
soft-fill (%*X) and right-justified (%>X) format strings.
+ The COLUMNS environment variable will be set to the width of the
pager when invoking display filters. This can be used in
copiousoutput mailcap entries to allow their output to match the
pager width.
+ The sidebar patch has been merged. Please watch for airborne
bovine. See the documentation for all the options, or simply
enable it with 'set sidebar_visible'.
+ $mail_check_stats and $mail_check_stats_interval control whether,
and how often, to scan for unread, flagged, and total message
counts when checking for new mail in mailboxes. These statistics
can be displayed in the sidebar and browser.
+ $trash, when set, specifies the path of the folder where mails
marked for deletion will be moved, instead of being irremediably
purged.
+ The <purge-message> function can be used to delete an entry and
bypass the trash folder.
+ $folder_format has new format strings %m and %n, to display
total and unread message counts for mailboxes. Note that
$mail_check_stats should be enabled to use these.
! When browsing IMAP, %N will now display 'N', instead of the unread
message count. Please use %n to display unread messages.
- Removed obsolete patches
* COLS-workaround.dif
* mutt-1.6.2-gpgme_set_sender.patch
- Modifyed and ported patches
* aw.listreply.diff
* bsc907453-CVE-2014-9116-jessie.patch
* bug-676388-largefile.patch
* mutt-1.5.15-wrapcolumn.diff
* mutt-1.5.20-sendgroupreplyto.diff
* mutt-1.5.21-mailcap.diff
* mutt-1.5.23-carriage-return.path
* mutt-1.5.9i-pgpewrap.diff
* mutt-1.6.1-opennfs.dif
* patch-1.5.24.vk.pgp_verbose_mime
* widechar.sidebar.dif
- Renamed patch
* mutt-1.6.2.dif becomes mutt-1.8.2.dif
-------------------------------------------------------------------
Mon Mar 6 10:37:24 UTC 2017 - werner@suse.de

View File

@ -41,6 +41,7 @@ BuildRequires: libidn-devel
BuildRequires: libopenssl-devel
BuildRequires: libxml2
BuildRequires: libxslt
BuildRequires: lua-devel
BuildRequires: lynx
BuildRequires: ncurses-devel
%if 0%{?is_opensuse}
@ -72,14 +73,18 @@ Requires: perl(Expect)
# NOTE: We don't want this dependency and desktop-data-SuSE is in all
# desktop selections.
#Requires: desktop-data-SuSE
%global neo 20160826
Version: 1.6.2
%global neo 20170421
Version: 1.8.2
Release: 0
Summary: Mail Program
License: GPL-2.0+
Group: Productivity/Networking/Email/Clients
# ftp://ftp.mutt.org/mutt/devel/
Source0: https://bitbucket.org/mutt/mutt/downloads/%name-%version.tar.gz
# Source0: https://bitbucket.org/mutt/mutt/downloads/%name-%version.tar.gz
# Switch over to neomutt tar ball which is based on original mutt
# http://www.neomutt.org/
### https://github.com/neomutt/neomutt/archive/neomutt-20170421.tar.gz
Source0: neomutt-%neo.tar.gz
Source1: Signature_conversion
Source2: README.alternates
Source3: mutt.png
@ -88,8 +93,6 @@ Source5: skel.muttrc
Source6: krb5-config
Source7: mutt-1.5.21.de.po
Source9: mutt.mailcap
# http://www.neomutt.org/
Source10: neomutt-distro-%neo.tar.gz
Patch: %name-%version.dif
# http://www.spinnaker.de/mutt/compressed/
Patch2: %name-1.5.9i-pgpewrap.diff
@ -108,10 +111,6 @@ Patch16: mutt-1.5.23-carriage-return.path
Patch18: mutt-1.5.21-mailcap.diff
# PATCH-FIX-SUSE: bsc#907453 - CVE-2014-9116: mutt: heap-based buffer overflow in mutt_substrdup()
Patch19: bsc907453-CVE-2014-9116-jessie.patch
# PATCH-FIX-OPENSUSE boo#980830 ... remove if fixed upstream
Patch20: COLS-workaround.dif
# PATCH-FIX-OPENSUSE avoid name space trouble with latest libgppme
Patch21: mutt-1.6.2-gpgme_set_sender.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%global _sysconfdir %{_sysconfdir}
@ -121,23 +120,8 @@ highlighting, threading, and PGP. It takes some time to get used to,
however.
%prep
%setup -q -n mutt-%version -a 10
for p in neomutt-distro-%neo/bugs-common/*.patch
do
patch -s -p1 --fuzz=%_default_patch_fuzz < $p
done
for p in neomutt-distro-%neo/features-common/*.patch
do
patch -s -p1 --fuzz=%_default_patch_fuzz < $p
done
for p in neomutt-distro-%neo/features-extra/*.patch
do
patch -s -p1 --fuzz=%_default_patch_fuzz < $p
done
for p in neomutt-distro-%neo/bugs-neomutt/*.patch
do
patch -s -p1 --fuzz=%_default_patch_fuzz < $p
done
ln -sf neomutt-neomutt-%neo mutt-%version
%setup -q -D -n mutt-%version
%patch -p0 -b .p0
%patch2 -p0 -b .pgpewrap
%patch3 -p0 -b .sendgroupreplyto
@ -150,12 +134,9 @@ done
%patch16 -p0 -b .crlf
%patch18 -p0 -b .mailcap
%patch19 -p0 -b .cvw2014.9116
%patch20 -p0 -b .cols
%patch21 -p0 -b .ssend
rm -vf README*.orig
rm -vf PATCHES*.orig
cp doc/Muttrc Muttrc.SuSE
cp %{S:2} .
%build
@ -228,17 +209,17 @@ chmod 755 $KRB5CFGPATH
--with-curses=%{_prefix} \
--with-regex \
--enable-smtp \
--enable-hcache \
--enable-lua \
--enable-nntp \
--with-idn
make -C doc clean
make -C po update-po
cp %{S:7} po/de.po
#make -C po update-po
#cp %{S:7} po/de.po
make
make -C doc
%install
make install DESTDIR=%{buildroot}
mv Muttrc.SuSE %{buildroot}%{_sysconfdir}/Muttrc
install -m 755 %{S:1} %{buildroot}%{_bindir}
gzip -9 doc/manu*.txt
rm -f contrib/Makefile*
@ -280,7 +261,6 @@ rm -vf %{buildroot}%{_docdir}/%name/manual.txt
%files -f %name.lang
%defattr(-,root,root)
%doc doc/manual.txt.gz COPYRIGHT README* NEWS TODO
%doc doc/PGP-Notes.txt doc/applying-patches.txt doc/devel-notes.txt
%config(noreplace) %{_sysconfdir}/skel/.muttrc
%config(noreplace) %{_sysconfdir}/Muttrc
%{_bindir}/mutt
@ -299,9 +279,14 @@ rm -vf %{buildroot}%{_docdir}/%name/manual.txt
%dir %{_datadir}/mutt/
%{_datadir}/mutt/mailcap
%doc %{_docdir}/%name/ChangeLog
%doc %{_docdir}/%name/GPL
%doc %{_docdir}/%name/ChangeLog.neomutt
%doc %{_docdir}/%name/LICENSE.md
%doc %{_docdir}/%name/*.html
%doc %{_docdir}/%name/patch-notes.txt
%doc %{_docdir}/%name/*.txt
%dir %doc %{_docdir}/%name/keybase/
%doc %{_docdir}/%name/keybase/*
%doc %{_docdir}/%name/muttrc.*
%doc %{_docdir}/%name/neomutt-syntax.vim
%dir %doc %{_docdir}/%name/samples/
%doc %{_docdir}/%name/samples/*.rc
%doc %{_docdir}/%name/samples/ca-bundle.crt
@ -311,6 +296,7 @@ rm -vf %{buildroot}%{_docdir}/%name/manual.txt
%doc %{_docdir}/%name/samples/mutt_xtitle
%doc %{_docdir}/%name/samples/sample.*
%doc %{_docdir}/%name/samples/smime_keys_test.pl
%doc %{_docdir}/%name/smime-notes.txt
%dir %doc %{_docdir}/%name/vim-keys/
%doc %{_docdir}/%name/vim-keys/*
%changelog

3
neomutt-20170421.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c2033ab18f2b05b45e22475ee98a5decdb2b19934d41803a02b66dd0d452c125
size 2733547

View File

@ -6,15 +6,15 @@
4 files changed, 17 insertions(+), 1 deletion(-)
--- PATCHES
+++ PATCHES 2016-09-13 10:02:27.260419491 +0000
+++ PATCHES 2017-04-28 13:24:26.336119973 +0000
@@ -1,3 +1,4 @@
+patch-1.5.3.vk.pgp_verbose_mime
patch-1.5.9.aw.listreply.1
patch-compress-neo-git
patch-cond-date-neo-git
patch-attach-headers-color-neomutt
patch-compose-to-sender-neomutt
--- globals.h
+++ globals.h 2016-09-13 10:02:12.156702439 +0000
@@ -271,6 +271,8 @@ WHERE REGEXP PgpDecryptionOkay;
+++ globals.h 2017-04-28 13:23:52.912755124 +0000
@@ -280,6 +280,8 @@ WHERE REGEXP PgpDecryptionOkay;
WHERE char *PgpSignAs;
WHERE short PgpTimeout;
WHERE char *PgpEntryFormat;
@ -24,8 +24,8 @@
WHERE char *PgpDecodeCommand;
WHERE char *PgpVerifyCommand;
--- init.h
+++ init.h 2016-09-13 10:02:12.156702439 +0000
@@ -3205,6 +3205,18 @@ struct option_t MuttVars[] = {
+++ init.h 2017-04-28 13:25:47.026586390 +0000
@@ -3342,6 +3342,18 @@ struct option_t MuttVars[] = {
** a line quoted text if it also matches $$smileys. This mostly
** happens at the beginning of a line.
*/
@ -41,18 +41,18 @@
+ ** This option sets the Content-Description used for signature parts in
+ ** PGP/MIME signed messages.
+ */
{ "smime_ask_cert_label", DT_BOOL, R_NONE, OPTASKCERTLABEL, 1 },
/*
** .pp
--- pgp.c
+++ pgp.c 2016-09-13 10:02:12.156702439 +0000
@@ -1261,7 +1261,8 @@ BODY *pgp_sign_message (BODY *a)
+++ pgp.c 2017-04-28 13:27:03.109140122 +0000
@@ -1184,7 +1184,8 @@ BODY *pgp_sign_message(BODY *a)
t->disposition = DISPNONE;
t->encoding = ENC7BIT;
t->unlink = 1; /* ok to remove this file after sending. */
- mutt_set_parameter ("name", "signature.asc", &t->parameter);
t->unlink = true; /* ok to remove this file after sending. */
- mutt_set_parameter("name", "signature.asc", &t->parameter);
+ mutt_set_parameter ("name", PgpMimeSignatureFilename, &t->parameter);
+ t->description = safe_strdup (PgpMimeSignatureDescription);
return (a);
return a;
}

View File

@ -1,53 +1,52 @@
---
handler.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
handler.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
--- handler.c
+++ handler.c 2016-07-26 12:01:48.801608572 +0000
@@ -780,7 +780,7 @@ static void enriched_set_flags (const wc
static int text_enriched_handler (BODY *a, STATE *s)
{
enum {
- TEXT, LANGLE, TAG, BOGUS_TAG, NEWLINE, ST_EOF, DONE
+ TEXT, TEXT_GOTWC, LANGLE, TAG, BOGUS_TAG, NEWLINE, ST_EOF, DONE
} state = TEXT;
long bytes = a->length;
@@ -809,7 +809,7 @@ static int text_enriched_handler (BODY *
+++ handler.c 2017-04-28 13:34:40.080448389 +0000
@@ -816,6 +816,7 @@ static int text_enriched_handler(BODY *a
enum
{
TEXT,
+ TEXT_GOTWC,
LANGLE,
TAG,
BOGUS_TAG,
@@ -853,7 +854,7 @@ static int text_enriched_handler(BODY *a
{
if (state != ST_EOF)
{
- if (!bytes || (wc = fgetwc (s->fpin)) == WEOF)
- if (!bytes || (wc = fgetwc(s->fpin)) == WEOF)
+ if (state != TEXT_GOTWC && (!bytes || (fscanf (s->fpin, "%lc", &wc)) == EOF))
state = ST_EOF;
state = ST_EOF;
else
bytes--;
@@ -817,6 +817,8 @@ static int text_enriched_handler (BODY *
bytes--;
@@ -861,6 +862,8 @@ static int text_enriched_handler(BODY *a
switch (state)
{
+ case TEXT_GOTWC:
+ state = TEXT;
case TEXT :
switch (wc)
{
@@ -877,9 +879,8 @@ static int text_enriched_handler (BODY *
enriched_flush (&stte, 1);
else
{
- ungetwc (wc, s->fpin);
bytes++;
- state = TEXT;
+ state = TEXT_GOTWC;
}
break;
+ state = TEXT;
case TEXT:
switch (wc)
{
@@ -921,9 +924,8 @@ static int text_enriched_handler(BODY *a
enriched_flush(&stte, 1);
else
{
- ungetwc(wc, s->fpin);
bytes++;
- state = TEXT;
+ state = TEXT_GOTWC;
}
break;
@@ -1567,7 +1568,7 @@ void mutt_decode_attachment (BODY *b, ST
@@ -1638,7 +1640,7 @@ void mutt_decode_attachment(BODY *b, STA
* strip all trailing spaces to improve interoperability;
* if $text_flowed is unset, simply verbatim copy input
*/
-static int text_plain_handler (BODY *b, STATE *s)
+static int text_plain_handler (BODY *b __attribute__((unused)), STATE *s)
-static int text_plain_handler(BODY *b, STATE *s)
+static int text_plain_handler(BODY *b __attribute__((unused)), STATE *s)
{
char *buf = NULL;
size_t l = 0, sz = 0;