Gnus development mailing list
 help / color / mirror / Atom feed
From: Jesper Harder <harder@ifa.au.dk>
Subject: Format=flowed & QP
Date: Thu, 03 Oct 2002 04:28:25 +0200	[thread overview]
Message-ID: <m3u1k4ntme.fsf@defun.localdomain> (raw)

[-- Attachment #1: Type: text/plain, Size: 1141 bytes --]

There's a bug when you enable format=flowed in QP-encoded messages.

With soft newlines this message:

------------------------------------------------------------
Subject: test
Gcc: nnml+archive:misc-mail
From: Jesper Harder <harder@ifa.au.dk>
--text follows this line--
1234567890 1234567890 123456789 01234567890 0123456789 ælsdkfj æa sdlfkj

α
------------------------------------------------------------

Gets encoded like this:

------------------------------------------------------------
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

1234567890 1234567890 123456789 01234567890 0123456789 
=C3=A6lsdkfj =C3=A6a= sdlfkj

=CE=B1
------------------------------------------------------------

Note the "a= ", which is malformed QP.

I think the problem is that `fill-flowed-encode' is applied *after*
QP-encoding (which I don't think is the right order).

Reversing that order seems to fix it¹.  But maybe we shouldn't flow text
at all unless the CTE is 8bit or 7bit?  (because QP supports soft
linebreaks without f=f).

¹

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: mml.el.diff --]
[-- Type: text/x-patch, Size: 1950 bytes --]

--- /home/harder/gnus/lisp/mml.el	Wed Sep  4 03:55:14 2002
+++ mml.el	Thu Oct  3 04:23:49 2002
@@ -431,26 +431,26 @@
 		      ;; ignore 0x1b, it is part of iso-2022-jp
 		      (setq encoding (mm-body-7-or-8))))
 		   (t
+		    ;; Only perform format=flowed filling on text/plain
+		    ;; parts where there either isn't a format parameter
+		    ;; in the mml tag or it says "flowed" and there
+		    ;; actually are hard newlines in the text.
+		    (let (use-hard-newlines)
+		      (when (and (string= type "text/plain")
+				 (or (null (assq 'format cont))
+				     (string= (cdr (assq 'format cont))
+					      "flowed"))
+				 (setq use-hard-newlines
+				       (text-property-any
+					(point-min) (point-max) 'hard 't)))
+			(fill-flowed-encode)
+			;; Indicate that `mml-insert-mime-headers' should
+			;; insert a "; format=flowed" string unless the
+			;; user has already specified it.
+			(setq flowed (null (assq 'format cont)))))
 		    (setq charset (mm-encode-body charset))
 		    (setq encoding (mm-body-encoding
 				    charset (cdr (assq 'encoding cont))))))
-		  ;; Only perform format=flowed filling on text/plain
-		  ;; parts where there either isn't a format parameter
-		  ;; in the mml tag or it says "flowed" and there
-		  ;; actually are hard newlines in the text.
-		  (let (use-hard-newlines)
-		    (when (and (string= type "text/plain")
-			       (or (null (assq 'format cont))
-				   (string= (cdr (assq 'format cont))
-					    "flowed"))
-			       (setq use-hard-newlines
-				     (text-property-any
-				      (point-min) (point-max) 'hard 't)))
-		      (fill-flowed-encode)
-		      ;; Indicate that `mml-insert-mime-headers' should
-		      ;; insert a "; format=flowed" string unless the
-		      ;; user has already specified it.
-		      (setq flowed (null (assq 'format cont)))))
 		  (setq coded (buffer-string)))
 		(mml-insert-mime-headers cont type charset encoding flowed)
 		(insert "\n")

             reply	other threads:[~2002-10-03  2:28 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-10-03  2:28 Jesper Harder [this message]
2002-12-29 15:31 ` Lars Magne Ingebrigtsen
2002-12-29 20:51   ` Jesper Harder
2002-12-29 22:02     ` Lars Magne Ingebrigtsen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m3u1k4ntme.fsf@defun.localdomain \
    --to=harder@ifa.au.dk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).