*** empty log message ***
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Mon, 31 Dec 2001 00:53:43 +0000 (00:53 +0000)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Mon, 31 Dec 2001 00:53:43 +0000 (00:53 +0000)
.cvsignore
lisp/ChangeLog
lisp/gnus-art.el
lisp/gnus-sum.el
lisp/gnus-topic.el
lisp/mailcap.el

index 9c59f23..75f639b 100644 (file)
@@ -6,3 +6,4 @@ diff-lisp.el
 diffit
 makepub
 cvs-access
+cup-page
index c3de4fe..1fd17a2 100644 (file)
@@ -1,3 +1,16 @@
+2001-12-31  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus-sum.el (gnus-print-buffer): Made into own function.
+       (gnus-summary-print-article): Use it.
+
+       * mailcap.el (mailcap-mime-info): Actually return the bit that we
+       looked for when REQUEST is a string.
+
+       * gnus-art.el (gnus-mime-button-commands): Add printing
+       keystroke. 
+       (gnus-mime-copy-part): Doc fix.
+       (gnus-mime-print-part): New command.
+
 2001-12-31  Simon Josefsson  <jas@extundo.com>
 
        * imap.el (imap-parse-fetch): Notice empty flags responses.  From
index 8849c41..39dca82 100644 (file)
@@ -3439,6 +3439,7 @@ If ALL-HEADERS is non-nil, no headers are hidden."
     (gnus-mime-inline-part "i" "View As Text, In This Buffer")
     (gnus-mime-internalize-part "E" "View Internally")
     (gnus-mime-externalize-part "e" "View Externally")
+    (gnus-mime-print-part "p" "Print")
     (gnus-mime-pipe-part "|" "Pipe To Command...")
     (gnus-mime-action-on-part "." "Take action on the part")))
 
