X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=commands.c;h=fb62f078832c6e00c16364848c5f349b4ee09fc5;hp=13adbfadd5ae8932e8d2dfb590a0b9460973b760;hb=bad8211c28d4b229878e0264012009493db48da5;hpb=e16543ec43d80694edd9d727ccbd36079198a82b diff --git a/commands.c b/commands.c index 13adbfa..fb62f07 100644 --- a/commands.c +++ b/commands.c @@ -92,7 +92,7 @@ int mutt_display_message (HEADER * cur) } } - if (!Pager || safe_strcmp (Pager, "builtin") == 0) + if (!Pager || mutt_strcmp (Pager, "builtin") == 0) builtin = 1; else { mutt_make_string (buf, sizeof (buf), NONULL (PagerFmt), Context, cur); @@ -164,6 +164,7 @@ int mutt_display_message (HEADER * cur) if (WithCrypto) { /* update crypto information for this message */ + cur->security &= ~(GOODSIGN|BADSIGN); cur->security |= crypt_query (cur->content); /* Remove color cache for this message, in case there @@ -196,7 +197,7 @@ int mutt_display_message (HEADER * cur) else if (cur->security & PARTSIGN) mutt_message (_ ("Warning: Part of this message has not been signed.")); - else + else if (cur->security & SIGN) mutt_message (_("PGP signature could NOT be verified.")); } @@ -641,30 +642,31 @@ static void set_copy_flags (HEADER * hdr, int decode, int decrypt, } } -void _mutt_save_message (HEADER * h, CONTEXT * ctx, int delete, int decode, - int decrypt) -{ +int _mutt_save_message (HEADER * h, CONTEXT * ctx, int delete, int decode, + int decrypt) { int cmflags, chflags; + int rc; set_copy_flags (h, decode, decrypt, &cmflags, &chflags); if (decode || decrypt) mutt_parse_mime_message (Context, h); - if (mutt_append_message (ctx, Context, h, cmflags, chflags) == 0) { - if (delete) { - mutt_set_flag (Context, h, M_DELETE, 1); - if (option (OPTDELETEUNTAG)) - mutt_set_flag (Context, h, M_TAG, 0); - } + if ((rc = mutt_append_message (ctx, Context, h, cmflags, chflags)) != 0) + return rc; + + if (delete) { + mutt_set_flag (Context, h, M_DELETE, 1); + if (option (OPTDELETEUNTAG)) + mutt_set_flag (Context, h, M_TAG, 0); mutt_set_flag (Context, h, M_APPENDED, 1); } + return (0); } /* returns 0 if the copy/save was successful, or -1 on error/abort */ int mutt_save_message (HEADER * h, int delete, - int decode, int decrypt, int *redraw) -{ + int decode, int decrypt, int *redraw) { int i, need_buffy_cleanup; int need_passphrase = 0, app = 0; char prompt[SHORT_STRING], buf[_POSIX_PATH_MAX]; @@ -736,7 +738,7 @@ int mutt_save_message (HEADER * h, int delete, /* This is an undocumented feature of ELM pointed out to me by Felix von * Leitner */ - if (safe_strcmp (buf, ".") == 0) + if (mutt_strcmp (buf, ".") == 0) strfcpy (buf, LastSaveFolder, sizeof (buf)); else strfcpy (LastSaveFolder, buf, sizeof (LastSaveFolder)); @@ -771,15 +773,21 @@ int mutt_save_message (HEADER * h, int delete, #endif if (mx_open_mailbox (buf, M_APPEND, &ctx) != NULL) { - if (h) - _mutt_save_message (h, &ctx, delete, decode, decrypt); - else { + if (h) { + if (_mutt_save_message (h, &ctx, delete, decode, decrypt) != 0) { + mx_close_mailbox (&ctx, NULL); + return (-1); + } + } else { for (i = 0; i < Context->vcount; i++) { if (Context->hdrs[Context->v2r[i]]->tagged) { mutt_message_hook (Context, Context->hdrs[Context->v2r[i]], M_MESSAGEHOOK); - _mutt_save_message (Context->hdrs[Context->v2r[i]], &ctx, delete, - decode, decrypt); + if (_mutt_save_message (Context->hdrs[Context->v2r[i]], &ctx, delete, + decode, decrypt) != 0) { + mx_close_mailbox (&ctx, NULL); + return (-1); + } } } } @@ -889,8 +897,8 @@ int mutt_update_list_file (char *filename, char *section, char *key, done++; break; } - else if (key && !strncmp (buf, key, safe_strlen (key)) && - (!*key || buf[safe_strlen (key)] == ' ')) { + else if (key && !strncmp (buf, key, mutt_strlen (key)) && + (!*key || buf[mutt_strlen (key)] == ' ')) { c = buf; ext = 0; while (*c && (*c != '\r') && (*c != '\n')) @@ -934,7 +942,7 @@ int mutt_update_list_file (char *filename, char *section, char *key, void mutt_version (void) { - mutt_message ("Mutt-ng %s (%s)", MUTT_VERSION, ReleaseDate); + mutt_message ("Mutt-ng %s (%s) based on Mutt 1.5.9", MUTT_VERSION, ReleaseDate); } void mutt_edit_content_type (HEADER * h, BODY * b, FILE * fp) @@ -959,7 +967,7 @@ void mutt_edit_content_type (HEADER * h, BODY * b, FILE * fp) size_t l; for (p = b->parameter; p; p = p->next) { - l = safe_strlen (buf); + l = mutt_strlen (buf); rfc822_cat (tmp, sizeof (tmp), p->value, MimeSpecials); snprintf (buf + l, sizeof (buf) - l, "; %s=%s", p->attribute, tmp);