[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#28671: 25.2; double transfer-encoding in rmailedit for complex mime
From: |
Eli Zaretskii |
Subject: |
bug#28671: 25.2; double transfer-encoding in rmailedit for complex mime messages |
Date: |
Mon, 02 Oct 2017 19:37:55 +0300 |
> From: Ken Olum <kdo@cosmos.phy.tufts.edu>
> Date: Mon, 02 Oct 2017 11:37:46 -0400
> Cc: kdo@cosmos.phy.tufts.edu
>
> When rmail-edit-current-message gets a mime message which is too complex
> for it to handle (i.e., anything but one "text/plain" part), it just
> gives you the raw message to edit. If you do so, rmail-cease-edit then
> applies the transfer-encoding even though the message wasn't decoded,
> and so on. It also in some circumstances it also moves the marker for
> the beginning of the following message.
>
> The attached patch modifies rmail-cease-edit to check the
> rmail-old-mime-state flag set by rmail-edit-current-message when it is
> editing the raw message. If set, rmail-cease-edit inserts the
> already-encoded body without further processing. It also deletes the
> old body after inserting the new, rather than before, to avoid moving
> the next message's marker.
Thanks. Could you please send a small mbox file which could be used
to reproduce the problem and test the solution?
A couple of minor comments to the patch:
> ;; Re-apply content-transfer-encoding, if any, on the message body.
> - (cond
> - ((string= character-coding "quoted-printable")
> - (mail-quote-printable-region start (point-max)))
> - ((and (string= character-coding "base64") is-text-message)
> - (base64-encode-region start (point-max)))
> - ((and (eq character-coding 'uuencode) is-text-message)
> - (error "uuencoded messages are not supported")))
> + (unless mime-state ; if set, already transfer-encoded
> + (cond
> + ((string= character-coding "quoted-printable")
> + (mail-quote-printable-region start end))
> + ((and (string= character-coding "base64") is-text-message)
> + (base64-encode-region start end))
> + ((and (eq character-coding 'uuencode) is-text-message)
> + (error "uuencoded messages are not supported"))))
You could easily make the change less intrusive by simply adding the
mime-state condition as the first alternative in 'cond' with no
action, right?
Also, please add a commit log message for the changes formatted as a
ChangeLog entry (e.g., using "C-x 4 a").