Rocco Rutte:
[apps/madmutt.git] / send.c
diff --git a/send.c b/send.c
index 3b17228..b4dbd3a 100644 (file)
--- a/send.c
+++ b/send.c
@@ -16,6 +16,7 @@
 #include "ascii.h"
 #include "mutt_curses.h"
 #include "rfc2047.h"
 #include "ascii.h"
 #include "mutt_curses.h"
 #include "rfc2047.h"
+#include "rfc3676.h"
 #include "keymap.h"
 #include "mime.h"
 #include "copy.h"
 #include "keymap.h"
 #include "mime.h"
 #include "copy.h"
@@ -1184,8 +1185,11 @@ int ci_send_message (int flags, /* send mode */
     msg->content->use_disp = 0;
     msg->content->disposition = DISPINLINE;
     if (option (OPTTEXTFLOWED) && msg->content->type == TYPETEXT
     msg->content->use_disp = 0;
     msg->content->disposition = DISPINLINE;
     if (option (OPTTEXTFLOWED) && msg->content->type == TYPETEXT
-        && !ascii_strcasecmp (msg->content->subtype, "plain"))
+        && !ascii_strcasecmp (msg->content->subtype, "plain")) {
       mutt_set_parameter ("format", "flowed", &msg->content->parameter);
       mutt_set_parameter ("format", "flowed", &msg->content->parameter);
+      if (option (OPTDELSP))
+        mutt_set_parameter ("delsp", "yes", &msg->content->parameter);
+    }
 
     if (!tempfile) {
       mutt_mktemp (buffer);
 
     if (!tempfile) {
       mutt_mktemp (buffer);
@@ -1424,9 +1428,10 @@ int ci_send_message (int flags, /* send mode */
          query_quadoption (OPT_FORWEDIT,
                            _("Edit forwarded message?")) == M_YES)) {
       /* If the this isn't a text message, look for a mailcap edit command */
          query_quadoption (OPT_FORWEDIT,
                            _("Edit forwarded message?")) == M_YES)) {
       /* If the this isn't a text message, look for a mailcap edit command */
-      if (mutt_needs_mailcap (msg->content))
-        mutt_edit_attachment (msg->content);
-      else if (!Editor || str_cmp ("builtin", Editor) == 0)
+      if (mutt_needs_mailcap (msg->content)) {
+        if (!mutt_edit_attachment (msg->content))
+          goto cleanup;
+      } else if (!Editor || str_cmp ("builtin", Editor) == 0)
         mutt_builtin_editor (msg->content->filename, msg, cur);
       else if (option (OPTEDITHDRS)) {
         mutt_env_to_local (msg->env);
         mutt_builtin_editor (msg->content->filename, msg, cur);
       else if (option (OPTEDITHDRS)) {
         mutt_env_to_local (msg->env);
@@ -1437,6 +1442,9 @@ int ci_send_message (int flags, /* send mode */
       else
         mutt_edit_file (Editor, msg->content->filename);
 
       else
         mutt_edit_file (Editor, msg->content->filename);
 
+      if (option (OPTTEXTFLOWED))
+        rfc3676_space_stuff (msg);
+
       mutt_message_hook (NULL, msg, M_SEND2HOOK);
     }
 
       mutt_message_hook (NULL, msg, M_SEND2HOOK);
     }
 
@@ -1579,6 +1587,20 @@ int ci_send_message (int flags, /* send mode */
   if (msg->content->next)
     msg->content = mutt_make_multipart (msg->content);
 
   if (msg->content->next)
     msg->content = mutt_make_multipart (msg->content);
 
+  if (mutt_attach_check (msg) &&
+      !msg->content->next &&
+      query_quadoption (OPT_ATTACH,
+                        _("No attachments made but indicator found in text. "
+                          "Cancel sending?")) == M_YES) {
+    if (quadoption (OPT_ATTACH) == M_YES) {
+      mutt_message _("No attachments made but indicator found in text. "
+                     "Abort sending.");
+      sleep (2);
+    }
+    mutt_message (_("Mail not sent."));
+    goto main_loop;
+  }
+
   /* 
    * Ok, we need to do it this way instead of handling all fcc stuff in
    * one place in order to avoid going to main_loop with encoded "env"
   /* 
    * Ok, we need to do it this way instead of handling all fcc stuff in
    * one place in order to avoid going to main_loop with encoded "env"