changeset 23985:9cdc05332687

(rmail-summary-output-to-rmail-file): Use rmail-output-read-rmail-file-name to read the file name. Always call rmail-output-to-rmail-file noninteractively. When count > 1, do the loop here. Handle rmail-delete-after-output here. (rmail-summary-output): Similar changes.
author Richard M. Stallman <rms@gnu.org>
date Mon, 04 Jan 1999 01:36:00 +0000
parents 2bc2b506f787
children 2c996615e2e9
files lisp/mail/rmailsum.el
diffstat 1 files changed, 36 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/mail/rmailsum.el	Sun Jan 03 16:36:41 1999 +0000
+++ b/lisp/mail/rmailsum.el	Mon Jan 04 01:36:00 1999 +0000
@@ -1456,7 +1456,7 @@
 
 ;; Summary output commands.
 
-(defun rmail-summary-output-to-rmail-file (&optional file-name)
+(defun rmail-summary-output-to-rmail-file (&optional file-name &optional n)
   "Append the current message to an Rmail file named FILE-NAME.
 If the file does not exist, ask if it should be created.
 If file is being visited, the message is appended to the Emacs
@@ -1464,11 +1464,41 @@
 
 A prefix argument N says to output N consecutive messages
 starting with the current one.  Deleted messages are skipped and don't count."
-  (interactive)
-  (with-current-buffer rmail-buffer
-    (if file-name
-	(rmail-output-to-rmail-file file-name)
-      (call-interactively 'rmail-output-to-rmail-file))))
+  (interactive
+   (progn (require 'rmailout)
+	  (list (rmail-output-read-rmail-file-name)
+		(prefix-numeric-value current-prefix-arg))))
+  (let ((i 0))
+    (while (< i n)
+      (setq i (1+ i))
+      (rmail-summary-goto-msg)
+      (with-current-buffer rmail-buffer
+	(let ((rmail-delete-after-output nil))
+	  (rmail-output-to-rmail-file file-name 1)))
+      (if rmail-delete-after-output
+	  (rmail-summary-delete-forward nil)
+	(if (< i n)
+	    (rmail-summary-next-msg 1))))))
+
+(defun rmail-summary-output (&optional file-name n)
+  "Append this message to Unix mail file named FILE-NAME.
+
+A prefix argument N says to output N consecutive messages
+starting with the current one.  Deleted messages are skipped and don't count."
+  (interactive
+   (progn (require 'rmailout)
+	  (list (rmail-output-read-file-name)
+		(prefix-numeric-value current-prefix-arg))))
+  (let ((i 0))
+    (while (< i n)
+      (setq i (1+ i))
+      (with-current-buffer rmail-buffer
+	(let ((rmail-delete-after-output nil))
+	  (rmail-output file-name 1)))
+      (if rmail-delete-after-output
+	  (rmail-summary-delete-forward nil)
+	(if (< i n)
+	    (rmail-summary-next-msg 1))))))
 
 (defun rmail-summary-output-menu ()
   "Output current message to another Rmail file, chosen with a menu.
@@ -1483,17 +1513,6 @@
   (if rmail-delete-after-output
       (rmail-summary-delete-forward nil)))
 
-(defun rmail-summary-output (&optional file-name)
-  "Append this message to Unix mail file named FILE-NAME.
-
-A prefix argument N says to output N consecutive messages
-starting with the current one.  Deleted messages are skipped and don't count."
-  (interactive)
-  (with-current-buffer rmail-buffer
-    (if file-name
-	(rmail-output file-name)
-      (call-interactively 'rmail-output))))
-
 (defun rmail-summary-construct-io-menu ()
   (let ((files (rmail-find-all-files rmail-secondary-file-directory)))
     (if files