drop list2_t from sendlib.c as well.
authorPierre Habouzit <madcoder@madism.org>
Sat, 18 Nov 2006 13:44:55 +0000 (14:44 +0100)
committerPierre Habouzit <madcoder@madism.org>
Sat, 18 Nov 2006 13:44:55 +0000 (14:44 +0100)
Signed-off-by: Pierre Habouzit <madcoder@madism.org>
sendlib.c

index b024afc..6f40ea1 100644 (file)
--- a/sendlib.c
+++ b/sendlib.c
@@ -21,8 +21,6 @@
 
 #include <lib-crypt/crypt.h>
 
 
 #include <lib-crypt/crypt.h>
 
-#include "lib/list.h"
-
 #include "mutt.h"
 #include "handler.h"
 #include "recvattach.h"
 #include "mutt.h"
 #include "handler.h"
 #include "recvattach.h"
@@ -1351,6 +1349,24 @@ void mutt_write_references (string_list_t * r, FILE * f)
   p_delete(&ref);
 }
 
   p_delete(&ref);
 }
 
+static int edit_header(int mode, const char *s)
+{
+    const char *p;
+    int slen = m_strlen(s);
+
+    if (mode != 1 || option(OPTXMAILTO))
+        return 1;
+
+    p = skipspaces(EditorHeaders);
+    while (*p) {
+        if (!ascii_strncasecmp(p, s, slen) && p[slen - 1] == ':')
+            return 1;
+        p = skipspaces(p + slen);
+    }
+
+    return 0;
+}
+
 /* Note: all RFC2047 encoding should be done outside of this routine, except
  * for the "real name."  This will allow this routine to be used more than
  * once, if necessary.
 /* Note: all RFC2047 encoding should be done outside of this routine, except
  * for the "real name."  This will allow this routine to be used more than
  * once, if necessary.
@@ -1374,7 +1390,6 @@ int mutt_write_rfc822_header (FILE * fp, ENVELOPE * env, BODY * attach,
   char *p;
   string_list_t *tmp = env->userhdrs;
   int has_agent = 0;            /* user defined user-agent header field exists */
   char *p;
   string_list_t *tmp = env->userhdrs;
   int has_agent = 0;            /* user defined user-agent header field exists */
-  list2_t* hdrs = list_from_str (EditorHeaders, " ");
 
 #ifdef USE_NNTP
   if (!option (OPTNEWSSEND))
 
 #ifdef USE_NNTP
   if (!option (OPTNEWSSEND))
