if (ctx.magic == M_MBOX || ctx.magic == M_MMDF || ctx.magic == M_KENDRA)
chflags = CH_FROM;
chflags |= (ctx.magic == M_MAILDIR ? CH_NOSTATUS : CH_UPDATE);
- if ((r = _mutt_copy_message (msg->fp, fp, hn, hn->content, 0, chflags)) == 0)
+ if (_mutt_copy_message (msg->fp, fp, hn, hn->content, 0, chflags) == 0
+ && mx_commit_message (msg, &ctx) == 0)
mutt_message _("Attachment saved.");
+ else
+ r = -1;
- mx_commit_message (msg, &ctx);
mx_close_message (&msg);
mx_close_mailbox (&ctx);
return r;
{
case M_MMDF:
{
- fputs (MMDF_SEP, msg->fp);
+ if (fputs (MMDF_SEP, msg->fp) == EOF)
+ r = -1;
break;
}
case M_MBOX:
{
- fputc ('\n', msg->fp);
+ if (fputc ('\n', msg->fp) == EOF)
+ r = -1;
break;
}
case M_KENDRA:
{
- fputs (KENDRA_SEP, msg->fp);
+ if (fputs (KENDRA_SEP, msg->fp) == EOF)
+ r = -1;
break;
}
break;
}
}
+
+ if (r == 0 && (ctx->magic == M_MBOX || ctx->magic == M_MMDF || ctx->magic == M_KENDRA)
+ && fflush (msg->fp) == EOF)
+ {
+ mutt_perror _("Can't write message");
+ r = -1;
+ }
+
return r;
}
if (msg)
{
- mx_commit_message (msg, &ctx);
+ if (mx_commit_message (msg, &ctx) != 0)
+ err = 1;
mx_close_message (&msg);
}
mx_close_mailbox (&ctx);
r = mutt_write_mime_body (hdr->content, msg->fp);
}
- mx_commit_message (msg, &f);
+ if (mx_commit_message (msg, &f) != 0)
+ r = -1;
mx_close_message (&msg);
mx_close_mailbox (&f);