Subject: bug#3648: Gnus doubles MIME tags

From: Katsumi Yamaoka <[email-masked]>
Date: Mon, 22 Jun 2009 21:11:49 +0900

Hi,

You might have ever seen a MIME tag in the Gnus article buffer
like this:

[2. 
 non-ascii-filename.pdf --- application/pdf; non-ascii-filename.pdf]...

Note that the tag is broken into two lines.

In such a case, typing the `E' command there to display
the attachment externally doubles the tag like:

[2. 
 non-ascii-filename.pdf --- application/pdf; non-ascii-filename.pdf]...
 non-ascii-filename.pdf --- application/pdf; non-ascii-filename.pdf]...

or

[2. 
[2. 
 non-ascii-filename.pdf --- application/pdf; non-ascii-filename.pdf]...

I found this is due to M$'s MIME encoder.  In the raw form,
the MIME header it made looks like this:

Content-Description:
 =?iso-8859-1?Q?non-ascii-filename.pdf?=

It's ugly but is not a bug.  Gnus decodes it including the first
newline and displays it in the MIME tag as is.  However, Gnus
works properly only with a MIME tag drawn in a single line.

The following patch solves it.  It uses `message-fetch-field'
that strips newlines instead of `mail-fetch-field'.

(I don't know how I commit it to the Emacs trunk and also
 the branches, so I post it here.)

2009-06-22  Katsumi Yamaoka  <[email-masked]>

	* mm-decode.el (mm-dissect-buffer): Use message-fetch-field instead of
	mail-fetch-field to fetch Content-Description header in order to
	exclude newlines.

--- mm-decode.el~	2009-01-22 08:09:02 +0000
+++ mm-decode.el	2009-06-22 11:52:50 +0000
@@ -563,7 +563,7 @@
 		ctl (and ct (mail-header-parse-content-type ct))
 		cte (mail-fetch-field "content-transfer-encoding")
 		cd (mail-fetch-field "content-disposition")
-		description (mail-fetch-field "content-description")
+		description (message-fetch-field "content-description")
 		id (mail-fetch-field "content-id"))
 	  (unless from
 	    (setq from (mail-fetch-field "from")))

Regards,