* please see the file GPL in the top level source directory.
*/
-#define _SENDLIB_C 1
-
#include <lib-lib/lib-lib.h>
#include <signal.h>
#include <lib-sys/mutt_signal.h>
#include <lib-mime/mime.h>
#include <lib-ui/curses.h>
+#include <lib-mx/mx.h>
#include <lib-crypt/crypt.h>
#include "mutt.h"
#include "handler.h"
#include "recvattach.h"
-#include "mx.h"
#include "copy.h"
#include "pager.h"
#include "charset.h"
#endif /* USE_LIBESMTP */
#ifdef USE_NNTP
-#include <nntp.h>
+#include <nntp/nntp.h>
#endif
#ifdef HAVE_SYSEXITS_H
#define EX_OK 0
#endif
-/* If you are debugging this file, comment out the following line. */
-/*#define NDEBUG*/
-
-#ifdef NDEBUG
-#define assert(x)
-#else
-#include <assert.h>
-#endif
-
-#define DISPOSITION(X) X==DISPATTACH?"attachment":"inline"
-
static void transform_to_7bit (BODY * a, FILE * fpin);
static void encode_quoted (fgetconv_t * fc, FILE * fout, int istext)
if (a->description)
fprintf (f, "Content-Description: %s\n", a->description);
+#define DISPOSITION(X) X==DISPATTACH?"attachment":"inline"
fprintf (f, "Content-Disposition: %s", DISPOSITION (a->disposition));
if (a->use_disp) {
ib = bufi;
ob = bufu, obl = sizeof (bufu);
n = my_iconv(cd1, ibl ? &ib : 0, &ibl, &ob, &obl);
- assert (n == -1 || !n);
if (n == -1 && ((errno != EINVAL && errno != E2BIG) || ib == bufi)) {
- assert (errno == EILSEQ ||
- (errno == EINVAL && ib == bufi && ibl < ssizeof (bufi)));
ret = -1;
break;
}
a->length = sb.st_size;
}
- mutt_mktemp (temp);
- if (!(fpout = safe_fopen (temp, "w+"))) {
- mutt_perror ("fopen");
+ fpout = m_tempfile(temp, sizeof(temp), NONULL(Tempdir), NULL);
+ if (!fpout) {
+ mutt_error(_("Could not create temporary file"));
goto cleanup;
}
a->noconv = 1;
a->force_charset = 1;
- mutt_mktemp (buff);
- if ((s.fpout = safe_fopen (buff, "w")) == NULL) {
- mutt_perror ("fopen");
+ s.fpout = m_tempfile(buff, sizeof(buff), NONULL(Tempdir), NULL);
+ if (!s.fpout) {
+ mutt_error(_("Could not create temporary file"));
return;
}
s.fpin = fpin;
{
char buf[SHORT_STRING];
char localpart[SHORT_STRING];
- unsigned int localpart_length;
const char *fqdn;
- if (!(fqdn = mutt_fqdn (0)))
- fqdn = NONULL (Hostname);
-
- localpart_length = sizeof (buf) - m_strlen(fqdn) - 4; /* the 4 characters are '<', '@', '>' and '\0' */
+ if (!(fqdn = mutt_fqdn(0)))
+ fqdn = NONULL(Hostname);
- mutt_gen_localpart (localpart, localpart_length, MsgIdFormat);
-
- snprintf (buf, sizeof (buf), "<%s@%s>", localpart, fqdn);
- return (m_strdup(buf));
+ mutt_gen_localpart(localpart, sizeof(localpart), MsgIdFormat);
+ snprintf(buf, sizeof(buf), "<%s@%s>", localpart, fqdn);
+ return m_strdup(buf);
}
static RETSIGTYPE alarm_handler (int sig)
if (!fp)
fp = msg->fp;
- mutt_mktemp (tempfile);
- if ((f = safe_fopen (tempfile, "w")) != NULL) {
+ f = m_tempfile(tempfile, sizeof(tempfile), NONULL(Tempdir), NULL);
+ if (f) {
int ch_flags = CH_XMIT | CH_NONEWLINE | CH_NOQFROM;
if (!option (OPTBOUNCEDELIVERED))
mutt_copy_bytes (fp, f, h->content->length);
fclose (f);
- ret = mutt_invoke_mta (env_from, to, NULL, NULL, tempfile,
- h->content->encoding == ENC8BIT);
+ ret = mutt_invoke_mta(env_from, to, NULL, NULL, tempfile,
+ h->content->encoding == ENC8BIT);
}
if (msg)
* the message body begins with "From "
*/
if (f.magic == M_MMDF || f.magic == M_MBOX) {
- mutt_mktemp (tempfile);
- if ((tempfp = safe_fopen (tempfile, "w+")) == NULL) {
- mutt_perror (tempfile);
+ tempfp = m_tempfile(tempfile, sizeof(tempfile), NONULL(Tempdir), NULL);
+ if (!tempfp) {
+ mutt_error(_("Could not create temporary file"));
mx_close_mailbox (&f, NULL);
- return (-1);
+ return -1;
}
}