@@ -1382,8 +1397,6 @@ int mutt_write_rfc822_header (FILE * fp, ENVELOPE * env, BODY * attach,
     if (mode == 0 && !privacy)
       fputs (mutt_make_date (buffer, sizeof (buffer)), fp);
 
     if (mode == 0 && !privacy)
       fputs (mutt_make_date (buffer, sizeof (buffer)), fp);
 
-#define EDIT_HEADER(x) (mode != 1 || option(OPTXMAILTO) || (mode == 1 && list_lookup(hdrs,(list_lookup_t*) ascii_strcasecmp,x) >= 0))
-
   /* OPTUSEFROM is not consulted here so that we can still write a From:
    * field if the user sets it with the `my_hdr' command
    */
   /* OPTUSEFROM is not consulted here so that we can still write a From:
    * field if the user sets it with the `my_hdr' command
    */
@@ -1401,7 +1414,7 @@ int mutt_write_rfc822_header (FILE * fp, ENVELOPE * env, BODY * attach,
 #ifdef USE_NNTP
     if (!option (OPTNEWSSEND))
 #endif
 #ifdef USE_NNTP
     if (!option (OPTNEWSSEND))
 #endif
-      if (EDIT_HEADER("To:"))
+      if (edit_header(mode, "To:"))
         fputs ("To:\n", fp);
 
   if (env->cc) {
         fputs ("To:\n", fp);
 
   if (env->cc) {
@@ -1412,7 +1425,7 @@ int mutt_write_rfc822_header (FILE * fp, ENVELOPE * env, BODY * attach,
 #ifdef USE_NNTP
     if (!option (OPTNEWSSEND))
 #endif
 #ifdef USE_NNTP
     if (!option (OPTNEWSSEND))
 #endif
-      if (EDIT_HEADER("Cc:"))
+      if (edit_header(mode, "Cc:"))
         fputs ("Cc:\n", fp);
 
   if (env->bcc) {
         fputs ("Cc:\n", fp);
 
   if (env->bcc) {
@@ -1425,30 +1438,30 @@ int mutt_write_rfc822_header (FILE * fp, ENVELOPE * env, BODY * attach,
 #ifdef USE_NNTP
     if (!option (OPTNEWSSEND))
 #endif
 #ifdef USE_NNTP
     if (!option (OPTNEWSSEND))
 #endif
-      if (EDIT_HEADER("Bcc:"))
+      if (edit_header(mode, "Bcc:"))
         fputs ("Bcc:\n", fp);
 
 #ifdef USE_NNTP
   if (env->newsgroups)
     fprintf (fp, "Newsgroups: %s\n", env->newsgroups);
         fputs ("Bcc:\n", fp);
 
 #ifdef USE_NNTP
   if (env->newsgroups)
     fprintf (fp, "Newsgroups: %s\n", env->newsgroups);
-  else if (mode == 1 && option (OPTNEWSSEND) && EDIT_HEADER("Newsgroups:"))
+  else if (mode == 1 && option (OPTNEWSSEND) && edit_header(mode, "Newsgroups:"))
     fputs ("Newsgroups:\n", fp);
 
   if (env->followup_to)
     fprintf (fp, "Followup-To: %s\n", env->followup_to);
     fputs ("Newsgroups:\n", fp);
 
   if (env->followup_to)
     fprintf (fp, "Followup-To: %s\n", env->followup_to);
-  else if (mode == 1 && option (OPTNEWSSEND) && EDIT_HEADER("Followup-To:"))
+  else if (mode == 1 && option (OPTNEWSSEND) && edit_header(mode, "Followup-To:"))
     fputs ("Followup-To:\n", fp);
 
   if (env->x_comment_to)
     fprintf (fp, "X-Comment-To: %s\n", env->x_comment_to);
   else if (mode == 1 && option (OPTNEWSSEND) && option (OPTXCOMMENTTO) &&
     fputs ("Followup-To:\n", fp);
 
   if (env->x_comment_to)
     fprintf (fp, "X-Comment-To: %s\n", env->x_comment_to);
   else if (mode == 1 && option (OPTNEWSSEND) && option (OPTXCOMMENTTO) &&
-           EDIT_HEADER("X-Comment-To:"))
+           edit_header(mode, "X-Comment-To:"))
     fputs ("X-Comment-To:\n", fp);
 #endif
 
   if (env->subject)
     fprintf (fp, "Subject: %s\n", env->subject);
     fputs ("X-Comment-To:\n", fp);
 #endif
 
   if (env->subject)
     fprintf (fp, "Subject: %s\n", env->subject);
-  else if (mode == 1 && EDIT_HEADER("Subject:"))
+  else if (mode == 1 && edit_header(mode, "Subject:"))
     fputs ("Subject:\n", fp);
 
   /* save message id if the user has set it */
     fputs ("Subject:\n", fp);
 
   /* save message id if the user has set it */
@@ -1459,7 +1472,7 @@ int mutt_write_rfc822_header (FILE * fp, ENVELOPE * env, BODY * attach,
     fputs ("Reply-To: ", fp);
     mutt_write_address_list (env->reply_to, fp, 10, 0);
   }
     fputs ("Reply-To: ", fp);
     mutt_write_address_list (env->reply_to, fp, 10, 0);
   }
-  else if (mode > 0 && EDIT_HEADER("Reply-To:"))
+  else if (mode > 0 && edit_header(mode, "Reply-To:"))
     fputs ("Reply-To:\n", fp);
 
   if (env->mail_followup_to)
     fputs ("Reply-To:\n", fp);
 
   if (env->mail_followup_to)
@@ -1489,8 +1502,6 @@ int mutt_write_rfc822_header (FILE * fp, ENVELOPE * env, BODY * attach,
     fputc ('\n', fp);
   }
 
     fputc ('\n', fp);
   }
 
-#undef EDIT_HEADER
-
   /* Add any user defined headers */
   for (; tmp; tmp = tmp->next) {
     if ((p = strchr (tmp->data, ':'))) {
   /* Add any user defined headers */
   for (; tmp; tmp = tmp->next) {
     if ((p = strchr (tmp->data, ':'))) {
@@ -1523,8 +1534,6 @@ int mutt_write_rfc822_header (FILE * fp, ENVELOPE * env, BODY * attach,
     fprintf (fp, "User-Agent: %s (%s)\n", mutt_make_version (0), os);
   }
 
     fprintf (fp, "User-Agent: %s (%s)\n", mutt_make_version (0), os);
   }
 
-  list_del (&hdrs, (list_del_t*)xmemfree);
-
   return (ferror (fp) == 0 ? 0 : -1);
 }
 
   return (ferror (fp) == 0 ? 0 : -1);
 }