changeset 102357:965102fa40ea

(rmail-delete-headers): New function. (rmail-retry-failure): Restore yet another feature mbox Rmail removed without telling anyone, namely rmail-retry-ignored-headers.
author Glenn Morris <rgm@gnu.org>
date Mon, 02 Mar 2009 08:03:41 +0000
parents fd6b5c8dd39b
children 07bc423d78f1
files lisp/ChangeLog lisp/mail/rmail.el
diffstat 2 files changed, 25 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Mon Mar 02 07:36:03 2009 +0000
+++ b/lisp/ChangeLog	Mon Mar 02 08:03:41 2009 +0000
@@ -10,6 +10,9 @@
 	Doc fixes.
 	(rmail-retry-failure): Use rmail-get-header rather than a magical
 	save-excursion/restriction combination that does nothing.
+	(rmail-delete-headers): New function.
+	(rmail-retry-failure): Restore yet another feature mbox Rmail removed
+	without telling anyone, namely rmail-retry-ignored-headers.
 
 2009-03-01  Chong Yidong  <cyd@stupidchicken.com>
 
--- a/lisp/mail/rmail.el	Mon Mar 02 07:36:03 2009 +0000
+++ b/lisp/mail/rmail.el	Mon Mar 02 08:03:41 2009 +0000
@@ -3625,6 +3625,25 @@
 (defvar mail-mime-unsent-header "^Content-Type: message/rfc822 *$"
  "A regexp that matches the header of a MIME body part with a failed message.")
 
+;; This is a cut-down version of rmail-clear-headers from Emacs 22.
+;; It doesn't have the same functionality, hence the name change.
+(defun rmail-delete-headers (regexp)
+  "Delete any mail headers matching REGEXP.
+The message should be narrowed to just the headers."
+  (when regexp
+    (goto-char (point-min))
+    (while (re-search-forward regexp nil t)
+      (beginning-of-line)
+      ;; This code from Emacs 22 doesn't seem right, since r-n-h is
+      ;; just for display.
+;;;      (if (looking-at rmail-nonignored-headers)
+;;;	  (forward-line 1)
+      (delete-region (point)
+		     (save-excursion
+		       (if (re-search-forward "\n[^ \t]" nil t)
+			   (1- (point))
+			 (point-max)))))))
+
 (defun rmail-retry-failure ()
   "Edit a mail message which is based on the contents of the current message.
 For a message rejected by the mail system, extract the interesting headers and
@@ -3709,9 +3728,7 @@
 	  ;; Insert original text as initial text of new draft message.
 	  ;; Bind inhibit-read-only since the header delimiter
 	  ;; of the previous message was probably read-only.
-	  (let ((inhibit-read-only t)
-		rmail-displayed-headers
-		rmail-ignored-headers)
+	  (let ((inhibit-read-only t))
 	    (erase-buffer)
 	    (insert-buffer-substring rmail-this-buffer
 				     bounce-start bounce-end)
@@ -3721,6 +3738,8 @@
 	    (mail-sendmail-delimit-header)
 	    (save-restriction
 	      (narrow-to-region (point-min) (mail-header-end))
+	      (rmail-delete-headers rmail-retry-ignored-headers)
+	      (rmail-delete-headers "^\\(sender\\|return-path\\|received\\):")
 	      (setq resending (mail-fetch-field "resent-to"))
 	      (if mail-self-blind
 		  (if resending