jaromail

a commandline tool to easily and privately handle your e-mail
git clone git://parazyd.org/jaromail.git
Log | Files | Refs | Submodules | README

commit 6e2735e86537bd55f5cc413959d6a7e041f68c17
parent 9d730670b05a39bedc378b2419c631ccf89e868e
Author: Jaromil <jaromil@dyne.org>
Date:   Tue,  4 Sep 2012 13:20:43 +0200

updated to mutt-1.5.21 as maintained by nightolo in Debian testing

Diffstat:
Msrc/mutt-1.5.21/account.c | 2+-
Msrc/mutt-1.5.21/attach.c | 6+++++-
Msrc/mutt-1.5.21/copy.c | 4++--
Msrc/mutt-1.5.21/crypt.c | 2+-
Msrc/mutt-1.5.21/edit.c | 2+-
Msrc/mutt-1.5.21/enter.c | 2+-
Msrc/mutt-1.5.21/flags.c | 5++++-
Msrc/mutt-1.5.21/headers.c | 4++--
Msrc/mutt-1.5.21/imap/message.c | 32++++++++++++++++++++++++--------
Msrc/mutt-1.5.21/init.c | 13++++++++++++-
Msrc/mutt-1.5.21/init.h | 4+++-
Msrc/mutt-1.5.21/mutt.h | 5+++++
Msrc/mutt-1.5.21/mutt_ssl_gnutls.c | 59++++++++++++++++++++++++++++++++++++++++++-----------------
Msrc/mutt-1.5.21/muttlib.c | 6+++++-
Msrc/mutt-1.5.21/pager.c | 2+-
Dsrc/mutt-1.5.21/po/bg.gmo | 0
Msrc/mutt-1.5.21/po/bg.po | 2+-
Dsrc/mutt-1.5.21/po/ca.gmo | 0
Msrc/mutt-1.5.21/po/ca.po | 2+-
Dsrc/mutt-1.5.21/po/cs.gmo | 0
Msrc/mutt-1.5.21/po/cs.po | 2+-
Dsrc/mutt-1.5.21/po/da.gmo | 0
Msrc/mutt-1.5.21/po/da.po | 2+-
Dsrc/mutt-1.5.21/po/de.gmo | 0
Msrc/mutt-1.5.21/po/de.po | 2+-
Dsrc/mutt-1.5.21/po/el.gmo | 0
Msrc/mutt-1.5.21/po/el.po | 2+-
Dsrc/mutt-1.5.21/po/eo.gmo | 0
Msrc/mutt-1.5.21/po/eo.po | 2+-
Dsrc/mutt-1.5.21/po/es.gmo | 0
Msrc/mutt-1.5.21/po/es.po | 2+-
Dsrc/mutt-1.5.21/po/et.gmo | 0
Msrc/mutt-1.5.21/po/et.po | 2+-
Dsrc/mutt-1.5.21/po/eu.gmo | 0
Msrc/mutt-1.5.21/po/eu.po | 2+-
Dsrc/mutt-1.5.21/po/fr.gmo | 0
Msrc/mutt-1.5.21/po/fr.po | 2+-
Dsrc/mutt-1.5.21/po/ga.gmo | 0
Msrc/mutt-1.5.21/po/ga.po | 2+-
Dsrc/mutt-1.5.21/po/gl.gmo | 0
Msrc/mutt-1.5.21/po/gl.po | 2+-
Dsrc/mutt-1.5.21/po/hu.gmo | 0
Msrc/mutt-1.5.21/po/hu.po | 2+-
Dsrc/mutt-1.5.21/po/id.gmo | 0
Msrc/mutt-1.5.21/po/id.po | 2+-
Dsrc/mutt-1.5.21/po/it.gmo | 0
Msrc/mutt-1.5.21/po/it.po | 2+-
Dsrc/mutt-1.5.21/po/ja.gmo | 0
Msrc/mutt-1.5.21/po/ja.po | 2+-
Dsrc/mutt-1.5.21/po/ko.gmo | 0
Msrc/mutt-1.5.21/po/ko.po | 2+-
Dsrc/mutt-1.5.21/po/lt.gmo | 0
Msrc/mutt-1.5.21/po/lt.po | 2+-
Msrc/mutt-1.5.21/po/mutt.pot | 2+-
Dsrc/mutt-1.5.21/po/nl.gmo | 0
Msrc/mutt-1.5.21/po/nl.po | 2+-
Dsrc/mutt-1.5.21/po/pl.gmo | 0
Msrc/mutt-1.5.21/po/pl.po | 2+-
Dsrc/mutt-1.5.21/po/pt_BR.gmo | 0
Msrc/mutt-1.5.21/po/pt_BR.po | 2+-
Dsrc/mutt-1.5.21/po/ru.gmo | 0
Msrc/mutt-1.5.21/po/ru.po | 2+-
Dsrc/mutt-1.5.21/po/sk.gmo | 0
Msrc/mutt-1.5.21/po/sk.po | 2+-
Dsrc/mutt-1.5.21/po/sv.gmo | 0
Msrc/mutt-1.5.21/po/sv.po | 2+-
Dsrc/mutt-1.5.21/po/tr.gmo | 0
Msrc/mutt-1.5.21/po/tr.po | 2+-
Dsrc/mutt-1.5.21/po/uk.gmo | 0
Msrc/mutt-1.5.21/po/uk.po | 2+-
Dsrc/mutt-1.5.21/po/zh_CN.gmo | 0
Msrc/mutt-1.5.21/po/zh_CN.po | 2+-
Dsrc/mutt-1.5.21/po/zh_TW.gmo | 0
Msrc/mutt-1.5.21/po/zh_TW.po | 2+-
Msrc/mutt-1.5.21/recvattach.c | 2+-
Msrc/mutt-1.5.21/score.c | 2+-
Msrc/mutt-1.5.21/sendlib.c | 4++--
77 files changed, 143 insertions(+), 73 deletions(-)

