This commit was generated by cvs2svn to compensate for changes in r5670,
[chise/xemacs-chise.git.1] / lisp / printer.el
index 2a9cc7b..ed1ce4d 100644 (file)
   "Generic printing support."
   :group 'wp)
 
-(defcustom printer-name nil
+(defcustom printer-name nil ; "Okidata OL610e/PS PostScript"
   "*Name of printer to print to.
 If nil, use default.
-Under Windows, use `mswindows-printer-list' to get names of installed
-printers."
+Under MS Windows, this can have the form `\\\\STOLI\\HP-345-PS'."
   :type 'string
   :group 'printing)
 
@@ -134,54 +133,53 @@ user-id          User logon id
 user-name        User full name"
   (error "not yet implemented"))
 
-(defun generic-print-buffer (&optional buffer)
-  "Print buffer BUFFER using a printing method appropriate to the O.S. being run.
+(defun generic-print-buffer (&optional buf)
+  "Print buffer BUF using a printing method appropriate to the O.S. being run.
 Under Unix, `lpr' is normally used to spool out a no-frills version of the
 buffer, or the `ps-print' package is used to pretty-print the buffer to a
 PostScript printer.  Under MS Windows, the built-in printing support is used.
 
-If BUFFER is nil or omitted, the current buffer is used."
+If BUF is nil or omitted, the current buffer is used."
   (interactive)
-  (generic-print-region (point-min buffer) (point-max buffer) buffer))
+  (generic-print-region (point-min buf) (point-max buf) buf))
 
-(defun generic-print-region (start end &optional buffer)
+(defun generic-print-region (b e &optional buf)
   "Print region using a printing method appropriate to the O.S. being run.
-The region between START and END of BUFFER (defaults to the current
-buffer) is printed.
+The region between B and E of BUF (defaults to the current buffer) is printed.
 
 Under Unix, `lpr' is normally used to spool out a no-frills version of the
 buffer, or the `ps-print' package is used to pretty-print the buffer to a
 PostScript printer.  Under MS Windows, the built-in printing support is used."
   (cond ((valid-specifier-tag-p 'msprinter)
+        (or (stringp printer-name)
+            (error "Please set `printer-name'"))
         (let (d f)
-          (setq buffer (decode-buffer buffer))
+          (setq buf (decode-buffer buf))
           (unwind-protect
               (progn
                 (setq d (make-device 'msprinter printer-name))
                 (setq f (make-frame
-                         (list* 'name (concat (substitute ?_ ?.
-                                                          (buffer-name buffer))
-                                              " - XEmacs")
-                                '(menubar-visible-p nil
-                                  has-modeline-p nil
-                                  default-toolbar-visible-p nil
-                                  default-gutter-visible-p nil
-                                  minibuffer none
-                                  modeline-shadow-thickness 0
-                                  vertical-scrollbar-visible-p nil
-                                  horizontal-scrollbar-visible-p nil))
+                         '(name "Test!"
+                                menubar-visible-p nil
+                                has-modeline-p nil
+                                default-toolbar-visible-p nil
+                                default-gutter-visible-p nil
+                                minibuffer none
+                                modeline-shadow-thickness 0
+                                vertical-scrollbar-visible-p nil
+                                horizontal-scrollbar-visible-p nil)
                          d))
                 (let* ((w (frame-root-window f))
                        (vertdpi (cdr (device-system-metric d 'device-dpi)))
                        (pixel-vertical-clip-threshold (/ vertdpi 2))
                        (last-end 0)
                        done)
-                  (set-window-buffer w (or buffer (current-buffer)))
-                  (set-window-start w start)
+                  (set-window-buffer w (or buf (current-buffer)))
+                  (set-window-start w b)
                   (while (not done)
                     (redisplay-frame f)
                     (print-job-eject-page f)
-                    (let ((this-end (window-end w))
+                    (let ((end (window-end w))
                           (pixvis (window-last-line-visible-height w)))
                       ;; in case we get stuck somewhere, bow out
                       ;; rather than printing an infinite number of
@@ -189,14 +187,14 @@ PostScript printer.  Under MS Windows, the built-in printing support is used."
                       ;; bigger than an entire page.  but we really
                       ;; need this check here.  we should be more
                       ;; clever in our check, to deal with this case.
-                      (if (or (= this-end last-end)
+                      (if (or (= end last-end)
                               ;; #### fuckme!  window-end returns a value
                               ;; outside of the valid range of buffer
                               ;; positions!!!
-                              (>= this-end end))
+                              (>= end e))
                           (setq done t)
-                        (setq last-end this-end)
-                        (set-window-start w this-end)
+                        (setq last-end end)
+                        (set-window-start w end)
                         (if pixvis
                             (save-selected-window
                               (select-window w)
@@ -208,5 +206,5 @@ PostScript printer.  Under MS Windows, the built-in printing support is used."
             )))
        ((and (not (eq system-type 'windows-nt))
              (fboundp 'lpr-buffer))
-        (lpr-region buffer))
+        (lpr-region buf))
        (t (error "No print support available"))))