X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=send.c;h=3b6b773659427849d27553959ba67d1f3d90b732;hb=c8becc4d099cee8c18ebd967720ce7204311d817;hp=876ffff9aa35c65f1f5e68369d128e6844ff546a;hpb=e83dbdbc6200a71981d06773869cd0492f81f16c;p=apps%2Fmadmutt.git diff --git a/send.c b/send.c index 876ffff..3b6b773 100644 --- a/send.c +++ b/send.c @@ -16,6 +16,7 @@ #include "ascii.h" #include "mutt_curses.h" #include "rfc2047.h" +#include "rfc3676.h" #include "keymap.h" #include "mime.h" #include "copy.h" @@ -626,6 +627,11 @@ void mutt_fix_reply_recipients (ENVELOPE * env) env->to = mutt_remove_duplicates (env->to); env->cc = mutt_remove_duplicates (env->cc); env->cc = mutt_remove_xrefs (env->to, env->cc); + + if (env->cc && !env->to) { + env->to = env->cc; + env->cc = NULL; + } } void mutt_make_forward_subject (ENVELOPE * env, CONTEXT * ctx, HEADER * cur) @@ -1064,6 +1070,19 @@ static void decode_descriptions (BODY * b) } } +static void fix_end_of_file (const char *data) +{ + FILE *fp; + int c; + + if ((fp = safe_fopen (data, "a+")) == NULL) + return; + fseek (fp, -1, SEEK_END); + if ((c = fgetc (fp)) != '\n') + fputc ('\n', fp); + safe_fclose (&fp); +} + int mutt_resend_message (FILE * fp, CONTEXT * ctx, HEADER * cur) { HEADER *msg = mutt_new_header (); @@ -1176,7 +1195,8 @@ int ci_send_message (int flags, /* send mode */ pbody->next = msg->content; /* don't kill command-line attachments */ msg->content = pbody; - ctype = str_dup (ContentType); + if (!(ctype = str_dup (ContentType))) + ctype = str_dup ("text/plain"); mutt_parse_content_type (ctype, msg->content); mem_free (&ctype); @@ -1427,9 +1447,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 */ - 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); @@ -1437,9 +1458,19 @@ int ci_send_message (int flags, /* send mode */ sizeof (fcc)); mutt_env_to_idna (msg->env, NULL, NULL); } - else + else { mutt_edit_file (Editor, msg->content->filename); + if (stat (msg->content->filename, &st) == 0) { + if (mtime != st.st_mtime) + fix_end_of_file (msg->content->filename); + } else + mutt_perror (msg->content->filename); + } + + if (option (OPTTEXTFLOWED)) + rfc3676_space_stuff (msg); + mutt_message_hook (NULL, msg, M_SEND2HOOK); }