]> code.delx.au - gnu-emacs/blobdiff - lisp/mh-e/mh-print.el
** offby1@blarg.net, Nov 5: calendar gets wrong end for Daylight Savings Time
[gnu-emacs] / lisp / mh-e / mh-print.el
index 8cf91f08d74366eca56b53767e9109c135e170e6..9358f485bfd46b027bfbe0286f086d4639e499c8 100644 (file)
@@ -1,6 +1,6 @@
 ;;; mh-print.el --- MH-E printing support
 
-;; Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Jeffrey C Honig <jch@honig.net>
 ;; Maintainer: Bill Wohler <wohler@newt.com>
 
 ;;; Code:
 
-(eval-when-compile (require 'mh-acros))
-(mh-require-cl)
+(require 'mh-e)
+(require 'mh-scan)
+
 (require 'ps-print)
-(require 'mh-utils)
-(require 'mh-funcs)
-(eval-when-compile (require 'mh-seq))
 
 (defvar mh-ps-print-color-option ps-print-color-p
   "Specify how buffer's text color is printed.
@@ -45,10 +43,10 @@ Valid values are:
    nil         - Do not print colors.
    t           - Print colors.
    black-white - Print colors on black/white printer.
-                See also `ps-black-white-faces'.
+                 See also `ps-black-white-faces'.
 
-Any other value is treated as t. This variable is initialized from
-`ps-print-color-p'.")
+Any other value is treated as t. This variable is initialized
+from `ps-print-color-p'.")
 
 (defvar mh-ps-print-func 'ps-spool-buffer-with-faces
   "Function to use to spool a buffer.
@@ -56,20 +54,39 @@ Any other value is treated as t. This variable is initialized from
 Sensible choices are the functions `ps-spool-buffer' and
 `ps-spool-buffer-with-faces'.")
 
-(defun mh-ps-spool-buffer (buffer)
-  "Spool BUFFER."
-  (save-excursion
-    (set-buffer buffer)
-    (let ((ps-print-color-p mh-ps-print-color-option)
-          (ps-left-header
-           (list
-            (concat "(" (mh-get-header-field "Subject:") ")")
-            (concat "(" (mh-get-header-field "From:") ")")))
-          (ps-right-header
-           (list
-            "/pagenumberstring load"
-            (concat "(" (mh-get-header-field "Date:") ")"))))
-      (funcall mh-ps-print-func))))
+;;;###mh-autoload
+(defun mh-ps-print-msg (range)
+  "Print RANGE\\<mh-folder-mode-map>.
+
+Check the documentation of `mh-interactive-range' to see how RANGE is
+read in interactive use.
+
+This command will print inline text attachments but will not decrypt
+messages. However, when a message is displayed in an MH-Show buffer,
+then that buffer is used verbatim for printing with the caveat that
+only text attachments, if opened inline, are printed. Therefore,
+encrypted messages can be printed by showing and decrypting them
+first.
+
+MH-E uses the \"ps-print\" package to do the printing, so you can
+customize the printing further by going to the `ps-print'
+customization group. This command does not use the options
+`mh-lpr-command-format' or `mh-print-background-flag'. See also the
+commands \\[mh-ps-print-toggle-color] and
+\\[mh-ps-print-toggle-faces]."
+  (interactive (list (mh-interactive-range "Print")))
+  (mh-ps-print-range range nil))
+
+(defun mh-ps-print-range (range file)
+  "Print RANGE to FILE.
+
+This is the function that actually does the work.
+If FILE is nil, then the messages are spooled to the printer."
+  (mh-iterate-on-range msg range
+    (unwind-protect
+        (mh-ps-spool-msg msg))
+    (mh-notate msg mh-note-printed mh-cmd-note))
+  (ps-despool file))
 
 (defun mh-ps-spool-msg (msg)
   "Spool MSG."
@@ -87,15 +104,43 @@ Sensible choices are the functions `ps-spool-buffer' and
       (if buffer
           (kill-buffer buffer)))))
 
-(defun mh-ps-print-range (range file)
-  "Print the messages in RANGE to FILE.
-This is the function that actually does the work.
-If FILE is nil, then the messages are spooled to the printer."
-  (mh-iterate-on-range msg range
-    (unwind-protect
-        (mh-ps-spool-msg msg))
-    (mh-notate msg mh-note-printed mh-cmd-note))
-  (ps-despool file))
+(defun mh-ps-spool-buffer (buffer)
+  "Spool BUFFER."
+  (save-excursion
+    (set-buffer buffer)
+    (let ((ps-print-color-p mh-ps-print-color-option)
+          (ps-left-header
+           (list
+            (concat "(" (mh-get-header-field "Subject:") ")")
+            (concat "(" (mh-get-header-field "From:") ")")))
+          (ps-right-header
+           (list
+            "/pagenumberstring load"
+            (concat "(" (mh-get-header-field "Date:") ")"))))
+      (funcall mh-ps-print-func))))
+
+;;;###mh-autoload
+(defun mh-ps-print-msg-file (range file)
+  "Print RANGE to FILE\\<mh-folder-mode-map>.
+
+Check the documentation of `mh-interactive-range' to see how RANGE is
+read in interactive use.
+
+This command will print inline text attachments but will not decrypt
+messages. However, when a message is displayed in an MH-Show buffer,
+then that buffer is used verbatim for printing with the caveat that
+only text attachments, if opened inline, are printed. Therefore,
+encrypted messages can be printed by showing and decrypting them
+first.
+
+MH-E uses the \"ps-print\" package to do the printing, so you can
+customize the printing further by going to the `ps-print'
+customization group. This command does not use the options
+`mh-lpr-command-format' or `mh-print-background-flag'. See also the
+commands \\[mh-ps-print-toggle-color] and
+\\[mh-ps-print-toggle-faces]."
+  (interactive (list (mh-interactive-range "Print") (mh-ps-print-preprint 1)))
+  (mh-ps-print-range range file))
 
 (defun mh-ps-print-preprint (prefix-arg)
   "Provide a better default file name for `ps-print-preprint'.
@@ -103,54 +148,12 @@ Pass along the PREFIX-ARG to it."
   (let ((buffer-file-name (format "mh-%s" (substring (buffer-name) 1))))
     (ps-print-preprint prefix-arg)))
 
-;;;###mh-autoload
-(defun mh-ps-print-msg (range)
-  "Print the messages in RANGE\\<mh-folder-mode-map>.
-
-Check the documentation of `mh-interactive-range' to see how RANGE is read in
-interactive use.
-
-This command will print inline text attachments but will not decrypt messages.
-However, when a message is displayed in an MH-Show buffer, then that buffer is
-used verbatim for printing with the caveat that only text attachments, if
-opened inline, are printed. Therefore, encrypted messages can be printed by
-showing and decrypting them first.
-
-MH-E uses the \"ps-print\" package to do the printing, so you can customize
-the printing further by going to the `ps-print' customization group. This
-command does not use the options `mh-lpr-command-format' or
-`mh-print-background-flag'. See also the commands \\[mh-ps-print-toggle-color]
-and \\[mh-ps-print-toggle-faces]."
-  (interactive (list (mh-interactive-range "Print")))
-  (mh-ps-print-range range nil))
-
-;;;###mh-autoload
-(defun mh-ps-print-msg-file (range file)
-  "Print the messages in RANGE to FILE\\<mh-folder-mode-map>.
-
-Check the documentation of `mh-interactive-range' to see how RANGE is read in
-interactive use.
-
-This command will print inline text attachments but will not decrypt messages.
-However, when a message is displayed in an MH-Show buffer, then that buffer is
-used verbatim for printing with the caveat that only text attachments, if
-opened inline, are printed. Therefore, encrypted messages can be printed by
-showing and decrypting them first.
-
-MH-E uses the \"ps-print\" package to do the printing, so you can customize
-the printing further by going to the `ps-print' customization group. This
-command does not use the options `mh-lpr-command-format' or
-`mh-print-background-flag'. See also the commands \\[mh-ps-print-toggle-color]
-and \\[mh-ps-print-toggle-faces]."
-  (interactive (list (mh-interactive-range "Print") (mh-ps-print-preprint 1)))
-  (mh-ps-print-range range file))
-
 ;;;###mh-autoload
 (defun mh-ps-print-toggle-faces ()
  "Toggle whether printing is done with faces or not.
 
-When faces are enabled, the printed message will look very similar to the
-message in the MH-Show buffer."
+When faces are enabled, the printed message will look very
+similar to the message in the MH-Show buffer."
  (interactive)
  (if (eq mh-ps-print-func 'ps-spool-buffer-with-faces)
      (progn
@@ -163,13 +166,13 @@ message in the MH-Show buffer."
 (defun mh-ps-print-toggle-color ()
   "Toggle whether color is used in printing messages.
 
-Colors are emulated on black-and-white printers with shades of gray. This
-might produce illegible output, even if your screen colors only use shades of
-gray. If this is the case, try using this command to toggle between color, no
-color, and a black and white representation of the colors and see which works
-best. You change this setting permanently by customizing the option
+Colors are emulated on black-and-white printers with shades of
+gray. This might produce illegible output, even if your screen
+colors only use shades of gray. If this is the case, try using
+this command to toggle between color, no color, and a black and
+white representation of the colors and see which works best. You
+change this setting permanently by customizing the option
 `ps-print-color-p'."
-
  (interactive)
  (if (eq mh-ps-print-color-option nil)
      (progn
@@ -177,21 +180,22 @@ best. You change this setting permanently by customizing the option
        (message "Colors will be printed as black & white"))
    (if (eq mh-ps-print-color-option 'black-white)
        (progn
-        (setq mh-ps-print-color-option t)
-        (message "Colors will be printed"))
+         (setq mh-ps-print-color-option t)
+         (message "Colors will be printed"))
      (setq mh-ps-print-color-option nil)
      (message "Colors will not be printed"))))
 
-;;; Old non-PS based printing
+;; Old non-PS based printing
 ;;;###mh-autoload
 (defun mh-print-msg (range)
-  "Print the messages in RANGE the old fashioned way\\<mh-folder-mode-map>.
+  "Print RANGE the old fashioned way\\<mh-folder-mode-map>.
 
-The message is formatted with \"mhl\" (see option `mh-mhl-format-file') and
-printed with the \"lpr\" command (see option `mh-lpr-command-format').
+The message is formatted with \"mhl\" (see option
+`mh-mhl-format-file') and printed with the \"lpr\" command (see
+option `mh-lpr-command-format').
 
-Check the documentation of `mh-interactive-range' to see how RANGE is read in
-interactive use.
+Check the documentation of `mh-interactive-range' to see how
+RANGE is read in interactive use.
 
 Consider using \\[mh-ps-print-msg] instead."
   (interactive (list (mh-interactive-range "Print")))
@@ -241,10 +245,10 @@ Consider using \\[mh-ps-print-msg] instead."
 
 (provide 'mh-print)
 
-;;; Local Variables:
-;;; indent-tabs-mode: nil
-;;; sentence-end-double-space: nil
-;;; End:
+;; Local Variables:
+;; indent-tabs-mode: nil
+;; sentence-end-double-space: nil
+;; End:
 
 ;; arch-tag: 8d84d50b-2a49-4d0d-b51e-ba9c9b6fc679
 ;;; mh-print.el ends here