]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix Rmail base64 and qp decoding of MIME payloads
authorEli Zaretskii <eliz@gnu.org>
Mon, 2 Sep 2024 14:14:29 +0000 (17:14 +0300)
committerEshel Yaron <me@eshelyaron.com>
Sun, 8 Sep 2024 11:21:39 +0000 (13:21 +0200)
* lisp/mail/rmailmm.el (rmail-mime-insert-decoded-text)
(rmail-mime-insert-html): Remove ^M characters left from DOS EOLs.
This is what 'rmail-decode-region' does for non-MIME messages.

(cherry picked from commit 7799ef43354d756d7144cab3437f38496199522c)

lisp/mail/rmailmm.el

index b4a0e92136e5edbe16ecf0c3bb1212c3a5020428..a5ce5b65cd7881498d55b242c10d8193fe327394 100644 (file)
@@ -579,7 +579,11 @@ HEADER is a header component of a MIME-entity object (see
               (ignore-errors (base64-decode-region pos (point))))
              ((string= transfer-encoding "quoted-printable")
               (quoted-printable-decode-region pos (point))))))
-    (decode-coding-region pos (point) coding-system)
+    (decode-coding-region
+     pos (point)
+     ;; Use -dos decoding, to remove ^M characters left from base64 or
+     ;; rogue qp-encoded text.
+     (coding-system-change-eol-conversion coding-system 1))
     (if (and
         (or (not rmail-mime-coding-system) (consp rmail-mime-coding-system))
         (not (eq (coding-system-base coding-system) 'us-ascii)))
@@ -691,7 +695,11 @@ HEADER is a header component of a MIME-entity object (see
            (if (and (eq coding-system 'undecided)
                     (not (null coding-system-for-read)))
                (setq coding-system coding-system-for-read))))
-      (decode-coding-region (point-min) (point) coding-system)
+      (decode-coding-region
+       (point-min) (point)
+       ;; Use -dos decoding, to remove ^M characters left from base64 or
+       ;; rogue qp-encoded text.
+       (coding-system-change-eol-conversion coding-system 1))
       (if (and
           (or (not rmail-mime-coding-system) (consp rmail-mime-coding-system))
           (not (eq (coding-system-base coding-system) 'us-ascii)))