Use good m_ functions, because it smell like a flower, version 2.
[apps/madmutt.git] / send.c
diff --git a/send.c b/send.c
index 62748d4..1773589 100644 (file)
--- a/send.c
+++ b/send.c
@@ -8,7 +8,6 @@
  */
 
 #include <lib-lib/lib-lib.h>
-#include <utime.h>
 
 #include <lib-mime/mime.h>
 #include <lib-mime/rfc3676.h>
 #include "attach.h"
 
 #ifdef USE_NNTP
-#include "nntp.h"
+#include <nntp/nntp.h>
 #endif
 
-#ifdef MIXMASTER
 #include "remailer.h"
-#endif
-
 
 static void append_signature (FILE * f)
 {
@@ -48,7 +44,7 @@ static void append_signature (FILE * f)
     else if (SignOffString)
       fputs ("\n", f);
     mutt_copy_stream (tmpfp, f);
-    fclose (tmpfp);
+    m_fclose(&tmpfp);
     if (thepid != -1)
       mutt_wait_filter (thepid);
   }
@@ -596,8 +592,10 @@ void mutt_make_forward_subject (ENVELOPE * env, CONTEXT * ctx, HEADER * cur)
   m_strreplace(&env->subject, buffer);
 }
 
-void mutt_make_misc_reply_headers (ENVELOPE * env, CONTEXT * ctx,
-                                   HEADER * cur, ENVELOPE * curenv)
+void mutt_make_misc_reply_headers (ENVELOPE * env,
+                                   CONTEXT * ctx __attribute__ ((unused)),
+                                   HEADER * cur __attribute__ ((unused)),
+                                   ENVELOPE * curenv)
 {
   /* This takes precedence over a subject that might have
    * been taken from a List-Post header.  Is that correct?
@@ -605,7 +603,7 @@ void mutt_make_misc_reply_headers (ENVELOPE * env, CONTEXT * ctx,
   if (curenv->real_subj) {
     p_delete(&env->subject);
     env->subject = p_new(char, m_strlen(curenv->real_subj) + 5);
-    sprintf (env->subject, "Re: %s", curenv->real_subj);        /* __SPRINTF_CHECKED__ */
+    sprintf (env->subject, "Re: %s", curenv->real_subj);
   }
   else if (!env->subject)
     env->subject = m_strdup("Re: your mail");
@@ -835,13 +833,13 @@ static int generate_body (FILE * tempfp,        /* stream for outgoing message *
       return -1;
   }
   else if (flags & SENDKEY) {
-    BODY *tmp;
+    BODY *btmp;
 
-    if ((tmp = crypt_pgp_make_key_attachment (NULL)) == NULL)
+    if ((btmp = crypt_pgp_make_key_attachment (NULL)) == NULL)
       return -1;
 
-    tmp->next = msg->content;
-    msg->content = tmp;
+    btmp->next = msg->content;
+    msg->content = btmp;
   }
 
   mutt_clear_error ();
@@ -954,7 +952,7 @@ address_t *mutt_default_from (void)
   else if (option (OPTUSEDOMAIN)) {
     adr = address_new ();
     adr->mailbox = p_new(char, m_strlen(Username) + m_strlen(fqdn) + 2);
-    sprintf (adr->mailbox, "%s@%s", NONULL (Username), NONULL (fqdn));  /* __SPRINTF_CHECKED__ */
+    sprintf (adr->mailbox, "%s@%s", NONULL (Username), NONULL (fqdn));
   }
   else {
     adr = address_new ();
@@ -971,36 +969,28 @@ static int send_message (HEADER * msg)
   int i;
 
   /* Write out the message in MIME form. */
-  mutt_mktemp (tempfile);
-  if ((tempfp = safe_fopen (tempfile, "w")) == NULL)
-    return (-1);
+  tempfp = m_tempfile(tempfile, sizeof(tempfile), NONULL(Tempdir), NULL);
+  if (!tempfp)
+    return -1;
 
-#ifdef MIXMASTER
   mutt_write_rfc822_header (tempfp, msg->env, msg->content, 0,
                             msg->chain ? 1 : 0);
-#endif
-#ifndef MIXMASTER
-  mutt_write_rfc822_header (tempfp, msg->env, msg->content, 0, 0);
-#endif
-
   fputc ('\n', tempfp);         /* tie off the header. */
 
   if ((mutt_write_mime_body (msg->content, tempfp) == -1)) {
-    fclose (tempfp);
+    m_fclose(&tempfp);
     unlink (tempfile);
     return (-1);
   }
 
-  if (fclose (tempfp) != 0) {
-    mutt_perror (tempfile);
+  if (m_fclose(&tempfp) != 0) {
+    mutt_perror (_("Can't create temporary file"));
     unlink (tempfile);
     return (-1);
   }
 
-#ifdef MIXMASTER
   if (msg->chain)
     return mix_send_message (msg->chain, tempfile);
-#endif
 
   i = mutt_invoke_mta (msg->env->from, msg->env->to, msg->env->cc,
                        msg->env->bcc, tempfile,
@@ -1046,14 +1036,14 @@ static void fix_end_of_file (const char *data)
   fseeko (fp, -1, SEEK_END);
   if ((c = fgetc (fp)) != '\n')
     fputc ('\n', fp);
-  safe_fclose (&fp);
+  m_fclose(&fp);
 }
 
 int mutt_resend_message (FILE * fp, CONTEXT * ctx, HEADER * cur)
 {
   HEADER *msg = header_new();
 
-  if (mutt_prepare_template (fp, ctx, msg, cur, 1) < 0)
+  if (mutt_prepare_template (fp, ctx, msg, cur, option(OPTWEED)) < 0)
     return -1;
 
   return ci_send_message (SENDRESEND, msg, NULL, ctx, cur);
@@ -1065,7 +1055,6 @@ int ci_send_message (int flags, /* send mode */
                      CONTEXT * ctx,     /* current mailbox */
                      HEADER * cur)
 {                               /* current message */
-  char buffer[LONG_STRING];
   char fcc[_POSIX_PATH_MAX] = "";       /* where to copy this message */
   FILE *tempfp = NULL;
   BODY *pbody;
@@ -1177,12 +1166,11 @@ int ci_send_message (int flags, /* send mode */
     }
 
     if (!tempfile) {
-      mutt_mktemp (buffer);
-      tempfp = safe_fopen (buffer, "w+");
+      char buffer[_POSIX_PATH_MAX];
+      tempfp = m_tempfile(buffer, sizeof(buffer), NONULL(Tempdir), NULL);
       msg->content->filename = m_strdup(buffer);
-    }
-    else {
-      tempfp = safe_fopen (tempfile, "a+");
+    } else {
+      tempfp = safe_fopen(tempfile, "a+");
       msg->content->filename = m_strdup(tempfile);
     }
 
@@ -1372,11 +1360,11 @@ int ci_send_message (int flags, /* send mode */
     msg->env->from->personal = m_strdup(Realname);
 
   if (!(flags & SENDKEY))
-    safe_fclose (&tempfp);
+    m_fclose(&tempfp);
 
   if (!(flags & SENDBATCH)) {
     struct stat st;
-    time_t mtime = mutt_decrease_mtime (msg->content->filename, NULL);
+    time_t mtime = m_decrease_mtime(msg->content->filename, NULL);
 
     mutt_update_encoding (msg->content);
 
@@ -1787,7 +1775,7 @@ cleanup:
     }
   }
 
-  safe_fclose (&tempfp);
+  m_fclose(&tempfp);
   header_delete(&msg);
 
   return rv;