@@ -3619,7 +3620,7 @@ If ALL-HEADERS is non-nil, no headers are hidden."
       (gnus-mm-display-part handle))))
 
 (defun gnus-mime-copy-part (&optional handle)
-  "Put the the MIME part under point into a new buffer."
+  "Put the MIME part under point into a new buffer."
   (interactive)
   (gnus-article-check-buffer)
   (let* ((handle (or handle (get-text-property (point) 'gnus-data)))
@@ -3643,6 +3644,32 @@ If ALL-HEADERS is non-nil, no headers are hidden."
        (setq buffer-file-name nil))
       (goto-char (point-min)))))
 
+(defun gnus-mime-print-part (&optional handle)
+  "Print the MIME part under point."
+  (interactive)
+  (gnus-article-check-buffer)
+  (let* ((handle (or handle (get-text-property (point) 'gnus-data)))
+        (contents (and handle (mm-get-part handle)))
+        (file (make-temp-name (expand-file-name "mm." dir)))
+        (printer (mailcap-mime-info (mm-handle-type handle) "print")))
+    (when contents
+       (if printer
+           (unwind-protect
+               (progn
+                 (with-temp-file file
+                   (insert contents))
+                 (call-process shell-file-name nil
+                               (setq buffer
+                                     (generate-new-buffer " *mm*"))
+                               nil
+                               shell-command-switch
+                               (mm-mailcap-command
+                                method file (mm-handle-type handle))))
+             (delete-file file))
+         (with-temp-buffer
+           (insert contents)
+           (gnus-print-buffer))))))
+
 (defun gnus-mime-inline-part (&optional handle arg)
   "Insert the MIME part under point into the current buffer."
   (interactive (list nil current-prefix-arg))
index 750439a..b546b04 100644 (file)
@@ -36,9 +36,8 @@
 (require 'gnus-undo)
 (require 'gnus-util)
 (require 'mm-decode)
-;; Recursive :-(.
-;; (require 'gnus-art)
 (require 'nnoo)
+
 (autoload 'gnus-summary-limit-include-cached "gnus-cache" nil t)
 (autoload 'gnus-cache-write-active "gnus-cache")
 (autoload 'gnus-mailing-list-insinuate "gnus-ml" nil t)
@@ -2708,9 +2707,6 @@ marks of articles."
 
 ;; Saving hidden threads.
 
-(put 'gnus-save-hidden-threads 'lisp-indent-function 0)
-(put 'gnus-save-hidden-threads 'edebug-form-spec '(body))
-
 (defmacro gnus-save-hidden-threads (&rest forms)
   "Save hidden threads, eval FORMS, and restore the hidden threads."
   (let ((config (make-symbol "config")))
@@ -2719,6 +2715,8 @@ marks of articles."
           (save-excursion
             ,@forms)
         (gnus-restore-hidden-threads-configuration ,config)))))
+(put 'gnus-save-hidden-threads 'lisp-indent-function 0)
+(put 'gnus-save-hidden-threads 'edebug-form-spec '(body))
 
 (defun gnus-data-compute-positions ()
   "Compute the positions of all articles."
@@ -7902,42 +7900,45 @@ to save in."
   (dolist (article (gnus-summary-work-articles n))
     (gnus-summary-select-article nil nil 'pseudo 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)
-             (when (gnus-visual-p 'article-highlight 'highlight)
-               ;; Copy-to-buffer doesn't copy overlay.  So redo
-               ;; highlight.
-               (let ((gnus-article-buffer buffer))
-                 (gnus-article-highlight-citation t)
-                 (gnus-article-highlight-signature)))
-             (let ((ps-left-header
-                    (list
-                     (concat "("
-                             (gnus-summary-print-truncate-and-quote
-                              (mail-header-subject gnus-current-headers)
-                              66) ")")
-                     (concat "("
-                             (gnus-summary-print-truncate-and-quote
-                              (mail-header-from gnus-current-headers)
-                              45) ")")))
-                   (ps-right-header
-                    (list
-                     "/pagenumberstring load"
-                     (concat "("
-                             (mail-header-date gnus-current-headers) ")"))))
-               (gnus-run-hooks 'gnus-ps-print-hook)
-               (save-excursion
-                 (if window-system
-                     (ps-spool-buffer-with-faces)
-                   (ps-spool-buffer)))))
-         (kill-buffer buffer))))
+      (gnus-print-buffer))
     (gnus-summary-remove-process-mark article))
   (ps-despool filename))
 
+(defun gnus-print-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)
+         (when (gnus-visual-p 'article-highlight 'highlight)
+           ;; Copy-to-buffer doesn't copy overlay.  So redo
+           ;; highlight.
+           (let ((gnus-article-buffer buffer))
+             (gnus-article-highlight-citation t)
+             (gnus-article-highlight-signature)))
+         (let ((ps-left-header
+                (list
+                 (concat "("
+                         (gnus-summary-print-truncate-and-quote
+                          (mail-header-subject gnus-current-headers)
+                          66) ")")
+                 (concat "("
+                         (gnus-summary-print-truncate-and-quote
+                          (mail-header-from gnus-current-headers)
+                          45) ")")))
+               (ps-right-header
+                (list
+                 "/pagenumberstring load"
+                 (concat "("
+                         (mail-header-date gnus-current-headers) ")"))))
+           (gnus-run-hooks 'gnus-ps-print-hook)
+           (save-excursion
+             (if window-system
+                 (ps-spool-buffer-with-faces)
+               (ps-spool-buffer)))))
+      (kill-buffer buffer))))
+
 (defun gnus-summary-show-article (&optional arg)
   "Force redisplaying of the current article.
 If ARG (the prefix) is a number, show the article with the charset
index 064bcb0..63f08c7 100644 (file)
@@ -164,6 +164,7 @@ with some simple extensions.
                          (mapcar 'list (gnus-topic-list))
                          nil t)))
   (dolist (topic (gnus-current-topics topic))
+    (gnus-topic-goto-topic topic)
     (gnus-topic-fold t))
   (gnus-topic-goto-topic topic))
 
index b61a2f1..52e5c9a 100644 (file)
@@ -734,9 +734,8 @@ this type is returned."
        ((or (null request) (equal request ""))
        (mailcap-unescape-mime-test (cdr (assq 'viewer viewer)) info))
        ((stringp request)
-       (if (or (eq request 'test) (eq request 'viewer))
-           (mailcap-unescape-mime-test
-            (cdr-safe (assoc request viewer)) info)))
+       (mailcap-unescape-mime-test
+        (cdr-safe (assoc request viewer)) info))
        ((eq request 'all)
        passed)
        (t