m_dirname(LastSaveFolder, sizeof(LastSaveFolder), buf);
prompt = NULL;
- mutt_expand_path(buf, sizeof (buf));
+ mutt_expand_path(buf, sizeof(buf));
- is_message = (fp &&
- body->hdr &&
+ is_message = (fp && body->hdr &&
body->encoding != ENCBASE64 &&
body->encoding != ENCQUOTEDPRINTABLE &&
mutt_is_message_type(body));
struct stat st;
/* check to make sure that this file is really the one the user wants */
- if ((rc = mutt_save_confirm (buf, &st)) == 1) {
- prompt = _("Save to file: ");
- continue;
- }
- else if (rc == -1)
- return -1;
+ rc = mutt_save_confirm(buf, &st);
m_strcpy(tfile, sizeof(tfile), buf);
+ } else {
+ rc = mutt_check_overwrite(body->filename, buf, tfile, sizeof(tfile),
+ &append, directory);
}
- else {
- if ((rc =
- mutt_check_overwrite (body->filename, buf, tfile, sizeof (tfile),
- &append, directory)) == -1)
- return -1;
- else if (rc == 1) {
- prompt = _("Save to file: ");
- continue;
- }
+ if (rc == -1)
+ return -1;
+ if (rc == 1) {
+ prompt = _("Save to file: ");
+ continue;
}
mutt_message _("Saving...");
- if (mutt_save_attachment
- (fp, body, tfile, append,
- (hdr || !is_message) ? hdr : body->hdr) == 0) {
+ if (mutt_save_attachment(fp, body, tfile, append,
+ (hdr || !is_message) ? hdr : body->hdr) == 0)
+ {
mutt_message _("Attachment saved.");
-
return 0;
- }
- else {
+ } else {
prompt = _("Save to file: ");
continue;
}
m_fclose(&fpout);
}
}
- }
- else {
+ } else {
if (tag && menu && top->aptr) {
menu->oldcurrent = menu->current;
menu->current = top->aptr->num;
return;
}
mutt_mktemp (tfile);
+ } else {
+ tfile[0] = '\0';
}
- else
- tfile[0] = 0;
if (mutt_pipe_attachment (fp, body, command, tfile)) {
if (afilter) {
mutt_update_encoding (body);
mutt_message _("Attachment filtered.");
}
- }
- else {
+ } else {
if (afilter && tfile[0])
mutt_unlink (tfile);
}
mutt_decode_attachment (b, state);
if (AttachSep)
state_puts (AttachSep, state);
- }
- else {
+ } else {
if ((ifp = fopen (b->filename, "r")) == NULL) {
mutt_perror ("fopen");
return;
if (fp)
afilter = 0; /* sanity check: we can't filter in the recv case yet */
- buf[0] = 0;
+ buf[0] = '\0';
p_clear(&state, 1);
if (mutt_get_field ((afilter ? _("Filter through: ") : _("Pipe to: ")),
m_fclose(&state.fpout);
if (mutt_wait_filter (thepid) != 0 || option (OPTWAITKEY))
mutt_any_key_to_continue (NULL);
- }
- else
+ } else {
pipe_attachment_list (buf, fp, tag, top, afilter, &state);
+ }
}
-static int can_print (BODY * top, int tag)
+static int can_print(BODY * top, int tag)
{
- char type[STRING];
-
for (; top; top = top->next) {
- snprintf (type, sizeof (type), "%s/%s", TYPE (top), top->subtype);
+ char type[STRING];
+ int tok = mime_which_token(top->subtype, -1);
+
+ snprintf(type, sizeof(type), "%s/%s", TYPE(top), top->subtype);
+
if (!tag || top->tagged) {
- if (!rfc1524_mailcap_lookup (top, type, NULL, M_PRINT)) {
- if (ascii_strcasecmp ("text/plain", top->subtype) &&
- ascii_strcasecmp ("application/postscript", top->subtype)) {
- if (!mutt_can_decode (top)) {
- mutt_error (_("I dont know how to print %s attachments!"), type);
- return (0);
- }
- }
+ if (!rfc1524_mailcap_lookup(top, type, NULL, M_PRINT)
+ && !(top->type == TYPETEXT && tok == MIME_PLAIN)
+ && !(top->type == TYPEAPPLICATION && tok == MIME_POSTSCRIPT)
+ && !mutt_can_decode(top))
+ {
+ mutt_error(_("I dont know how to print %s attachments!"), type);
+ return 0;
}
}
else if (top->parts)
- return (can_print (top->parts, tag));
+ return (can_print(top->parts, tag));
if (!tag)
break;
}
- return (1);
+ return 1;
}
static void print_attachment_list (FILE * fp, int tag, BODY * top,
{
char type[STRING];
-
for (; top; top = top->next) {
if (!tag || top->tagged) {
+ int tok = mime_which_token(top->subtype, -1);
+
snprintf (type, sizeof (type), "%s/%s", TYPE (top), top->subtype);
if (!option (OPTATTACHSPLIT)
&& !rfc1524_mailcap_lookup (top, type, NULL, M_PRINT)) {
- if (!ascii_strcasecmp ("text/plain", top->subtype)
- || !ascii_strcasecmp ("application/postscript", top->subtype))
+ if ((top->type == TYPETEXT && tok == MIME_PLAIN)
+ || (top->type == TYPEAPPLICATION && tok == MIME_POSTSCRIPT)) {
pipe_attachment (fp, top, state);
- else if (mutt_can_decode (top)) {
+ } else
+ if (mutt_can_decode (top)) {
/* decode and print */
char newfile[_POSIX_PATH_MAX] = "";
}
mutt_unlink (newfile);
}
+ } else {
+ mutt_print_attachment(fp, top);
}
- else
- mutt_print_attachment (fp, top);
}
else if (top->parts)
print_attachment_list (fp, tag, top->parts, state);
pid_t thepid;
- if (query_quadoption
- (OPT_PRINT,
+ if (query_quadoption(OPT_PRINT,
tag ? _("Print tagged attachment(s)?") : _("Print attachment?")) !=
M_YES)
return;
menu->current = menu->max - 1;
menu_check_recenter (menu);
menu->redraw |= REDRAW_INDEX;
-
}
-
int
mutt_attach_display_loop (MUTTMENU * menu, int op, FILE * fp, HEADER * hdr,
BODY * cur, ATTACHPTR *** idxp, short *idxlen,
if ((msg = mx_open_message (Context, hdr->msgno)) == NULL)
return;
-
if ((hdr->security & ENCRYPT) ||
(mutt_is_application_smime (hdr->content) & SMIMEOPAQUE))
{
if (need_secured && !secured) {
mx_close_message (&msg);
mutt_error _("Can't decrypt encrypted message!");
-
return;
}
}