* please see the file GPL in the top level source directory.
*/
-#if HAVE_CONFIG_H
-# include "config.h"
-#endif
-
#include <lib-lib/lib-lib.h>
#include <lib-mime/mime.h>
#include <lib-ui/curses.h>
#include <lib-ui/enter.h>
#include <lib-ui/menu.h>
+#include <lib-mx/mx.h>
+
+#include <lib-sys/unix.h>
#include "mutt.h"
#include "handler.h"
#include "recvattach.h"
#include "attach.h"
-#include "mx.h"
#include "copy.h"
#include <lib-crypt/crypt.h>
-#include <ctype.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/wait.h>
-#include <sys/stat.h>
-#include <string.h>
-#include <errno.h>
-
static const char *Mailbox_is_read_only = N_("Mailbox is read-only.");
static char LastSaveFolder[_POSIX_PATH_MAX] = "";
{NULL, OP_NULL}
};
-static int mutt_extract_path (char *filename, char *path)
+static int mutt_extract_path (char *filename, char *path, ssize_t pathlen)
{
char *tmp = p_new(char, _POSIX_PATH_MAX);
char *help_ptr;
if (*filename == '/') {
*help_ptr++ = *filename++;
*help_ptr++ = '\0';
- strcat (path, tmp);
+ m_strcat(path, pathlen, tmp);
help_ptr = tmp;
}
*help_ptr++ = *filename++;
return -1;
}
else {
- mutt_extract_path (buf, path);
+ mutt_extract_path (buf, path, sizeof(path));
m_strcpy(LastSaveFolder, sizeof(LastSaveFolder), path);
}
rc = mutt_save_attachment (fp, top, tfile, append, hdr);
if (rc == 0 && AttachSep && (fpout = fopen (tfile, "a")) != NULL) {
fprintf (fpout, "%s", AttachSep);
- fclose (fpout);
+ m_fclose(&fpout);
}
}
else {
rc = mutt_save_attachment (fp, top, tfile, M_SAVE_APPEND, hdr);
if (rc == 0 && AttachSep && (fpout = fopen (tfile, "a")) != NULL) {
fprintf (fpout, "%s", AttachSep);
- fclose (fpout);
+ m_fclose(&fpout);
}
}
}
return;
}
mutt_copy_stream (ifp, state->fpout);
- fclose (ifp);
+ m_fclose(&ifp);
if (AttachSep)
state_puts (AttachSep, state);
}
mutt_endwin (NULL);
thepid = mutt_create_filter (buf, &state.fpout, NULL, NULL);
pipe_attachment_list (buf, fp, tag, top, afilter, &state);
- fclose (state.fpout);
+ m_fclose(&state.fpout);
if (mutt_wait_filter (thepid) != 0 || option (OPTWAITKEY))
mutt_any_key_to_continue (NULL);
}
0) {
if ((ifp = fopen (newfile, "r")) != NULL) {
mutt_copy_stream (ifp, state->fpout);
- fclose (ifp);
+ m_fclose(&ifp);
if (AttachSep)
state_puts (AttachSep, state);
}
p_clear(&state, 1);
thepid = mutt_create_filter (NONULL (PrintCmd), &state.fpout, NULL, NULL);
print_attachment_list (fp, tag, top, &state);
- fclose (state.fpout);
+ m_fclose(&state.fpout);
if (mutt_wait_filter (thepid) != 0 || option (OPTWAITKEY))
mutt_any_key_to_continue (NULL);
}
{
ATTACHPTR **idx = *idxp;
-#if 0
- int old_optweed = option (OPTWEED);
-
- set_option (OPTWEED);
-#endif
-
do {
switch (op) {
case OP_DISPLAY_HEADERS:
}
while (op != OP_NULL);
-#if 0
- if (option (OPTWEED) != old_optweed)
- toggle_option (OPTWEED);
-#endif
return op;
}
secured = !crypt_smime_decrypt_mime (_fp, &fp, _cur, &cur);
body_list_wipe(&_cur);
- safe_fclose (&_fp);
+ m_fclose(&_fp);
}
}
else
idxmax = 0;
if (need_secured && secured) {
- fclose (fp);
+ m_fclose(&fp);
body_list_wipe(&cur);
}