X-Git-Url: https://git.llucax.com/software/mutt-debian.git/blobdiff_plain/19304f7c526fbe36ba0db2fb80bcaf3bd974d81d..ce48ac0f18ae018709253b0f14500c9e3cd1754c:/attach.c diff --git a/attach.c b/attach.c index 5acc17b..106d68f 100644 --- a/attach.c +++ b/attach.c @@ -76,8 +76,8 @@ int mutt_get_tmp_attachment (BODY *a) else mutt_perror(fpin ? tempfile : a->filename); - if(fpin) fclose(fpin); - if(fpout) fclose(fpout); + if(fpin) safe_fclose (&fpin); + if(fpout) safe_fclose (&fpout); return a->unlink ? 0 : -1; } @@ -176,8 +176,8 @@ int mutt_compose_attachment (BODY *a) goto bailout; } mutt_copy_stream (fp, tfp); - fclose (fp); - fclose (tfp); + safe_fclose (&fp); + safe_fclose (&tfp); mutt_unlink (a->filename); if (mutt_rename_file (tempfile, a->filename) != 0) { @@ -416,7 +416,7 @@ int mutt_view_attachment (FILE *fp, BODY *a, int flag, HEADER *hdr, int use_pipe = 0; int use_pager = 1; char type[STRING]; - char command[STRING]; + char command[HUGE_STRING]; char descrip[STRING]; char *fname; rfc1524_entry *entry = NULL; @@ -551,11 +551,11 @@ int mutt_view_attachment (FILE *fp, BODY *a, int flag, HEADER *hdr, { if (a->description) snprintf (descrip, sizeof (descrip), - "---Command: %-20.20s Description: %s", + _("---Command: %-20.20s Description: %s"), command, a->description); else snprintf (descrip, sizeof (descrip), - "---Command: %-30.30s Attachment: %s", command, type); + _("---Command: %-30.30s Attachment: %s"), command, type); } if ((mutt_wait_filter (thepid) || (entry->needsterminal && @@ -601,10 +601,10 @@ int mutt_view_attachment (FILE *fp, BODY *a, int flag, HEADER *hdr, if (a->description) strfcpy (descrip, a->description, sizeof (descrip)); else if (a->filename) - snprintf (descrip, sizeof (descrip), "---Attachment: %s : %s", + snprintf (descrip, sizeof (descrip), _("---Attachment: %s: %s"), a->filename, type); else - snprintf (descrip, sizeof (descrip), "---Attachment: %s", type); + snprintf (descrip, sizeof (descrip), _("---Attachment: %s"), type); } /* We only reach this point if there have been no errors */ @@ -798,21 +798,25 @@ int mutt_save_attachment (FILE *fp, BODY *m, char *path, int flags, HEADER *hdr) else { /* In recv mode, extract from folder and decode */ - + STATE s; - + memset (&s, 0, sizeof (s)); + s.flags |= M_CHARCONV; + if ((s.fpout = mutt_save_attachment_open (path, flags)) == NULL) { mutt_perror ("fopen"); + mutt_sleep (2); return (-1); } fseeko ((s.fpin = fp), m->offset, 0); mutt_decode_attachment (m, &s); - + if (fclose (s.fpout) != 0) { mutt_perror ("fclose"); + mutt_sleep (2); return (-1); } } @@ -884,7 +888,7 @@ int mutt_decode_save_attachment (FILE *fp, BODY *m, char *path, if (stat (m->filename, &st) == -1) { mutt_perror ("stat"); - fclose (s.fpout); + safe_fclose (&s.fpout); return (-1); } @@ -915,7 +919,7 @@ int mutt_decode_save_attachment (FILE *fp, BODY *m, char *path, mutt_body_handler (m, &s); - fclose (s.fpout); + safe_fclose (&s.fpout); if (fp == NULL) { m->length = 0; @@ -926,7 +930,7 @@ int mutt_decode_save_attachment (FILE *fp, BODY *m, char *path, m->parts = saved_parts; m->hdr = saved_hdr; } - fclose (s.fpin); + safe_fclose (&s.fpin); } return (0);