X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=sendlib.c;h=9ebab5e33309ba6870e4c06ddaed291d3312bce4;hp=61b8a3993fb27c4a72f9661d7fe8e5051a723c2b;hb=1bbedb2dcb610160fe7fd2b44bd098248bfd83a0;hpb=8518fe25efade712e3590e5b13537fb0021d4073 diff --git a/sendlib.c b/sendlib.c index 61b8a39..9ebab5e 100644 --- a/sendlib.c +++ b/sendlib.c @@ -18,6 +18,10 @@ #define _SENDLIB_C 1 +#if HAVE_CONFIG_H +# include "config.h" +#endif + #include "mutt.h" #include "mutt_curses.h" #include "rfc2047.h" @@ -505,7 +509,7 @@ int mutt_write_mime_body (BODY *a, FILE *f) } if (a->type == TYPETEXT && (!a->noconv)) - fc = fgetconv_open (fpin, Charset, + fc = fgetconv_open (fpin, a->file_charset, mutt_get_body_charset (send_charset, sizeof (send_charset), a), 0); else @@ -905,6 +909,7 @@ CONTENT *mutt_get_content_info (const char *fname, BODY *b) CONTENT *info; CONTENT_STATE state; FILE *fp = NULL; + char *fromcode; char *tocode; char buffer[100]; char chsbuf[STRING]; @@ -939,15 +944,18 @@ CONTENT *mutt_get_content_info (const char *fname, BODY *b) if (b != NULL && b->type == TYPETEXT && (!b->noconv && !b->force_charset)) { char *chs = mutt_get_parameter ("charset", b->parameter); + char *fchs = b->use_disp ? ((FileCharset && *FileCharset) ? + FileCharset : Charset) : Charset; if (Charset && (chs || SendCharset) && - convert_file_from_to (fp, Charset, chs ? chs : SendCharset, - 0, &tocode, info) != (size_t)(-1)) + convert_file_from_to (fp, fchs, chs ? chs : SendCharset, + &fromcode, &tocode, info) != (size_t)(-1)) { if (!chs) { mutt_canonical_charset (chsbuf, sizeof (chsbuf), tocode); mutt_set_parameter ("charset", chsbuf, &b->parameter); } + b->file_charset = fromcode; FREE (&tocode); safe_fclose (&fp); return info; @@ -1173,6 +1181,9 @@ static void transform_to_7bit (BODY *a, FILE *fpin) } else { + a->noconv = 1; + a->force_charset = 1; + mutt_mktemp (buff); if ((s.fpout = safe_fopen (buff, "w")) == NULL) { @@ -1327,6 +1338,7 @@ BODY *mutt_make_message_attach (CONTEXT *ctx, HEADER *hdr, int attach_msg) body->unlink = 1; body->use_disp = 0; body->disposition = DISPINLINE; + body->noconv = 1; mutt_parse_mime_message (ctx, hdr); @@ -2349,6 +2361,7 @@ void mutt_prepare_envelope (ENVELOPE *env, int final) /* Take care of 8-bit => 7-bit conversion. */ rfc2047_encode_adrlist (env->to, "To"); rfc2047_encode_adrlist (env->cc, "Cc"); + rfc2047_encode_adrlist (env->bcc, "Bcc"); rfc2047_encode_adrlist (env->from, "From"); rfc2047_encode_adrlist (env->mail_followup_to, "Mail-Followup-To"); rfc2047_encode_adrlist (env->reply_to, "Reply-To"); @@ -2375,6 +2388,7 @@ void mutt_unprepare_envelope (ENVELOPE *env) /* back conversions */ rfc2047_decode_adrlist (env->to); rfc2047_decode_adrlist (env->cc); + rfc2047_decode_adrlist (env->bcc); rfc2047_decode_adrlist (env->from); rfc2047_decode_adrlist (env->reply_to); rfc2047_decode (&env->subject);