move signal.c into lib/sys
[apps/madmutt.git] / sendlib.c
index 6a25038..e911fed 100644 (file)
--- a/sendlib.c
+++ b/sendlib.c
 # include "config.h"
 #endif
 
+#include <string.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <errno.h>
+#include <ctype.h>
+#include <sys/stat.h>
+#include <signal.h>
+#include <sys/wait.h>
+#include <fcntl.h>
+#include <sys/utsname.h>
+
 #include <lib-lib/mem.h>
 #include <lib-lib/ascii.h>
 #include <lib-lib/str.h>
 #include <lib-lib/macros.h>
 #include <lib-lib/file.h>
+#include <lib-lib/debug.h>
+
+#include <lib-sys/exit.h>
+#include <lib-sys/mutt_signal.h>
 
 #include <lib-mime/mime.h>
 
+#include <lib-ui/curses.h>
+
 #include "mutt.h"
 #include "handler.h"
 #include "recvattach.h"
-#include "mutt_curses.h"
-#include "rfc2047.h"
 #include "mx.h"
 #include "copy.h"
 #include "pager.h"
 #include "charset.h"
-#include "mutt_crypt.h"
+#include <lib-crypt/crypt.h>
 #include "mutt_idna.h"
 
-#include "lib/debug.h"
-
-#include <string.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <errno.h>
-#include <ctype.h>
-#include <sys/stat.h>
-#include <signal.h>
-#include <sys/wait.h>
-#include <fcntl.h>
-#include <sys/utsname.h>
-
 #ifdef USE_LIBESMTP
 # include "mutt_libesmtp.h"
 #endif /* USE_LIBESMTP */
@@ -297,7 +299,7 @@ int mutt_write_mime_header (BODY * a, FILE * f)
       buffer[0] = 0;
       tmp = m_strdup(p->value);
       encode = rfc2231_encode_string (&tmp);
-      rfc822_cat (buffer, sizeof (buffer), tmp, MimeSpecials);
+      rfc822_strcpy(buffer, sizeof(buffer), tmp, MimeSpecials);
 
       /* Dirty hack to make messages readable by Outlook Express 
        * for the Mac: force quotes around the boundary parameter
@@ -349,7 +351,7 @@ int mutt_write_mime_header (BODY * a, FILE * f)
       buffer[0] = 0;
       tmp = m_strdup(t);
       encode = rfc2231_encode_string (&tmp);
-      rfc822_cat (buffer, sizeof (buffer), tmp, MimeSpecials);
+      rfc822_strcpy(buffer, sizeof(buffer), tmp, MimeSpecials);
       p_delete(&tmp);
       fprintf (f, "; filename%s=%s", encode ? "*" : "", buffer);
     }
@@ -364,9 +366,7 @@ int mutt_write_mime_header (BODY * a, FILE * f)
   return (ferror (f) ? -1 : 0);
 }
 
-# define write_as_text_part(a)  (mutt_is_text_part(a) \
-                                 || ((WithCrypto & APPLICATION_PGP)\
-                                      && mutt_is_application_pgp(a)))
+# define write_as_text_part(a)  (mutt_is_text_part(a) || mutt_is_application_pgp(a))
 
 int mutt_write_mime_body (BODY * a, FILE * f)
 {
@@ -399,9 +399,7 @@ int mutt_write_mime_body (BODY * a, FILE * f)
   }
 
   /* This is pretty gross, but it's the best solution for now... */
