kayvan@APPLE.COM (Kayvan Sylvan) (12/01/88)
GNU Emacs version 18.52.
Here's a fix for lpr.el on System V systems. The lpr commands do not work
as distributed. This fix has been marginally tested. If there are errors,
please fix them and mail me (satyr!kayvan@apple.com).
Repeat-By:
On Unix System V (which uses the "lp" command). Visit a buffer
and do M-x lpr-buffer. There is no output.
The lp command syntax differs from the lpr command syntax.
Fix:
The new variable lpr-default-switches is a list of switches (to
concatenate with the name) and pass on to lpr-command. It is conditionally
set to '("-J" "-T") for BSD systems and to '("-t") for SysV.
The function lpr-default-list makes the argument list for the
appropriate lpr-command.
*** lpr.el.orig Wed Nov 30 21:56:44 1988
--- lpr.el Wed Nov 30 22:43:24 1988
***************
*** 19,22 ****
--- 19,24 ----
;; and this notice must be preserved on all copies.
+ ;; Modified by Kayvan Aghaiepour (satyr!kayvan@apple.com) Wed Nov 30 1988
+ ;; Support for Unix System V lp command syntax.
;(defconst lpr-switches nil
***************
*** 27,30 ****
--- 29,37 ----
"Shell command for printing a file")
+ (defvar lpr-default-switches (if (eq system-type 'usg-unix-v)
+ '("-t") '("-J" "-T"))
+ "List of default strings to pass as switches to lpr-command.
+ These are interspersed with the buffer name to create the command line.")
+
(defun lpr-buffer ()
"Print buffer contents as with Unix command `lpr'.
***************
*** 65,71 ****
(setq start (point-min) end (point-max))))
(apply 'call-process-region
! (nconc (list start end lpr-command
! nil nil nil
! "-J" name "-T" name)
switches))
(message "Spooling...done"))))
--- 72,86 ----
(setq start (point-min) end (point-max))))
(apply 'call-process-region
! (nconc (list start end lpr-command nil nil nil)
! (lpr-default-list name)
switches))
(message "Spooling...done"))))
+
+ (defun lpr-default-list (name)
+ "Takes BUFFERNAME and creates a list for print-region-1."
+ (let ((new-list nil) (old-list lpr-default-switches) next-switch)
+ (while old-list ; traverse old-list
+ (setq next-switch (car old-list)) ; get first member
+ (setq new-list (append new-list (list (concat next-switch name))))
+ (setq old-list (cdr old-list))) ; cdr down the list
+ new-list)) ; return the list