Subject: bug#10078: 23.3; Rmail's rmail-mine command (v) does not correctly display raw message when rmail-enable mime is true (default)

From: Mark Lillibridge <[email-masked]>
Date: Sat, 19 Nov 2011 13:17:33 -0800

This is probably more of a command fails to do the expected and
useful thing rather than strictly a bug.  The help documentation for
this command is as follows:

   v runs the command rmail-mime, which is an interactive compiled Lisp
   function in `rmailmm.el'.

   It is bound to v.

   (rmail-mime &optional ARG)

   Toggle displaying of a MIME message.

   The actualy behavior depends on the value of `rmail-enable-mime'.

   If `rmail-enable-mime' is t (default), this command change the
   displaying of a MIME message between decoded presentation form
   and raw data.

   With ARG, toggle the displaying of the current MIME entity only.

   If `rmail-enable-mime' is nil, this creates a temporary
   "*RMAIL*" buffer holding a decoded copy of the message.  Inline
   content-types are handled according to
   `rmail-mime-media-type-handlers-alist'.  By default, this
   displays text and multipart messages, and offers to download
   attachments as specfied by `rmail-mime-attachment-dirs-alist'.

    From "displaying of a MIME message between decoded presentation form
and raw data", I would assume this command would toggle between the
normal display of a message and it's raw undecoded form.  What it
actually does is a very weird hybrid where you get raw data for the
parts but the boundaries are still decoded (e.g., missing).  An example
probably helps here.  Consider the following message as it is normally
presented:

Date: Sat, 19 Nov 2011 13:02:35 -0800
Subject: this message has a text and HTML part
From: Mark Lillibridge <[email-masked]>
To: [email-masked]

[1:text/plain Hide]
*this *is bold.
[2:text/html Show]

    When you hit 'v', this switches to (I've replaced a lot of headers
with ...):

>From mdl  Sat Nov 19 13:03:52 2011
Return-Path: <[email-masked]>
Received: from pobox-pa.hpl.hp.com [15.25.112.25]
	by ts-rhel5 with IMAP (fetchmail-6.3.6)
	for <mdl@localhost> (single-drop); Sat, 19 Nov 2011 13:03:52 -0800 (PST)
...
MIME-Version: 1.0
Message-ID: <CAHBhPjX1He3imxDDqoFVmLM=P+vUAh--qL+HtuTSjFy39pB=[email-masked]>
Subject: this message has a text and HTML part
From: Mark Lillibridge <[email-masked]>
To: [email-masked]
Content-Type: multipart/alternative; boundary=bcaec53aec3ee5f3fe04b21cc50d
...
X-RMAIL-ATTRIBUTES: --------

Content-Type: text/plain; charset=ISO-8859-1

*this *is bold.
Content-Type: text/html; charset=ISO-8859-1

<b>this </b>is bold.<br><br>

    For comparison, the actual raw message body looks like:

--bcaec53aec3ee5f3fe04b21cc50d
Content-Type: text/plain; charset=ISO-8859-1

*this *is bold.

--bcaec53aec3ee5f3fe04b21cc50d
Content-Type: text/html; charset=ISO-8859-1

<b>this </b>is bold.<br><br>

--bcaec53aec3ee5f3fe04b21cc50d--

    I can't for the life of me figure out what the hybrid version is
useful for.  It's very hard to tell where the different parts begin and
end.  This command can individually toggle parts to showing raw decoding
via C-u v; for example, here's what it looks like with only the second
part decoded:

Date: Sat, 19 Nov 2011 13:02:35 -0800
Subject: this message has a text and HTML part
From: Mark Lillibridge <[email-masked]>
To: [email-masked]

[1:text/plain Hide]
*this *is bold.
Content-Type: text/html; charset=ISO-8859-1

<b>this </b>is bold.<br><br>

    I don't understand why this is useful either.  Can someone please
explain why either of these abilities are useful?  I know do want the
the show raw message command from to time to time and that is what the
help message seems to promise so I'd recommend replacing the current 'v'
functionality (with rmail-enable-mime t) with a simple toggle to show
raw message command.  This would have the advantage of also being
symmetrical with the rmail-enable-mime nil case.

- Mark