Accepting request 494270 from server:mail
- Add patch mutt-1.8.2-from4crypt.diff to fix crash in crypt.c if no From is found or set - Switch form TokyoCabinet over to KyotoCabinet - Remove warning - Make header cache work again, using TokyoCabinet as backend - Remove now-obsolete configure parameters - call gzip -n to make build more reproducible - Yet an other package split: now there is a mutt-lang - Provide a hint on the package split - Move some extend documentation about mutt in a seperate package - Remove mutt-1.5.21.de.po as mutt now have a de.po as well - 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 OBS-URL: https://build.opensuse.org/request/show/494270 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mutt?expand=0&rev=76
This commit is contained in:
commit
677b199ce3
@ -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;
|
@ -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 */
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
*/
|
||||
|
@ -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);
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
@ -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");
|
||||
|
5166
mutt-1.5.21.de.po
5166
mutt-1.5.21.de.po
File diff suppressed because it is too large
Load Diff
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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)
|
||||
|
@ -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 (¤t_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 =
|
320
mutt-1.6.2.dif
320
mutt-1.6.2.dif
@ -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! */
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c5d02ef06486cdf04f9eeb9e9d7994890d8dfa7f47e7bfeb53a2a67da2ac1d8e
|
||||
size 3956745
|
40
mutt-1.8.2-from4crypt.diff
Normal file
40
mutt-1.8.2-from4crypt.diff
Normal file
@ -0,0 +1,40 @@
|
||||
From 67061b07d357086d1a0526a3c53adfa32f72929f Mon Sep 17 00:00:00 2001
|
||||
From: Werner Fink <werner@suse.de>
|
||||
Subject: Fix crash if no from is set or found
|
||||
|
||||
On multi folder mailbox setup and without a set
|
||||
'From:' line in ~/.muttrc the mutt crash with SIGSEGV
|
||||
on a NULL pointer at msg->env->from
|
||||
|
||||
Signed-off-by: Werner Fink <werner@suse.de>
|
||||
---
|
||||
crypt.c | 14 ++++++++++++--
|
||||
1 file changed, 12 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/crypt.c
|
||||
+++ b/crypt.c 2017-05-10 09:02:42.654128156 +0000
|
||||
@@ -179,12 +179,22 @@ int mutt_protect(HEADER *msg, char *keyl
|
||||
|
||||
if (option(OPTCRYPTUSEPKA) && (msg->security & SIGN))
|
||||
{
|
||||
+ const char *mailbox;
|
||||
+ ADDRESS *from = msg->env->from;
|
||||
+
|
||||
+ if (!from)
|
||||
+ from = mutt_default_from();
|
||||
+
|
||||
+ mailbox = from->mailbox;
|
||||
+ if (!mailbox && EnvFrom)
|
||||
+ mailbox = EnvFrom->mailbox;
|
||||
+
|
||||
/* Set sender (necessary for e.g. PKA). */
|
||||
|
||||
if ((WithCrypto & APPLICATION_SMIME) && (msg->security & APPLICATION_SMIME))
|
||||
- crypt_smime_set_sender(msg->env->from->mailbox);
|
||||
+ crypt_smime_set_sender(mailbox);
|
||||
else if ((WithCrypto & APPLICATION_PGP) && (msg->security & APPLICATION_PGP))
|
||||
- crypt_pgp_set_sender(msg->env->from->mailbox);
|
||||
+ crypt_pgp_set_sender(mailbox);
|
||||
}
|
||||
|
||||
if (msg->security & SIGN)
|
116
mutt-1.8.2.dif
Normal file
116
mutt-1.8.2.dif
Normal 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! */
|
138
mutt.changes
138
mutt.changes
@ -1,3 +1,141 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed May 10 08:55:37 UTC 2017 - werner@suse.de
|
||||
|
||||
- Add patch mutt-1.8.2-from4crypt.diff
|
||||
to fix crash in crypt.c if no From is found or set
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon May 1 16:06:58 UTC 2017 - werner@suse.de
|
||||
|
||||
- Switch form TokyoCabinet over to KyotoCabinet
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Apr 30 23:32:51 UTC 2017 - thorsten.behrens@cib.de
|
||||
|
||||
- Remove warning
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Apr 30 23:26:06 UTC 2017 - thorsten.behrens@cib.de
|
||||
|
||||
- Make header cache work again, using TokyoCabinet as backend
|
||||
- Remove now-obsolete configure parameters
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Apr 30 05:03:43 UTC 2017 - bwiedemann@suse.com
|
||||
|
||||
- call gzip -n to make build more reproducible
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Apr 29 16:14:43 UTC 2017 - werner@suse.de
|
||||
|
||||
- Yet an other package split: now there is a mutt-lang
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Apr 29 15:50:04 UTC 2017 - werner@suse.de
|
||||
|
||||
- Provide a hint on the package split
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Apr 28 16:27:15 UTC 2017 - werner@suse.de
|
||||
|
||||
- Move some extend documentation about mutt in a seperate package
|
||||
- Remove mutt-1.5.21.de.po as mutt now have a de.po as well
|
||||
|
||||
-------------------------------------------------------------------
|
||||
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
|
||||
|
||||
|
110
mutt.spec
110
mutt.spec
@ -38,9 +38,11 @@ BuildRequires: libgcrypt-devel
|
||||
BuildRequires: libgnutls-devel
|
||||
BuildRequires: libgpg-error-devel
|
||||
BuildRequires: libidn-devel
|
||||
BuildRequires: libkyotocabinet-devel
|
||||
BuildRequires: libopenssl-devel
|
||||
BuildRequires: libxml2
|
||||
BuildRequires: libxslt
|
||||
BuildRequires: lua-devel
|
||||
BuildRequires: lynx
|
||||
BuildRequires: ncurses-devel
|
||||
%if 0%{?is_opensuse}
|
||||
@ -60,6 +62,8 @@ BuildRequires: gpgme-devel
|
||||
Url: http://www.mutt.org
|
||||
Provides: muttssl
|
||||
Obsoletes: muttssl
|
||||
Recommends: mutt-doc
|
||||
Recommends: mutt-lang
|
||||
Recommends: smtp_daemon
|
||||
Recommends: urlscan
|
||||
Recommends: urlview
|
||||
@ -72,24 +76,25 @@ 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
|
||||
Source4: mutt.desktop
|
||||
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 +113,8 @@ 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
|
||||
# PATCH-FIX-SUSE: Fix crash in crypt routines if no from is set or found
|
||||
Patch20: mutt-1.8.2-from4crypt.diff
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
%global _sysconfdir %{_sysconfdir}
|
||||
|
||||
@ -120,24 +123,31 @@ A very powerful mail user agent. It supports (among other nice things)
|
||||
highlighting, threading, and PGP. It takes some time to get used to,
|
||||
however.
|
||||
|
||||
%package doc
|
||||
Summary: Additional Documentation about Mutt
|
||||
Group: Documentation/Other
|
||||
Requires: %{name} = %{version}
|
||||
Provides: %{name}:%{_docdir}/%name/COPYRIGHT
|
||||
BuildArch: noarch
|
||||
|
||||
%description doc
|
||||
Some extend documentation about mutt together with muttrc examples
|
||||
for different environments and requirements.
|
||||
|
||||
%package lang
|
||||
Summary: Languages for Mutt
|
||||
Group: System/Localization
|
||||
Provides: mutt:/usr/share/locale/en_GB/LC_MESSAGES/mutt.mo
|
||||
Requires: %{name} = %{version}
|
||||
Provides: %{name}:%{_docdir}/%name/COPYRIGHT
|
||||
BuildArch: noarch
|
||||
|
||||
%description lang
|
||||
Provides translations to the package mutt.
|
||||
|
||||
%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 +160,10 @@ done
|
||||
%patch16 -p0 -b .crlf
|
||||
%patch18 -p0 -b .mailcap
|
||||
%patch19 -p0 -b .cvw2014.9116
|
||||
%patch20 -p0 -b .cols
|
||||
%patch21 -p0 -b .ssend
|
||||
%patch20 -p1 -b .from4crypt
|
||||
rm -vf README*.orig
|
||||
rm -vf PATCHES*.orig
|
||||
|
||||
cp doc/Muttrc Muttrc.SuSE
|
||||
cp %{S:2} .
|
||||
|
||||
%build
|
||||
@ -219,28 +227,26 @@ chmod 755 $KRB5CFGPATH
|
||||
%if 0%{?is_opensuse}
|
||||
--enable-notmuch \
|
||||
%endif
|
||||
--enable-hcache \
|
||||
--disable-external-dotlock \
|
||||
--with-gdbm \
|
||||
--with-kyotocabinet \
|
||||
--with-ssl=%{_prefix} \
|
||||
--with-sasl=%{_prefix} \
|
||||
--with-gss=%{_prefix} \
|
||||
--with-gnutls=%{_prefix} \
|
||||
--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
|
||||
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
|
||||
gzip -n -9 doc/manu*.txt
|
||||
rm -f contrib/Makefile*
|
||||
# datadir not automatically created:
|
||||
mkdir -p %{buildroot}%{_datadir}/mutt
|
||||
@ -266,6 +272,8 @@ install -m 644 %{SOURCE4} %{buildroot}%{_datadir}/applications/
|
||||
install -D -m 644 %{SOURCE5} %{buildroot}%{_sysconfdir}/skel/.muttrc
|
||||
install -D -m 644 %{SOURCE9} %{buildroot}%{_datadir}/%name/mailcap
|
||||
rm -vf %{buildroot}%{_docdir}/%name/manual.txt
|
||||
install -D -m 644 doc/manual.txt.gz %{buildroot}%{_docdir}/%name/
|
||||
chmod a-x %{buildroot}%{_docdir}/%name/keybase/*.sh
|
||||
%suse_update_desktop_file mutt
|
||||
|
||||
%if 0%{?suse_version} >= 1140
|
||||
@ -277,10 +285,8 @@ rm -vf %{buildroot}%{_docdir}/%name/manual.txt
|
||||
%mime_database_postun
|
||||
%endif
|
||||
|
||||
%files -f %name.lang
|
||||
%files
|
||||
%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
|
||||
@ -298,10 +304,24 @@ rm -vf %{buildroot}%{_docdir}/%name/manual.txt
|
||||
%{_mandir}/man5/mbox_mutt.5.gz
|
||||
%dir %{_datadir}/mutt/
|
||||
%{_datadir}/mutt/mailcap
|
||||
%dir %doc %{_docdir}/%name/
|
||||
%doc %{_docdir}/%name/manual.txt.gz
|
||||
|
||||
%files doc
|
||||
%defattr(-,root,root)
|
||||
%doc %{_docdir}/%name/COPYRIGHT
|
||||
%doc %{_docdir}/%name/README*
|
||||
%doc %{_docdir}/%name/NEWS
|
||||
%doc %{_docdir}/%name/TODO
|
||||
%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 +331,10 @@ 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/*
|
||||
|
||||
%files lang -f %name.lang
|
||||
%defattr(-,root,root)
|
||||
|
||||
%changelog
|
||||
|
3
neomutt-20170421.tar.gz
Normal file
3
neomutt-20170421.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c2033ab18f2b05b45e22475ee98a5decdb2b19934d41803a02b66dd0d452c125
|
||||
size 2733547
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:3580dc9c8b8b2247ac77f7a1ab9eba01974def8de6e7adfb0eacf2ccb7bb4aca
|
||||
size 559148
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user