2005-02-14 [colin] 1.0.1cvs6
authorColin Leroy <colin@colino.net>
Mon, 14 Feb 2005 20:03:49 +0000 (20:03 +0000)
committerColin Leroy <colin@colino.net>
Mon, 14 Feb 2005 20:03:49 +0000 (20:03 +0000)
* src/compose.c
* src/procmime.c
Use quoted-printable instead of 7bit or 8bit
to encode "^From " and avoid mail corruption
on the MTA, as specified by RFC 3156. Thanks
Hoa for the hint.

ChangeLog.claws
PATCHSETS
configure.ac
src/compose.c
src/procmime.c

index 44c59266d2cd77bbeb2230629b6b1c95987895cf..073a6eb27a9604acc97dbec499ddb65327260dfd 100644 (file)
@@ -1,3 +1,12 @@
+2005-02-14 [colin]     1.0.1cvs6
+
+       * src/compose.c
+       * src/procmime.c
+               Use quoted-printable instead of 7bit or 8bit
+               to encode "^From " and avoid mail corruption 
+               on the MTA, as specified by RFC 3156. Thanks
+               Hoa for the hint.
+
 2005-02-12 [colin]     1.0.1cvs5
 
        * src/filtering.c
index 08d5007f969a3dff1c2b721c2d64f28409cd373a..bc3f5c4a7355eb11523f9f6c188c8a5d7a054661 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 
 ( cvs diff -u -r 1.473 -r 1.474 src/compose.c; ) > 1.0.1cvs4.patchset
 ( cvs diff -u -r 1.71 -r 1.72 src/filtering.c; ) > 1.0.1cvs5.patchset
+( cvs diff -u -r 1.474 -r 1.475 src/compose.c; cvs diff -u -r 1.103 -r 1.104 src/procmime.c; ) > 1.0.1cvs6.patchset
index 1914a672e15d6bf5bfb04adaf85f25d5a746e2b5..e2326f2959f83547c42cef06e4ae397a29125b25 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=0
 MICRO_VERSION=1
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=5
+EXTRA_VERSION=6
 EXTRA_RELEASE=
 
 if test \( $EXTRA_VERSION -eq 0 \) -o \( "x$EXTRA_RELEASE" != "x" \); then
index b4d0ae1b21ec6b201a4444072cb6fd97e3cfa034..4c7a3cf68cc9df473d378aa27dc40b8474eaee99 100644 (file)
@@ -3427,6 +3427,7 @@ static gint compose_write_to_file(Compose *compose, FILE *fp, gint action)
 
                if (action == COMPOSE_WRITE_FOR_SEND) {
                        buf = conv_codeset_strdup(chars, src_codeset, out_codeset);
+                       
                        if (!buf) {
                                AlertValue aval;
                                gchar *msg;
@@ -3455,6 +3456,13 @@ static gint compose_write_to_file(Compose *compose, FILE *fp, gint action)
        }
        g_free(chars);
 
+       if (encoding == ENC_8BIT || encoding == ENC_7BIT) {
+               if (!strncmp(buf, "From ", strlen("From ")) ||
+                   strstr(buf, "\nFrom ") != NULL) {
+                       encoding = ENC_QUOTED_PRINTABLE;
+               }
+       }
+
        mimetext = procmime_mimeinfo_new();
        mimetext->content = MIMECONTENT_MEM;
        mimetext->data.mem = buf;
index 64910e19276ca089152ca9f12a17b4e2f56ae073..0ed8a07751af067dc7a079011a78b0e21f062e5d 100644 (file)
@@ -480,7 +480,16 @@ gboolean procmime_encode_content(MimeInfo *mimeinfo, EncodingType encoding)
 
                while (fgets(inbuf, sizeof(inbuf), infp) != NULL) {
                        qp_encode_line(outbuf, inbuf);
-                       fputs(outbuf, outfp);
+
+                       if (!strncmp("From ", outbuf, strlen("From "))) {
+                               gchar *tmpbuf = outbuf;
+                               
+                               tmpbuf += strlen("From ");
+                               
+                               fputs("=46rom ", outfp);
+                               fputs(tmpbuf, outfp);
+                       } else 
+                               fputs(outbuf, outfp);
                }
        } else {
                gchar buf[BUFFSIZE];