changeset 2687:37cca1d50b6a

(rmail-resend): Add `resent' attribute. (rmail-forward): With prefix arg, run rmail-resend.
author Richard M. Stallman <rms@gnu.org>
date Fri, 07 May 1993 17:34:34 +0000
parents a84b9a78ab08
children a906a3882b9f
files lisp/mail/rmail.el
diffstat 1 files changed, 40 insertions(+), 35 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/mail/rmail.el	Fri May 07 02:55:22 1993 +0000
+++ b/lisp/mail/rmail.el	Fri May 07 17:34:34 1993 +0000
@@ -1644,40 +1644,44 @@
          (let ((mail-use-rfc822 t))
            (rmail-make-in-reply-to-field from date message-id)))))
 
-(defun rmail-forward ()
-  "Forward the current message to another user."
-  (interactive)
-  (let ((forward-buffer (current-buffer))
-	(subject (concat "["
-			 (let ((from (or (mail-fetch-field "From")
-					 (mail-fetch-field ">From"))))
-			   (if from
-			       (concat (mail-strip-quoted-names from) ": ")
-			     ""))
-			 (or (mail-fetch-field "Subject") "")
-			 "]")))
-    ;; Turn off the usual actions for initializing the message body
-    ;; because we want to get only the text from the failure message.
-    (let (mail-signature mail-setup-hook)
-      ;; If only one window, use it for the mail buffer.
-      ;; Otherwise, use another window for the mail buffer
-      ;; so that the Rmail buffer remains visible
-      ;; and sending the mail will get back to it.
-      (if (funcall (if (one-window-p t)
-		       (function mail)
-		     (function mail-other-window))
-		   nil nil subject nil nil nil
-		   (list (list (function (lambda (buf msgnum)
-				 (save-excursion
-				   (set-buffer buf)
-				   (rmail-set-attribute
-				     "forwarded" t msgnum))))
-			       (current-buffer)
-			       rmail-current-message)))
-	  (save-excursion
-	    (goto-char (point-max))
-	    (forward-line 1)
-	    (insert-buffer forward-buffer))))))
+(defun rmail-forward (resend)
+  "Forward the current message to another user.
+With prefix argument, \"resend\" the message instead of forwarding it;
+see the documentation of `rmail-resend'."
+  (interactive "P")
+  (if resend
+      (call-interactively 'rmail-resend)
+    (let ((forward-buffer (current-buffer))
+	  (subject (concat "["
+			   (let ((from (or (mail-fetch-field "From")
+					   (mail-fetch-field ">From"))))
+			     (if from
+				 (concat (mail-strip-quoted-names from) ": ")
+			       ""))
+			   (or (mail-fetch-field "Subject") "")
+			   "]")))
+      ;; Turn off the usual actions for initializing the message body
+      ;; because we want to get only the text from the failure message.
+      (let (mail-signature mail-setup-hook)
+	;; If only one window, use it for the mail buffer.
+	;; Otherwise, use another window for the mail buffer
+	;; so that the Rmail buffer remains visible
+	;; and sending the mail will get back to it.
+	(if (funcall (if (one-window-p t)
+			 (function mail)
+		       (function mail-other-window))
+		     nil nil subject nil nil nil
+		     (list (list (function (lambda (buf msgnum)
+				   (save-excursion
+				     (set-buffer buf)
+				     (rmail-set-attribute
+				       "forwarded" t msgnum))))
+				 (current-buffer)
+				 rmail-current-message)))
+	    (save-excursion
+	      (goto-char (point-max))
+	      (forward-line 1)
+	      (insert-buffer forward-buffer)))))))
 
 (defun rmail-resend (address &optional from comment mail-alias-file)
   "Resend current message to ADDRESSES.
@@ -1727,7 +1731,8 @@
 	  ;; of the original message.
 	  (let (mail-aliases)
 	    (sendmail-send-it)))
-      (kill-buffer tembuf))))
+      (kill-buffer tembuf))
+    (rmail-set-attribute "resent" t rmail-current-message)))
 
 (defvar mail-unsent-separator
   (concat "^ *---+ +Unsent message follows +---+ *$\\|"