home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / gnu / lucid / help-lucid-emacs / text0309.txt < prev    next >
Encoding:
Text File  |  1993-07-14  |  1.4 KB  |  50 lines

  1.  
  2. It's just some hacks I put together. Not very good:
  3.  
  4. (defvar enscript::printer (or (getenv "PRINTER") "" ))
  5. (defvar enscript::switches "-h2rG")
  6.  
  7. (defun enscript-buffer (printer)
  8.   (interactive (list
  9.         (read-string "Printer? " enscript::printer)))
  10.   (setq enscript::printer printer)
  11.   (enscript-region (point-min) (point-max) enscript::switches printer))
  12.  
  13. (defun enscript-header (printer header)
  14.   (interactive (list
  15.         (read-string "Printer? " enscript::printer)
  16.         (read-string "Header? " (buffer-name))
  17.         ))
  18.   (enscript-region (point-min) (point-max)
  19.            (concat enscript::switches  "-b\"" header "\"")
  20.            printer))
  21.  
  22. (defun enscript-region (start end switches printer)
  23.   (interactive)
  24.   (let(
  25.        (name (concat (buffer-name) "-Emacs-Buffer"))
  26.        (width tab-width)
  27.        (filename (make-temp-name "/tmp/"))
  28.        )
  29.     (save-excursion
  30.       (message "Spooling...")
  31.       (if (/= tab-width 8)
  32.       (let ((oldbuf (current-buffer)))
  33.         (set-buffer (get-buffer-create " *spool temp*"))
  34.         (widen) (erase-buffer)
  35.         (insert-buffer-substring oldbuf start end)
  36.         (setq tab-width width)
  37.         (untabify (point-min) (point-max))
  38.         (setq start (point-min) end (point-max))))
  39.       (write-region start end filename)
  40.       (apply 'call-process
  41.          (nconc (list "enscript" nil nil nil)
  42.             (list (concat "-b\'" name "\'")
  43.               (concat "-P" printer)
  44.               switches
  45.               filename))))
  46.     (delete-file filename)
  47.     (message "Spooling...done")))
  48.  
  49.  
  50.