-  if ((WithCrypto & APPLICATION_PGP)
-      && a->type == TYPEAPPLICATION
-      && m_strcmp(a->subtype, "pgp-encrypted") == 0) {
+  if (a->type == TYPEAPPLICATION && !m_strcmp(a->subtype, "pgp-encrypted")) {
     fputs ("Version: 1\n", f);
     return 0;
   }
@@ -745,7 +743,7 @@ static size_t convert_file_from_to (FILE * file,
   for (c = tocodes, i = 0; c; c = c1 ? c1 + 1 : 0, i++) {
     if ((c1 = strchr (c, ':')) == c)
       continue;
-    tcode[i] = str_substrdup (c, c1);
+    tcode[i] = m_substrdup(c, c1);
   }
 
   ret = (size_t) (-1);
@@ -754,7 +752,7 @@ static size_t convert_file_from_to (FILE * file,
     for (c = fromcodes; c; c = c1 ? c1 + 1 : 0) {
       if ((c1 = strchr (c, ':')) == c)
         continue;
-      fcode = str_substrdup (c, c1);
+      fcode = m_substrdup(c, c1);
 
       ret = convert_file_to (file, fcode, ncodes, (const char **) tcode,
                              &cn, info);
@@ -892,7 +890,7 @@ int mutt_lookup_mime_type (BODY * att, const char *path)
       snprintf (buf, sizeof (buf), "%s/.mime.types", NONULL (Homedir));
       break;
     case 1:
-      m_strcpy(buf, sizeof(buf), SYSCONFDIR "/muttng-mime.types");
+      m_strcpy(buf, sizeof(buf), SYSCONFDIR "/madmutt-mime.types");
       break;
     case 2:
       m_strcpy(buf, sizeof(buf), PKGDATADIR "/mime.types");
@@ -938,7 +936,7 @@ int mutt_lookup_mime_type (BODY * att, const char *path)
 
             for (q = p; *q && !ISSPACE (*q); q++);
 
-            str_substrcpy (subtype, p, q, sizeof (subtype));
+            m_strncpy(subtype, sizeof(subtype), p, q - p);
 
             if ((type = mutt_check_mime_type (ct)) == TYPEOTHER)
               m_strcpy(xtype, sizeof(xtype), ct);
@@ -956,8 +954,8 @@ bye:
 
   if (type != TYPEOTHER || *xtype != '\0') {
     att->type = type;
-    str_replace (&att->subtype, subtype);
-    str_replace (&att->xtype, xtype);
+    m_strreplace(&att->subtype, subtype);
+    m_strreplace(&att->xtype, xtype);
   }
 
   return (type);
@@ -1181,14 +1179,12 @@ BODY *mutt_make_message_attach (CONTEXT * ctx, HEADER * hdr, int attach_msg)
   BODY *body;
   FILE *fp;
   int cmflags, chflags;
-  int pgp = WithCrypto ? hdr->security : 0;
+  int pgp = hdr->security;
 
-  if (WithCrypto) {
-    if ((option (OPTMIMEFORWDECODE) || option (OPTFORWDECRYPT)) &&
-        (hdr->security & ENCRYPT)) {
-      if (!crypt_valid_passphrase (hdr->security))
-        return (NULL);
-    }
+  if ((option (OPTMIMEFORWDECODE) || option (OPTFORWDECRYPT)) &&
+      (hdr->security & ENCRYPT)) {
+    if (!crypt_valid_passphrase (hdr->security))
+      return (NULL);
   }
 
   mutt_mktemp (buffer);
@@ -1213,26 +1209,20 @@ BODY *mutt_make_message_attach (CONTEXT * ctx, HEADER * hdr, int attach_msg)
   if (!attach_msg && option (OPTMIMEFORWDECODE)) {
     chflags |= CH_MIME | CH_TXTPLAIN;
     cmflags = M_CM_DECODE | M_CM_CHARCONV;
-    if ((WithCrypto & APPLICATION_PGP))
-      pgp &= ~PGPENCRYPT;
-    if ((WithCrypto & APPLICATION_SMIME))
-      pgp &= ~SMIMEENCRYPT;
+    pgp &= ~(PGPENCRYPT|SMIMEENCRYPT);
   }
-  else if (WithCrypto && option (OPTFORWDECRYPT) && (hdr->security & ENCRYPT)) {
-    if ((WithCrypto & APPLICATION_PGP)
-        && mutt_is_multipart_encrypted (hdr->content)) {
+  else if (option (OPTFORWDECRYPT) && (hdr->security & ENCRYPT)) {
+    if (mutt_is_multipart_encrypted (hdr->content)) {
       chflags |= CH_MIME | CH_NONEWLINE;
       cmflags = M_CM_DECODE_PGP;
       pgp &= ~PGPENCRYPT;
     }
-    else if ((WithCrypto & APPLICATION_PGP)
-             && (mutt_is_application_pgp (hdr->content) & PGPENCRYPT)) {
+    else if (mutt_is_application_pgp (hdr->content) & PGPENCRYPT) {
       chflags |= CH_MIME | CH_TXTPLAIN;
       cmflags = M_CM_DECODE | M_CM_CHARCONV;
       pgp &= ~PGPENCRYPT;
     }
-    else if ((WithCrypto & APPLICATION_SMIME)
-             && mutt_is_application_smime (hdr->content) & SMIMEENCRYPT) {
+    else if (mutt_is_application_smime (hdr->content) & SMIMEENCRYPT) {
       chflags |= CH_MIME | CH_TXTPLAIN;
       cmflags = M_CM_DECODE | M_CM_CHARCONV;
       pgp &= ~SMIMEENCRYPT;
@@ -1244,12 +1234,11 @@ BODY *mutt_make_message_attach (CONTEXT * ctx, HEADER * hdr, int attach_msg)
   fflush (fp);
   rewind (fp);
 
-  body->hdr = mutt_new_header ();
+  body->hdr = header_new();
   body->hdr->offset = 0;
   /* we don't need the user headers here */
   body->hdr->env = mutt_read_rfc822_header (fp, body->hdr, 0, 0);
-  if (WithCrypto)
-    body->hdr->security = pgp;
+  body->hdr->security = pgp;
   mutt_update_encoding (body);
   body->parts = body->hdr->content;
 
@@ -2038,11 +2027,8 @@ static int mutt_invoke_sendmail (address_t * from,        /* the sender */
 
   if ((i = send_msg (path, args, msg, &childout)) != (EX_OK & 0xff)) {
     if (i != S_BKG) {
-      const char *e = mutt_strsysexit (i);
-
-      e = mutt_strsysexit (i);
       mutt_error (_("Error sending message, child exited %d (%s)."), i,
-                  NONULL (e));
+                  m_strsysexit(i));
       if (childout) {
         struct stat st;
 
@@ -2153,8 +2139,8 @@ void mutt_prepare_envelope (ENVELOPE * env, int final)
       env->to->next = address_new ();
 
       buffer[0] = 0;
-      rfc822_cat (buffer, sizeof (buffer), "undisclosed-recipients",
-                  RFC822Specials);
+      rfc822_strcpy(buffer, sizeof(buffer), "undisclosed-recipients",
+                    RFC822Specials);
 
       env->to->mailbox = m_strdup(buffer);
     }
@@ -2398,8 +2384,7 @@ int mutt_write_fcc (const char *path, HEADER * hdr, const char *msgid,
 
 
   /* (postponment) if the mail is to be signed or encrypted, save this info */
-  if ((WithCrypto & APPLICATION_PGP)
-      && post && (hdr->security & APPLICATION_PGP)) {
+  if (post && (hdr->security & APPLICATION_PGP)) {
     fputs ("X-Mutt-PGP: ", msg->fp);
     if (hdr->security & ENCRYPT)
       fputc ('E', msg->fp);
@@ -2414,8 +2399,7 @@ int mutt_write_fcc (const char *path, HEADER * hdr, const char *msgid,
   }
 
   /* (postponment) if the mail is to be signed or encrypted, save this info */
-  if ((WithCrypto & APPLICATION_SMIME)
-      && post && (hdr->security & APPLICATION_SMIME)) {
+  if (post && (hdr->security & APPLICATION_SMIME)) {
     fputs ("X-Mutt-SMIME: ", msg->fp);
     if (hdr->security & ENCRYPT) {
       fputc ('E', msg->fp);