changeset 55056:c7ded215e268

(rmail-restore-desktop-buffer): Move from desktop.el. Add Parameters.
author Lars Hansen <larsh@soem.dk>
date Wed, 21 Apr 2004 20:49:37 +0000
parents 1df02321d7ad
children 8ac1373b947e
files lisp/mail/rmail.el
diffstat 1 files changed, 24 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/mail/rmail.el	Wed Apr 21 20:48:48 2004 +0000
+++ b/lisp/mail/rmail.el	Wed Apr 21 20:49:37 2004 +0000
@@ -1666,15 +1666,7 @@
 (defun rmail-decode-region (from to coding)
   (if (or (not coding) (not (coding-system-p coding)))
       (setq coding 'undecided))
-  ;; Use -dos decoding, to remove ^M characters left from base64 or
-  ;; rogue qp-encoded text.
-  (decode-coding-region from to
-			(coding-system-change-eol-conversion coding 1))
-  ;; Don't reveal the fact we used -dos decoding, as users generally
-  ;; will not expect the RMAIL buffer to use DOS EOL format.
-  (setq buffer-file-coding-system
-	(setq last-coding-system-used
-	      (coding-system-change-eol-conversion coding 0))))
+  (decode-coding-region from to coding))
 
 ;; the  rmail-break-forwarded-messages  feature is not implemented
 (defun rmail-convert-to-babyl-format ()
@@ -1759,6 +1751,9 @@
 			       (error nil))
 			   ;; Change "base64" to "8bit", to reflect the
 			   ;; decoding we just did.
+			   (goto-char (1+ header-end))
+			   (while (search-forward "\r\n" (point-max) t)
+			     (replace-match "\n"))
 			   (goto-char base64-header-field-end)
 			   (delete-region (point) (search-backward ":"))
 			   (insert ": 8bit"))))
@@ -1906,6 +1901,9 @@
 				    (point)))
 				 t)
 			     (error nil))
+			 (goto-char header-end)
+			 (while (search-forward "\r\n" (point-max) t)
+			   (replace-match "\n"))
 			 ;; Change "base64" to "8bit", to reflect the
 			 ;; decoding we just did.
 			 (goto-char base64-header-field-end)
@@ -3869,6 +3867,23 @@
      (setq i (1+ i)))
    (concat string-vector)))
 
+;;;;  Desktop support
+
+;;;###autoload
+(defun rmail-restore-desktop-buffer (desktop-buffer-file-name
+                                     desktop-buffer-name
+                                     desktop-buffer-misc)
+  "Restore an rmail buffer specified in a desktop file."
+  (condition-case error
+      (progn
+        (rmail-input desktop-buffer-file-name)
+        (if (eq major-mode 'rmail-mode)
+            (current-buffer)
+          rmail-buffer))
+    (file-locked
+      (kill-buffer (current-buffer))
+      nil)))
+
 (provide 'rmail)
 
 ;;; arch-tag: cff0a950-57fe-4f73-a86e-91ff75afd06c