diff --git a/src/mutt-1.5.21/account.c b/src/mutt-1.5.21/account.c @@ -222,7 +222,7 @@ int mutt_account_getpass (ACCOUNT* account) else { snprintf (prompt, sizeof (prompt), _("Password for %s@%s: "), - account->flags & M_ACCT_LOGIN ? account->login : account->user, + ((account->flags & M_ACCT_LOGIN) && !(account->user)) ? account->login : account->user, account->host); account->pass[0] = '\0'; if (mutt_get_password (prompt, account->pass, sizeof (account->pass))) diff --git a/src/mutt-1.5.21/attach.c b/src/mutt-1.5.21/attach.c @@ -492,6 +492,7 @@ int mutt_view_attachment (FILE *fp, BODY *a, int flag, HEADER *hdr, FREE (&fname); if (mutt_save_attachment (fp, a, tempfile, 0, NULL) == -1) goto return_error; + chmod (tempfile, 0400); } use_pipe = rfc1524_expand_command (a, tempfile, type, @@ -633,7 +634,11 @@ int mutt_view_attachment (FILE *fp, BODY *a, int flag, HEADER *hdr, if (entry) rfc1524_free_entry (&entry); if (fp && tempfile[0]) + { + /* Restore write permission so mutt_unlink can open the file for writing */ + chmod(tempfile, 0600); mutt_unlink (tempfile); + } else if (unlink_tempfile) unlink(tempfile); @@ -802,7 +807,6 @@ int mutt_save_attachment (FILE *fp, BODY *m, char *path, int flags, HEADER *hdr) STATE s; memset (&s, 0, sizeof (s)); - s.flags |= M_CHARCONV; if ((s.fpout = mutt_save_attachment_open (path, flags)) == NULL) { diff --git a/src/mutt-1.5.21/copy.c b/src/mutt-1.5.21/copy.c @@ -77,7 +77,7 @@ mutt_copy_hdr (FILE *in, FILE *out, LOFF_T off_start, LOFF_T off_end, int flags, if ((fgets (buf, sizeof (buf), in)) == NULL) break; - /* Is it the begining of a header? */ + /* Is it the beginning of a header? */ if (nl && buf[0] != ' ' && buf[0] != '\t') { ignore = 1; @@ -147,7 +147,7 @@ mutt_copy_hdr (FILE *in, FILE *out, LOFF_T off_start, LOFF_T off_end, int flags, if ((fgets (buf, sizeof (buf), in)) == NULL) break; - /* Is it the begining of a header? */ + /* Is it the beginning of a header? */ if (nl && buf[0] != ' ' && buf[0] != '\t') { /* Do we have anything pending? */ diff --git a/src/mutt-1.5.21/crypt.c b/src/mutt-1.5.21/crypt.c @@ -224,7 +224,7 @@ int mutt_protect (HEADER *msg, char *keylist) /* free tmp_body if messages was signed AND encrypted ... */ if (tmp_smime_pbody != msg->content && tmp_smime_pbody != tmp_pbody) { - /* detatch and dont't delete msg->content, + /* detatch and don't delete msg->content, which tmp_smime_pbody->parts after signing. */ tmp_smime_pbody->parts = tmp_smime_pbody->parts->next; msg->content->next = NULL; diff --git a/src/mutt-1.5.21/edit.c b/src/mutt-1.5.21/edit.c @@ -39,7 +39,7 @@ * declared "static" (sigh) */ static char* EditorHelp1 = N_("\ -~~ insert a line begining with a single ~\n\ +~~ insert a line beginning with a single ~\n\ ~b users add users to the Bcc: field\n\ ~c users add users to the Cc: field\n\ ~f messages include messages\n\ diff --git a/src/mutt-1.5.21/enter.c b/src/mutt-1.5.21/enter.c @@ -435,7 +435,7 @@ int _mutt_enter_string (char *buf, size_t buflen, int y, int x, break; case OP_EDITOR_KILL_WORD: - /* delete to begining of word */ + /* delete to beginning of word */ if (state->curpos != 0) { i = state->curpos; diff --git a/src/mutt-1.5.21/flags.c b/src/mutt-1.5.21/flags.c @@ -276,7 +276,10 @@ void mutt_tag_set_flag (int flag, int bf) int mutt_thread_set_flag (HEADER *hdr, int flag, int bf, int subthread) { THREAD *start, *cur = hdr->thread; - + + if ( !hdr->thread ) + return (-1); + if ((Sort & SORT_MASK) != SORT_THREADS) { mutt_error _("Threading is not enabled."); diff --git a/src/mutt-1.5.21/headers.c b/src/mutt-1.5.21/headers.c @@ -114,8 +114,8 @@ void mutt_edit_headers (const char *editor, $edit_headers set, we remove References: as they're likely invalid; we can simply compare strings as we don't generate References for multiple Message-Ids in IRT anyways */ - if (!n->in_reply_to || (msg->env->in_reply_to && - mutt_strcmp (n->in_reply_to->data, + if (msg->env->in_reply_to && + (!n->in_reply_to || mutt_strcmp (n->in_reply_to->data, msg->env->in_reply_to->data) != 0)) mutt_free_list (&msg->env->references); diff --git a/src/mutt-1.5.21/imap/message.c b/src/mutt-1.5.21/imap/message.c @@ -65,7 +65,7 @@ int imap_read_headers (IMAP_DATA* idata, int msgbegin, int msgend) char *hdrreq = NULL; FILE *fp; char tempfile[_POSIX_PATH_MAX]; - int msgno, idx; + int msgno, idx = msgbegin - 1; IMAP_HEADER h; IMAP_STATUS* status; int rc, mfhrc, oldmsgcount; @@ -185,7 +185,7 @@ int imap_read_headers (IMAP_DATA* idata, int msgbegin, int msgend) continue; } - idx = h.sid - 1; + idx++; ctx->hdrs[idx] = imap_hcache_get (idata, h.data->uid); if (ctx->hdrs[idx]) { @@ -242,6 +242,15 @@ int imap_read_headers (IMAP_DATA* idata, int msgbegin, int msgend) char *cmd; fetchlast = msgend + 1; + /* Microsoft Exchange 2010 violates the IMAP protocol and + * starts omitting messages if one FETCHes more than 2047 (or + * or somewhere around that number. We therefore split the + * FETCH into chunks of 2000 messages each */ + if (fetchlast - msgno - 1 > 2000) + { + fetchlast = msgno+1 + 2000; + } + safe_asprintf (&cmd, "FETCH %d:%d (UID FLAGS INTERNALDATE RFC822.SIZE %s)", msgno + 1, fetchlast, hdrreq); imap_cmd_start (idata, cmd); @@ -273,13 +282,14 @@ int imap_read_headers (IMAP_DATA* idata, int msgbegin, int msgend) { dprint (2, (debugfile, "msg_fetch_header: ignoring fetch response with no body\n")); mfhrc = -1; + msgend--; continue; } /* make sure we don't get remnants from older larger message headers */ fputs ("\n\n", fp); - idx = h.sid - 1; + idx++; if (idx > msgend) { dprint (1, (debugfile, "imap_read_headers: skipping FETCH response for " @@ -288,7 +298,7 @@ int imap_read_headers (IMAP_DATA* idata, int msgbegin, int msgend) continue; } /* May receive FLAGS updates in a separate untagged response (#2935) */ - if (idx < ctx->msgcount) + if (ctx->hdrs[idx] != NULL) { dprint (2, (debugfile, "imap_read_headers: message %d is not new\n", h.sid)); @@ -398,7 +408,7 @@ int imap_fetch_message (MESSAGE *msg, CONTEXT *ctx, int msgno) char path[_POSIX_PATH_MAX]; char *pc; long bytes; - progress_t progressbar; + progress_t progressbar, *pbar; int uid; int cacheno; IMAP_CACHE *cache; @@ -495,9 +505,15 @@ int imap_fetch_message (MESSAGE *msg, CONTEXT *ctx, int msgno) imap_error ("imap_fetch_message()", buf); goto bail; } - mutt_progress_init (&progressbar, _("Fetching message..."), - M_PROGRESS_SIZE, NetInc, bytes); - if (imap_read_literal (msg->fp, idata, bytes, &progressbar) < 0) + if (!isendwin()) + { + mutt_progress_init (&progressbar, _("Fetching message..."), + M_PROGRESS_SIZE, NetInc, bytes); + pbar = &progressbar; + } + else + pbar = NULL; + if (imap_read_literal (msg->fp, idata, bytes, pbar) < 0) goto bail; /* pick up trailing line */ if ((rc = imap_cmd_step (idata)) != IMAP_CMD_CONTINUE) diff --git a/src/mutt-1.5.21/init.c b/src/mutt-1.5.21/init.c @@ -52,6 +52,10 @@ #include <sys/wait.h> #include <sys/time.h> +#if defined(CRYPT_BACKEND_GPGME) +#include <gpgme.h> +#endif + #define CHECK_PAGER \ if ((CurrentMenu == MENU_PAGER) && (idx >= 0) && \ (MuttVars[idx].flags & R_RESORT)) \ @@ -1672,6 +1676,9 @@ static int check_charset (struct option_t *opt, const char *val) char *p, *q = NULL, *s = safe_strdup (val); int rc = 0, strict = strcmp (opt->option, "send_charset") == 0; + if (!s) + return rc; + for (p = strtok_r (s, ":", &q); p; p = strtok_r (NULL, ":", &q)) { if (!*p) @@ -2559,7 +2566,7 @@ int mutt_command_complete (char *buffer, size_t len, int pos, int numtabs) Matches[Num_matched++] = User_typed; /* All matches are stored. Longest non-ambiguous string is "" - * i.e. dont change 'buffer'. Fake successful return this time */ + * i.e. don't change 'buffer'. Fake successful return this time */ if (User_typed[0] == 0) return 1; } @@ -3143,6 +3150,10 @@ void mutt_init (int skip_sys_rc, LIST *commands) mutt_read_histfile (); +#ifdef CRYPT_BACKEND_GPGME + gpgme_check_version (NULL); +#endif + #if 0 set_option (OPTWEED); /* turn weeding on by default */ #endif diff --git a/src/mutt-1.5.21/init.h b/src/mutt-1.5.21/init.h @@ -1202,7 +1202,9 @@ struct option_t MuttVars[] = { ** ``\fCcopiousoutput\fP'' flag set for \fIevery\fP MIME attachment it doesn't have ** an internal viewer defined for. If such an entry is found, mutt will ** use the viewer defined in that entry to convert the body part to text - ** form. + ** form. MIME attachments with 'text' types, with the only exception + ** of text/html, are excluded: they will be shown as they are unless auto_view + ** is specified. */ { "include", DT_QUAD, R_NONE, OPT_INCLUDE, M_ASKYES }, /* diff --git a/src/mutt-1.5.21/mutt.h b/src/mutt-1.5.21/mutt.h @@ -52,6 +52,11 @@ #include <limits.h> #endif +/* PATH_MAX is undefined on the hurd */ +#ifndef PATH_MAX +#define PATH_MAX _POSIX_PATH_MAX +#endif + #include <pwd.h> #include <grp.h> diff --git a/src/mutt-1.5.21/mutt_ssl_gnutls.c b/src/mutt-1.5.21/mutt_ssl_gnutls.c @@ -238,8 +238,6 @@ err_crt: gnutls_x509_crt_deinit (clientcrt); } -static int protocol_priority[] = {GNUTLS_TLS1, GNUTLS_SSL3, 0}; - /* tls_negotiate: After TLS state has been initialised, attempt to negotiate * TLS over the wire, including certificate checks. */ static int tls_negotiate (CONNECTION * conn) @@ -247,6 +245,18 @@ static int tls_negotiate (CONNECTION * conn) tlssockdata *data; int err; +#if GNUTLS_VERSION_MAJOR >= 2 && GNUTLS_VERSION_MINOR >= 12 + char *force_sslv3_str = "NORMAL:-VERS-TLS-ALL:+VERS-SSL3.0"; + char *force_tls_str = "NORMAL:-VERS-SSL3.0:+VERS-TLS-ALL"; +#else + char *force_sslv3_str = + "NORMAL:-VERS-TLS1.2:-VERS-TLS1.1:-VERS-TLS1.0:+VERS-SSL3.0"; + char *force_tls_str = "NORMAL:-VERS-SSL3.0:+VERS-TLS-1.2:+VERS-TLS1.1:+VERS-TLS1.0"; +#endif + char *priority_str = "NORMAL"; + const char *error_pos; + int error_code; + data = (tlssockdata *) safe_calloc (1, sizeof (tlssockdata)); conn->sockdata = data; err = gnutls_certificate_allocate_credentials (&data->xcred); @@ -294,13 +304,11 @@ static int tls_negotiate (CONNECTION * conn) } else if (!option(OPTTLSV1)) { - protocol_priority[0] = GNUTLS_SSL3; - protocol_priority[1] = 0; + priority_str = force_sslv3_str; } else if (!option(OPTSSLV3)) { - protocol_priority[0] = GNUTLS_TLS1; - protocol_priority[1] = 0; + priority_str = force_tls_str; } /* else @@ -309,8 +317,21 @@ static int tls_negotiate (CONNECTION * conn) /* We use default priorities (see gnutls documentation), except for protocol version */ - gnutls_set_default_priority (data->state); - gnutls_protocol_set_priority (data->state, protocol_priority); + error_pos = NULL; + if ( (error_code = gnutls_priority_set_direct (data->state, priority_str, + &error_pos)) != 0 ) + { + if ( error_pos ) + { + mutt_error("gnutls_priority_set_direct(%s) pos %s", priority_str, error_pos); + } + else + { + mutt_error("gnutls_priority_set_direct(%s)", priority_str); + } + mutt_sleep(2); + goto fail; + } if (SslDHPrimeBits > 0) { @@ -939,22 +960,22 @@ static int tls_check_one_certificate (const gnutls_datum_t *certdata, /* sanity-checking wrapper for gnutls_certificate_verify_peers */ static gnutls_certificate_status tls_verify_peers (gnutls_session tlsstate) { - gnutls_certificate_status certstat; + unsigned int verify_ret, status; - certstat = gnutls_certificate_verify_peers (tlsstate); - if (!certstat) - return certstat; + verify_ret = gnutls_certificate_verify_peers2 (tlsstate, &status); + if (!verify_ret) + return status; - if (certstat == GNUTLS_E_NO_CERTIFICATE_FOUND) + if (status == GNUTLS_E_NO_CERTIFICATE_FOUND) { mutt_error (_("Unable to get certificate from peer")); mutt_sleep (2); return 0; } - if (certstat < 0) + if (verify_ret < 0) { mutt_error (_("Certificate verification error (%s)"), - gnutls_strerror (certstat)); + gnutls_strerror (status)); mutt_sleep (2); return 0; } @@ -967,7 +988,7 @@ static gnutls_certificate_status tls_verify_peers (gnutls_session tlsstate) return 0; } - return certstat; + return status; } static int tls_check_certificate (CONNECTION* conn) @@ -978,6 +999,7 @@ static int tls_check_certificate (CONNECTION* conn) unsigned int cert_list_size = 0; gnutls_certificate_status certstat; int certerr, i, preauthrc, savedcert, rc = 0; + int rcpeer; if (gnutls_auth_get_type (state) != GNUTLS_CRD_CERTIFICATE) { @@ -1003,6 +1025,9 @@ static int tls_check_certificate (CONNECTION* conn) for (i = 0; i < cert_list_size; i++) { rc = tls_check_preauth(&cert_list[i], certstat, conn->account.host, i, &certerr, &savedcert); + if (i ==0) + rcpeer = rc; + preauthrc += rc; if (savedcert) @@ -1028,7 +1053,7 @@ static int tls_check_certificate (CONNECTION* conn) dprint (1, (debugfile, "error trusting certificate %d: %d\n", i, rc)); certstat = tls_verify_peers (state); - if (!certstat) + if (!certstat && !rcpeer) return 1; } } diff --git a/src/mutt-1.5.21/muttlib.c b/src/mutt-1.5.21/muttlib.c @@ -658,6 +658,9 @@ int mutt_needs_mailcap (BODY *m) switch (m->type) { case TYPETEXT: + /* we don't want to display text/html */ + if (!ascii_strcasecmp ("html", m->subtype)) + return 1; /* we can display any text, overridable by auto_view */ return 0; break; @@ -1960,6 +1963,7 @@ void mutt_encode_path (char *dest, size_t dlen, const char *src) { char *p = safe_strdup (src); int rc = mutt_convert_string (&p, Charset, "utf-8", 0); - strfcpy (dest, rc == 0 ? p : src, dlen); + /* `src' may be NULL, such as when called from the pop3 driver. */ + strfcpy (dest, (rc == 0) ? NONULL(p) : NONULL(src), dlen); FREE (&p); } diff --git a/src/mutt-1.5.21/pager.c b/src/mutt-1.5.21/pager.c @@ -1053,7 +1053,7 @@ fill_buffer (FILE *f, LOFF_T *last_pos, LOFF_T offset, unsigned char **buf, q = *fmt; while (*p) { - if (*p == '\010' && (p > *buf)) + if (*p == '\010' && (p > *buf) && (q > *fmt)) { if (*(p+1) == '_') /* underline */ p += 2; diff --git a/src/mutt-1.5.21/po/bg.gmo b/src/mutt-1.5.21/po/bg.gmo Binary files differ. diff --git a/src/mutt-1.5.21/po/bg.po b/src/mutt-1.5.21/po/bg.po @@ -3899,7 +3899,7 @@ msgstr " #: recvattach.c:710 #, c-format -msgid "I dont know how to print %s attachments!" +msgid "I don't know how to print %s attachments!" msgstr " %s !" #: recvattach.c:775 diff --git a/src/mutt-1.5.21/po/ca.gmo b/src/mutt-1.5.21/po/ca.gmo Binary files differ. diff --git a/src/mutt-1.5.21/po/ca.po b/src/mutt-1.5.21/po/ca.po @@ -4054,7 +4054,7 @@ msgstr "Redirigeix a: " #: recvattach.c:710 #, c-format -msgid "I dont know how to print %s attachments!" +msgid "I don't know how to print %s attachments!" msgstr "Es desconeix com imprimir adjuncions de tipus «%s»." #: recvattach.c:775 diff --git a/src/mutt-1.5.21/po/cs.gmo b/src/mutt-1.5.21/po/cs.gmo Binary files differ. diff --git a/src/mutt-1.5.21/po/cs.po b/src/mutt-1.5.21/po/cs.po @@ -3781,7 +3781,7 @@ msgstr "Poslat rourou do: " #: recvattach.c:710 #, c-format -msgid "I dont know how to print %s attachments!" +msgid "I don't know how to print %s attachments!" msgstr "Nevím, jak vytisknout přílohy typu %s!." #: recvattach.c:775 diff --git a/src/mutt-1.5.21/po/da.gmo b/src/mutt-1.5.21/po/da.gmo Binary files differ. diff --git a/src/mutt-1.5.21/po/da.po b/src/mutt-1.5.21/po/da.po @@ -3850,7 +3850,7 @@ msgstr "Overf #: recvattach.c:710 #, c-format -msgid "I dont know how to print %s attachments!" +msgid "I don't know how to print %s attachments!" msgstr "Kan ikke udskrive %s-brevdele." #: recvattach.c:775 diff --git a/src/mutt-1.5.21/po/de.gmo b/src/mutt-1.5.21/po/de.gmo Binary files differ. diff --git a/src/mutt-1.5.21/po/de.po b/src/mutt-1.5.21/po/de.po @@ -3779,7 +3779,7 @@ msgstr " #: recvattach.c:710 #, c-format -msgid "I dont know how to print %s attachments!" +msgid "I don't know how to print %s attachments!" msgstr "Kann %s Anhnge nicht drucken!" #: recvattach.c:775 diff --git a/src/mutt-1.5.21/po/el.gmo b/src/mutt-1.5.21/po/el.gmo Binary files differ. diff --git a/src/mutt-1.5.21/po/el.po b/src/mutt-1.5.21/po/el.po @@ -4528,7 +4528,7 @@ msgstr " # #: recvattach.c:710 #, c-format -msgid "I dont know how to print %s attachments!" +msgid "I don't know how to print %s attachments!" msgstr " %s !" # diff --git a/src/mutt-1.5.21/po/eo.gmo b/src/mutt-1.5.21/po/eo.gmo Binary files differ. diff --git a/src/mutt-1.5.21/po/eo.po b/src/mutt-1.5.21/po/eo.po @@ -3772,7 +3772,7 @@ msgstr "Trakti per: " #: recvattach.c:710 #, c-format -msgid "I dont know how to print %s attachments!" +msgid "I don't know how to print %s attachments!" msgstr "Mi ne scias presi %s-partojn!" #: recvattach.c:775 diff --git a/src/mutt-1.5.21/po/es.gmo b/src/mutt-1.5.21/po/es.gmo Binary files differ. diff --git a/src/mutt-1.5.21/po/es.po b/src/mutt-1.5.21/po/es.po @@ -3898,7 +3898,7 @@ msgstr "Redirigir a: " #: recvattach.c:710 #, c-format -msgid "I dont know how to print %s attachments!" +msgid "I don't know how to print %s attachments!" msgstr "No s cmo imprimir archivos adjuntos %s!" #: recvattach.c:775 diff --git a/src/mutt-1.5.21/po/et.gmo b/src/mutt-1.5.21/po/et.gmo Binary files differ. diff --git a/src/mutt-1.5.21/po/et.po b/src/mutt-1.5.21/po/et.po @@ -3875,7 +3875,7 @@ msgstr "Toru k #: recvattach.c:710 #, c-format -msgid "I dont know how to print %s attachments!" +msgid "I don't know how to print %s attachments!" msgstr "Ma ei tea, kuidas trkkida %s lisasid!" #: recvattach.c:775 diff --git a/src/mutt-1.5.21/po/eu.gmo b/src/mutt-1.5.21/po/eu.gmo Binary files differ. diff --git a/src/mutt-1.5.21/po/eu.po b/src/mutt-1.5.21/po/eu.po @@ -3764,7 +3764,7 @@ msgstr "Komandora hodia egin: " #: recvattach.c:710 #, c-format -msgid "I dont know how to print %s attachments!" +msgid "I don't know how to print %s attachments!" msgstr "Ez dakit nola inprimatu %s gehigarriak!" #: recvattach.c:775 diff --git a/src/mutt-1.5.21/po/fr.gmo b/src/mutt-1.5.21/po/fr.gmo Binary files differ. diff --git a/src/mutt-1.5.21/po/fr.po b/src/mutt-1.5.21/po/fr.po @@ -3958,7 +3958,7 @@ msgstr "Passer # , c-format #: recvattach.c:710 #, c-format -msgid "I dont know how to print %s attachments!" +msgid "I don't know how to print %s attachments!" msgstr "Je ne sais pas comment imprimer %s attachements!" #: recvattach.c:775 diff --git a/src/mutt-1.5.21/po/ga.gmo b/src/mutt-1.5.21/po/ga.gmo Binary files differ. diff --git a/src/mutt-1.5.21/po/ga.po b/src/mutt-1.5.21/po/ga.po @@ -3809,7 +3809,7 @@ msgstr "P #: recvattach.c:710 #, c-format -msgid "I dont know how to print %s attachments!" +msgid "I don't know how to print %s attachments!" msgstr "N eol dom conas a phriontil iatin %s!" #: recvattach.c:775 diff --git a/src/mutt-1.5.21/po/gl.gmo b/src/mutt-1.5.21/po/gl.gmo Binary files differ. diff --git a/src/mutt-1.5.21/po/gl.po b/src/mutt-1.5.21/po/gl.po @@ -3912,7 +3912,7 @@ msgstr "Canalizar a: " #: recvattach.c:710 #, c-format -msgid "I dont know how to print %s attachments!" +msgid "I don't know how to print %s attachments!" msgstr "Non sei cmo imprimir adxuntos %s!" #: recvattach.c:775 diff --git a/src/mutt-1.5.21/po/hu.gmo b/src/mutt-1.5.21/po/hu.gmo Binary files differ. diff --git a/src/mutt-1.5.21/po/hu.po b/src/mutt-1.5.21/po/hu.po @@ -3888,7 +3888,7 @@ msgstr " #: recvattach.c:710 #, c-format -msgid "I dont know how to print %s attachments!" +msgid "I don't know how to print %s attachments!" msgstr "Nem tudom hogyan kell nyomtatni a(z) %s csatolst!" #: recvattach.c:775 diff --git a/src/mutt-1.5.21/po/id.gmo b/src/mutt-1.5.21/po/id.gmo Binary files differ. diff --git a/src/mutt-1.5.21/po/id.po b/src/mutt-1.5.21/po/id.po @@ -3773,7 +3773,7 @@ msgstr "Pipe ke: " #: recvattach.c:710 #, c-format -msgid "I dont know how to print %s attachments!" +msgid "I don't know how to print %s attachments!" msgstr "Saya tidak tahu bagaimana mencetak lampiran %s!" #: recvattach.c:775 diff --git a/src/mutt-1.5.21/po/it.gmo b/src/mutt-1.5.21/po/it.gmo Binary files differ. diff --git a/src/mutt-1.5.21/po/it.po b/src/mutt-1.5.21/po/it.po @@ -3859,7 +3859,7 @@ msgstr "Manda con una pipe a: " #: recvattach.c:710 #, c-format -msgid "I dont know how to print %s attachments!" +msgid "I don't know how to print %s attachments!" msgstr "Non so come stampare allegati %s!" #: recvattach.c:775 diff --git a/src/mutt-1.5.21/po/ja.gmo b/src/mutt-1.5.21/po/ja.gmo Binary files differ. diff --git a/src/mutt-1.5.21/po/ja.po b/src/mutt-1.5.21/po/ja.po @@ -3797,7 +3797,7 @@ msgstr " #: recvattach.c:710 #, c-format -msgid "I dont know how to print %s attachments!" +msgid "I don't know how to print %s attachments!" msgstr "ɤΤ褦źեե %s 뤫!" #: recvattach.c:775 diff --git a/src/mutt-1.5.21/po/ko.gmo b/src/mutt-1.5.21/po/ko.gmo Binary files differ. diff --git a/src/mutt-1.5.21/po/ko.po b/src/mutt-1.5.21/po/ko.po @@ -3863,7 +3863,7 @@ msgstr " #: recvattach.c:710 #, c-format -msgid "I dont know how to print %s attachments!" +msgid "I don't know how to print %s attachments!" msgstr "÷ι %s !" #: recvattach.c:775 diff --git a/src/mutt-1.5.21/po/lt.gmo b/src/mutt-1.5.21/po/lt.gmo Binary files differ. diff --git a/src/mutt-1.5.21/po/lt.po b/src/mutt-1.5.21/po/lt.po @@ -3904,7 +3904,7 @@ msgstr "Pipe #: recvattach.c:710 #, c-format -msgid "I dont know how to print %s attachments!" +msgid "I don't know how to print %s attachments!" msgstr "A neinau kaip spausdinti %s priedus!" #: recvattach.c:775 diff --git a/src/mutt-1.5.21/po/mutt.pot b/src/mutt-1.5.21/po/mutt.pot @@ -3620,7 +3620,7 @@ msgstr "" #: recvattach.c:710 #, c-format -msgid "I dont know how to print %s attachments!" +msgid "I don't know how to print %s attachments!" msgstr "" #: recvattach.c:775 diff --git a/src/mutt-1.5.21/po/nl.gmo b/src/mutt-1.5.21/po/nl.gmo Binary files differ. diff --git a/src/mutt-1.5.21/po/nl.po b/src/mutt-1.5.21/po/nl.po @@ -3771,7 +3771,7 @@ msgstr "Doorgeven aan (pipe): " #: recvattach.c:710 #, c-format -msgid "I dont know how to print %s attachments!" +msgid "I don't know how to print %s attachments!" msgstr "Kan %s bijlagen niet afdrukken!" #: recvattach.c:775 diff --git a/src/mutt-1.5.21/po/pl.gmo b/src/mutt-1.5.21/po/pl.gmo Binary files differ. diff --git a/src/mutt-1.5.21/po/pl.po b/src/mutt-1.5.21/po/pl.po @@ -3788,7 +3788,7 @@ msgstr "Wy #: recvattach.c:710 #, c-format -msgid "I dont know how to print %s attachments!" +msgid "I don't know how to print %s attachments!" msgstr "Nie wiem jak wydrukowa %s zacznikw!" #: recvattach.c:775 diff --git a/src/mutt-1.5.21/po/pt_BR.gmo b/src/mutt-1.5.21/po/pt_BR.gmo Binary files differ. diff --git a/src/mutt-1.5.21/po/pt_BR.po b/src/mutt-1.5.21/po/pt_BR.po @@ -3932,7 +3932,7 @@ msgstr "Passar por cano a: " #: recvattach.c:710 #, c-format -msgid "I dont know how to print %s attachments!" +msgid "I don't know how to print %s attachments!" msgstr "Eu no sei como imprimir anexos %s!" #: recvattach.c:775 diff --git a/src/mutt-1.5.21/po/ru.gmo b/src/mutt-1.5.21/po/ru.gmo Binary files differ. diff --git a/src/mutt-1.5.21/po/ru.po b/src/mutt-1.5.21/po/ru.po @@ -3795,7 +3795,7 @@ msgstr " #: recvattach.c:710 #, c-format -msgid "I dont know how to print %s attachments!" +msgid "I don't know how to print %s attachments!" msgstr " %s !" #: recvattach.c:775 diff --git a/src/mutt-1.5.21/po/sk.gmo b/src/mutt-1.5.21/po/sk.gmo Binary files differ. diff --git a/src/mutt-1.5.21/po/sk.po b/src/mutt-1.5.21/po/sk.po @@ -3920,7 +3920,7 @@ msgstr "Presmerova #: recvattach.c:710 #, c-format -msgid "I dont know how to print %s attachments!" +msgid "I don't know how to print %s attachments!" msgstr "Neviem ako tlai prlohy %s!" #: recvattach.c:775 diff --git a/src/mutt-1.5.21/po/sv.gmo b/src/mutt-1.5.21/po/sv.gmo Binary files differ. diff --git a/src/mutt-1.5.21/po/sv.po b/src/mutt-1.5.21/po/sv.po @@ -3784,7 +3784,7 @@ msgstr "Skicka genom rör till: " #: recvattach.c:710 #, c-format -msgid "I dont know how to print %s attachments!" +msgid "I don't know how to print %s attachments!" msgstr "Jag vet inte hur %s bilagor ska skrivas ut!" #: recvattach.c:775 diff --git a/src/mutt-1.5.21/po/tr.gmo b/src/mutt-1.5.21/po/tr.gmo Binary files differ. diff --git a/src/mutt-1.5.21/po/tr.po b/src/mutt-1.5.21/po/tr.po @@ -3806,7 +3806,7 @@ msgstr "Borula: " #: recvattach.c:710 #, c-format -msgid "I dont know how to print %s attachments!" +msgid "I don't know how to print %s attachments!" msgstr "%s eklerinin nasıl yazdırılacağı bilinmiyor!" #: recvattach.c:775 diff --git a/src/mutt-1.5.21/po/uk.gmo b/src/mutt-1.5.21/po/uk.gmo Binary files differ. diff --git a/src/mutt-1.5.21/po/uk.po b/src/mutt-1.5.21/po/uk.po @@ -3846,7 +3846,7 @@ msgstr " #: recvattach.c:710 #, c-format -msgid "I dont know how to print %s attachments!" +msgid "I don't know how to print %s attachments!" msgstr " , %s!" #: recvattach.c:775 diff --git a/src/mutt-1.5.21/po/zh_CN.gmo b/src/mutt-1.5.21/po/zh_CN.gmo Binary files differ. diff --git a/src/mutt-1.5.21/po/zh_CN.po b/src/mutt-1.5.21/po/zh_CN.po @@ -3763,7 +3763,7 @@ msgstr "通过管道传给:" #: recvattach.c:710 #, c-format -msgid "I dont know how to print %s attachments!" +msgid "I don't know how to print %s attachments!" msgstr "我不知道要怎么打印附件 %s!" #: recvattach.c:775 diff --git a/src/mutt-1.5.21/po/zh_TW.gmo b/src/mutt-1.5.21/po/zh_TW.gmo Binary files differ. diff --git a/src/mutt-1.5.21/po/zh_TW.po b/src/mutt-1.5.21/po/zh_TW.po @@ -3900,7 +3900,7 @@ msgstr "導引至:" #: recvattach.c:710 #, c-format -msgid "I dont know how to print %s attachments!" +msgid "I don't know how to print %s attachments!" msgstr "我不知道要怎麼列印 %s 附件!" #: recvattach.c:775 diff --git a/src/mutt-1.5.21/recvattach.c b/src/mutt-1.5.21/recvattach.c @@ -707,7 +707,7 @@ static int can_print (BODY *top, int tag) { if (!mutt_can_decode (top)) { - mutt_error (_("I dont know how to print %s attachments!"), type); + mutt_error (_("I don't know how to print %s attachments!"), type); return (0); } } diff --git a/src/mutt-1.5.21/score.c b/src/mutt-1.5.21/score.c @@ -133,7 +133,7 @@ void mutt_score_message (CONTEXT *ctx, HEADER *hdr, int upd_ctx) hdr->score = 0; /* in case of re-scoring */ for (tmp = Score; tmp; tmp = tmp->next) { - if (mutt_pattern_exec (tmp->pat, 0, NULL, hdr) > 0) + if (mutt_pattern_exec (tmp->pat, M_MATCH_FULL_ADDRESS, NULL, hdr) > 0) { if (tmp->exact || tmp->val == 9999 || tmp->val == -9999) { diff --git a/src/mutt-1.5.21/sendlib.c b/src/mutt-1.5.21/sendlib.c @@ -1799,7 +1799,7 @@ static int write_one_header (FILE *fp, int pfxw, int max, int wraplen, else { t = strchr (start, ':'); - if (t > end) + if (!t || t > end) { dprint (1, (debugfile, "mwoh: warning: header not in " "'key: value' format!\n")); @@ -2062,7 +2062,7 @@ int mutt_write_rfc822_header (FILE *fp, ENVELOPE *env, BODY *attach, if (mode == 0 && !privacy && option (OPTXMAILER) && !has_agent) { /* Add a vanity header */ - fprintf (fp, "User-Agent: Jaro Mail - http://jaromail.dyne.org\n", MUTT_VERSION, ReleaseDate); + fprintf (fp, "User-Agent: Jaro Mail (http://jaromail.dyne.org)\n"); } return (ferror (fp) == 0 ? 0 : -1);