From 868c7abd7c409fa70570f9e342ee8719ad0914a4 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Mon, 15 Jan 1996 22:50:00 +0000 Subject: [PATCH] (ps-lpr-switches, ps-lpr-command): Just setq them; duplicate defvar is a bad idea. (dos-printer): New variable, the local printer device. (dos-print-region-function): New function, used for `print-region-function'. (dos-ps-printer): New variable; if a string, it's the name of the local printer device. (ps-lpr-command, ps-lpr-switches): Set them properly for Ghostscript. (lpr-headers-switches): Set to non-nil, to disable page headers' support under MS-DOS. --- lisp/dos-fns.el | 68 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/lisp/dos-fns.el b/lisp/dos-fns.el index b85bea9e076..b7202d9c2c7 100644 --- a/lisp/dos-fns.el +++ b/lisp/dos-fns.el @@ -192,3 +192,71 @@ against the file name, and TYPE is nil for text, t for binary.") (defun select-frame (frame &optional no-enter) "Select FRAME for input events." (selected-frame)) + +;; Support for printing under MS-DOS, see lpr.el and ps-print.el. +(defvar dos-printer "PRN" + "*The name of a local MS-DOS device to which data is sent for printing. +\(Note that PostScript files are sent to `dos-ps-printer', which see.\) + +Typical non-default settings would be \"LPT1\" to \"LPT3\" for +parallel printers, or \"COM1\" to \"COM4\" or \"AUX\" for serial +printers. You can also set it to a name of a file, in which +case the output gets appended to that file. +If you want to discard the printed output, set this to \"NUL\".") + +(defun dos-print-region-function (start end + &optional lpr-prog + delete-text buf display rest) + "MS-DOS-specific function to print the region on a printer. +Writes the region to the device or file which is a value of +`dos-printer' \(which see\). Ignores any arguments beyond +START and END." + + (write-region start end dos-printer t 0) + ;; Make each print-out start on a new page, but don't waste + ;; paper if there was a form-feed at the end of this file. + (if (not (char-equal (char-after (1- end)) ?\C-l)) + (write-region "\f" nil dos-printer t 0))) + +;; Set this to nil if you have a port of the `lpr' program and +;; you want to use it for printing. If the default setting is +;; in effect, `lpr-command' and its switches are ignored when +;; printing with `lpr-xxx' and `print-xxx'. +(setq print-region-function 'dos-print-region-function) + +;; Set this to nil if you have a port of the `pr' program +;; (e.g., from GNU Textutils), or if you have an `lpr' +;; program (see above) that can print page headers. +;; If `lpr-headers-switches' is non-nil (the default) and +;; `print-region-function' is set to `dos-print-region-function', +;; then requests to print page headers will be silently +;; ignored, and `print-buffer' and `print-region' produce +;; the same output as `lpr-buffer' and `lpr-region', accordingly. +(setq lpr-headers-switches "(page headers are not supported)") + +(defvar dos-ps-printer "PRN" + "*Method for printing PostScript files under MS-DOS. + +If the value is a string, then it is taken as the name of the +device to which PostScript files are written. By default it +is the default printer device; typical non-default settings +would be \"LPT1\" to \"LPT3\" for parallel printers, or \"COM1\" +to \"COM4\" or \"AUX\" for serial printers. You can also set it +to a name of a file, in which case the output gets appended +to that file. \(Note that `ps-print' package already has +facilities for printing to a file, so you might as well use +them instead of changing the setting of this variable.\) If +you want to silently discard the printed output, set this to \"NUL\". + +If the value is anything but a string, PostScript files will be +piped to the program given by `ps-lpr-command', with switches +given by `ps-lpr-switches', which see.") + +(setq ps-lpr-command "gs") + +(setq ps-lpr-switches '("-q" "-dNOPAUSE" "-sDEVICE=epson" "-r240x60" + "-sOutputFile=LPT1" "-")) + +(provide 'dos-fns) + +; dos-fns.el ends here -- 2.39.2