[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] emacs/lisp/mail rmailedit.el
From: |
Eli Zaretskii |
Subject: |
[Emacs-diffs] emacs/lisp/mail rmailedit.el |
Date: |
Sat, 07 Feb 2009 15:16:01 +0000 |
CVSROOT: /cvsroot/emacs
Module name: emacs
Changes by: Eli Zaretskii <eliz> 09/02/07 15:16:01
Modified files:
lisp/mail : rmailedit.el
Log message:
(rmail-cease-edit): Look for the message's encoding, and its
"content-transfer-encoding" and "content-type" headers only in the
headers' portion. (Bug#2017)
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/mail/rmailedit.el?cvsroot=emacs&r1=1.48&r2=1.49
Patches:
Index: rmailedit.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/mail/rmailedit.el,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -b -r1.48 -r1.49
--- rmailedit.el 7 Feb 2009 12:54:35 -0000 1.48
+++ rmailedit.el 7 Feb 2009 15:16:01 -0000 1.49
@@ -124,7 +124,7 @@
(insert "\n")))
(let ((old rmail-old-text)
character-coding is-text-message coding-system
- headers-end)
+ headers-end limit)
;; Go back to Rmail mode, but carefully.
(force-mode-line-update)
(let ((rmail-buffer-swapped nil)) ; Prevent change-major-mode-hook
@@ -148,14 +148,22 @@
(narrow-to-region (rmail-msgbeg rmail-current-message)
(rmail-msgend rmail-current-message))
- (setq character-coding (mail-fetch-field "content-transfer-encoding")
+ (save-restriction
+ (setq limit
+ (save-excursion
+ (goto-char (point-min))
+ (search-forward "\n\n" nil t)))
+ ;; All 3 of the functions we call below assume the buffer was
+ ;; narrowed to just the headers of the message.
+ (narrow-to-region (rmail-msgbeg rmail-current-message) limit)
+ (setq character-coding
+ (mail-fetch-field "content-transfer-encoding")
is-text-message (rmail-is-text-p)
- coding-system (rmail-get-coding-system))
+ coding-system (rmail-get-coding-system)))
(if character-coding
(setq character-coding (downcase character-coding)))
- (goto-char (point-min))
- (search-forward "\n\n")
+ (goto-char limit)
(let ((inhibit-read-only t))
(let ((data-buffer (current-buffer))
(end (copy-marker (point) t)))
@@ -164,14 +172,14 @@
data-buffer))
(delete-region end (point-max)))
- ;; Re-encode the message body in whatever
- ;; way it was decoded.
+ ;; Re-apply content-transfer-encoding, if any, on the message
+ ;; body.
(cond
((string= character-coding "quoted-printable")
(mail-quote-printable-region (point) (point-max)))
((and (string= character-coding "base64") is-text-message)
(base64-encode-region (point) (point-max)))
- ((eq character-coding 'uuencode)
+ ((and (eq character-coding 'uuencode) is-text-message)
(error "uuencoded messages are not supported yet.")))
))