]> granicus.if.org Git - neomutt/commitdiff
Perform charset conversion on text attachments when piping. (closes #3773) (see ...
authorKevin McCarthy <kevin@8t8.us>
Sun, 23 Oct 2016 22:11:56 +0000 (15:11 -0700)
committerKevin McCarthy <kevin@8t8.us>
Sun, 23 Oct 2016 22:11:56 +0000 (15:11 -0700)
When piping a text attachment, there is no reliable way to know the
charset used.

Vincent Lefèvre says:
  It was decided in the past that when there is no information on the
  charset in a transmission to an external command (e.g. as for mail
  composing), texts are expected to be transmitted in the local
  charset.

Add a MUTT_CHARSET flag to enable charset conversion on text
attachments for both when $attach_split is set and unset.

attach.c
recvattach.c

index 84cdf6d14f8e1e40d9f94236227b436e5320d431..3898fa393bcbf9cfedf0348bf50aab1cb6f81368 100644 (file)
--- a/attach.c
+++ b/attach.c
@@ -620,6 +620,8 @@ int mutt_pipe_attachment (FILE *fp, BODY *b, const char *path, char *outfile)
     STATE s;
 
     memset (&s, 0, sizeof (STATE));
+    /* perform charset conversion on text attachments when piping */
+    s.flags = MUTT_CHARCONV;
 
     if (outfile && *outfile)
       thepid = mutt_create_filter_fd (path, &s.fpout, NULL, NULL, -1, out, -1);
index fb31318896dd7efc826c192c1c46856b335643b1..9d2cc8b6cfcd3e70a51bae4919cfa8bc46eb3a00 100644 (file)
@@ -672,6 +672,8 @@ void mutt_pipe_attachment_list (FILE *fp, int tag, BODY *top, int filter)
 
   buf[0] = 0;
   memset (&state, 0, sizeof (STATE));
+  /* perform charset conversion on text attachments when piping */
+  state.flags = MUTT_CHARCONV;
 
   if (mutt_get_field ((filter ? _("Filter through: ") : _("Pipe to: ")),
                                  buf, sizeof (buf), MUTT_CMD) != 0 || !buf[0])