Importing qgnus-0.19
[elisp/gnus.git-] / lisp / gnus-sum.el
index 2b9b477..0168f48 100644 (file)
@@ -2715,8 +2715,8 @@ If NO-DISPLAY, don't generate a summary buffer."
          ;; article in the group.
          (goto-char (point-min))
          (gnus-summary-position-point)
-         (gnus-set-mode-line 'summary)
-         (gnus-configure-windows 'summary 'force))     
+         (gnus-configure-windows 'summary 'force)
+         (gnus-set-mode-line 'summary))        
        (when (get-buffer-window gnus-group-buffer t)
          ;; Gotta use windows, because recenter does weird stuff if
          ;; the current buffer ain't the displayed window.
@@ -6676,25 +6676,30 @@ article.  If BACKWARD (the prefix) is non-nil, search backward instead."
     (when gnus-page-broken
       (gnus-narrow-to-page))))
 
-(defun gnus-summary-print-article (&optional filename)
-  "Generate and print a PostScript image of the article buffer.
+(defun gnus-summary-print-article (&optional filename n)
+  "Generate and print a PostScript image of the N next (mail) articles.
 
-If the optional argument FILENAME is nil, send the image to the printer.
-If FILENAME is a string, save the PostScript image in a file with that
-name.  If FILENAME is a number, prompt the user for the name of the file
+If N is negative, print the N previous articles.  If N is nil and articles
+have been marked with the process mark, print these instead.
+
+If the optional second argument FILENAME is nil, send the image to the
+printer.  If FILENAME is a string, save the PostScript image in a file with
+that name.  If FILENAME is a number, prompt the user for the name of the file
 to save in."
-  (interactive (list (ps-print-preprint current-prefix-arg)))
-  (gnus-summary-select-article)
-  (gnus-eval-in-buffer-window gnus-article-buffer
-    (let ((buffer (generate-new-buffer " *print*")))
-      (unwind-protect
-         (progn
-           (copy-to-buffer buffer (point-min) (point-max))
-           (set-buffer buffer)
-           (gnus-article-delete-invisible-text)
-           (run-hooks 'gnus-ps-print-hook)
-           (ps-print-buffer-with-faces filename))
-       (kill-buffer buffer)))))
+  (interactive (list (ps-print-preprint current-prefix-arg)
+                    current-prefix-arg))
+  (dolist (nbr (gnus-summary-work-articles n))
+    (gnus-summary-select-article 'all nil 'pseudo nbr)
+    (gnus-eval-in-buffer-window gnus-article-buffer
+      (let ((buffer (generate-new-buffer " *print*")))
+       (unwind-protect
+           (progn
+             (copy-to-buffer buffer (point-min) (point-max))
+             (set-buffer buffer)
+             (gnus-article-delete-invisible-text)
+             (run-hooks 'gnus-ps-print-hook)
+             (ps-print-buffer-with-faces filename))
+         (kill-buffer buffer))))))
 
 (defun gnus-summary-show-article (&optional arg)
   "Force re-fetching of the current article.