;ELC   
;;; Compiled by rms@psilocin.ai.mit.edu on Wed Jul  8 20:19:12 1998
;;; from file /gd/gnu/emacs/lisp/lpr.el
;;; in Emacs version 20.2.97.2
;;; with bytecomp version 2.47
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.
(if (and (boundp 'emacs-version)
	 (< (aref emacs-version (1- (length emacs-version))) ?A)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19.29")))
    (error "`lpr.el' was compiled for Emacs 19.29 or later"))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(custom-declare-group 'lpr nil "Print Emacs buffer on line printer" :group 'wp)
#@643 *The name of a local printer to which data is sent for printing.
(Note that PostScript files are sent to `ps-printer-name', which see.)

On Unix-like systems, a string value should be a name understood by
lpr's -P option.

On MS-DOS and MS-Windows systems, it is the name of a printer device or
port.  Typical non-default settings would be "LPT1" to "LPT3" for
parallel printers, or "COM1" to "COM4" or "AUX" for serial
printers, or "//hostname/printer" for a shared network printer.  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".
(custom-declare-variable 'printer-name '(if (memq system-type '(ms-dos windows-nt)) "PRN") '(#$ . -675) :type 'file :group 'lpr)
#@181 *List of strings to pass as extra options for the printer program.
It is recommended to set `printer-name' instead of including an explicit
switch on this list.
See `lpr-command'.
(custom-declare-variable 'lpr-switches 'nil '(#$ . -1453) :type '(repeat (string :tag "Argument")) :group 'lpr)
#@207 *Non-nil means construct -T and -J options for the printer program.
These are made assuming that the program is `lpr';
if you are using some other incompatible printer program,
this variable should be nil.
(custom-declare-variable 'lpr-add-switches '(eq system-type 'berkeley-unix) '(#$ . -1752) :type 'boolean :group 'lpr)
#@39 *Name of program for printing a file.
(custom-declare-variable 'lpr-command '(if (memq system-type '(usg-unix-v dgux hpux irix)) "lp" "lpr") '(#$ . -2082) :type 'string :group 'lpr)
#@163 *List of strings of options to request page headings in the printer program.
If nil, we run `lpr-page-header-program' to make page headings
and print the result.
(custom-declare-variable 'lpr-headers-switches 'nil '(#$ . -2271) :type '(repeat (string :tag "Argument")) :group 'lpr)
#@112 Function to call to print the region on a printer.
See definition of `print-region-1' for calling conventions.
(custom-declare-variable 'print-region-function 'nil '(#$ . 2560) :type 'function :group 'lpr)
#@53 *Name of program for adding page headers to a file.
(custom-declare-variable 'lpr-page-header-program '"pr" '(#$ . -2772) :type 'string :group 'lpr)
#@145 *List of strings to use as options for the page-header-generating program.
The variable `lpr-page-header-program' specifies the program to use.
(custom-declare-variable 'lpr-page-header-switches ''("-F") '(#$ . -2928) :type '(repeat string) :group 'lpr)
#@120 Print buffer contents as with Unix command `lpr'.
`lpr-switches' is a list of extra switches (strings) to pass to lpr.
(defalias 'lpr-buffer #[nil "\301ed\302$\207" [lpr-switches print-region-1 nil] 5 (#$ . 3189) nil])
#@123 Print buffer contents as with Unix command `lpr -p'.
`lpr-switches' is a list of extra switches (strings) to pass to lpr.
(defalias 'print-buffer #[nil "\301ed\302$\207" [lpr-switches print-region-1 t] 5 (#$ . 3416) nil])
#@120 Print region contents as with Unix command `lpr'.
`lpr-switches' is a list of extra switches (strings) to pass to lpr.
(defalias 'lpr-region #[(start end) "\303	\n\304$\207" [start end lpr-switches print-region-1 nil] 5 (#$ . 3646) "r"])
#@123 Print region contents as with Unix command `lpr -p'.
`lpr-switches' is a list of extra switches (strings) to pass to lpr.
(defalias 'print-region #[(start end) "\303	\n\304$\207" [start end lpr-switches print-region-1 t] 5 (#$ . 3892) "r"])
(defalias 'print-region-1 #[(start end switches page-headers) "\306 \307P\306 \307P\206 	\n\206 	\310\212 \203; !\203; \311!;\2034 !C\2026 !\"\"\"\"\203K \312\313\314\"\315#P\202L \316\317\320\f\"\210\321U\204{ \322#$\"\211%@#%A$\212$b\210\323 $)\324ed\"\210) \203\262 !\204\262 \322#$\"\211%@#%A$)\325\326#$&\327\211\310\330D'\244&\210e#d$\325(\206\271 \326#$)\310\211\211\257*\205\315 \331D*\205\333 !\205\333 \332D\244+;\205\347 \333+PC\244\"\244\244\"\210\334$!\203\373 $\310\211\223\210\317\335\f\".\207" [coding-system-for-write buffer-file-coding-system coding-system-for-read tab-width switch-string width buffer-name " Emacs buffer" nil append " with options " mapconcat identity " " "" message "Spooling%s..." 8 print-region-new-buffer point-marker untabify apply call-process-region t "-h" "-J" "-T" "-P" markerp "Spooling%s...done" title name page-headers lpr-headers-switches switches start end new-coords lpr-page-header-program lpr-page-header-switches print-region-function lpr-command lpr-add-switches printer-name] 11])
(defalias 'print-region-new-buffer #[(ostart oend) "\303 \304\230\203 	B\207p\305\304!q\210~\210\306 \210\307\n	#\210ed)B\207" [ostart oend oldbuf buffer-name " *spool temp*" get-buffer-create erase-buffer insert-buffer-substring] 4])
#@224 Replace nonprinting characters in region with printable representations.
The printable representations use ^ (for ASCII control characters) or hex.
The characters tab, linefeed, space, return and formfeed are not affected.
(defalias 'printify-region #[(begin end) "\212b\210\303\304\305\n\306#\205, h\307\310!\210	\311W\203# \312\313	\314\\\"\202' \312\315	\"c\210\202 *\207" [begin c end nil re-search-forward "[ ---\377]" t delete-backward-char 1 32 format "\\^%c" 64 "\\%02x"] 4 (#$ . 5486) "r"])
(provide 'lpr)
