;ELC   
;;; Compiled by pot@pot.cnuce.cnr.it on Tue Mar 18 15:51:49 2003
;;; from file /home/pot/gnu/emacs-pretest.new/lisp/ps-print.el
;;; in Emacs version 21.3
;;; with bytecomp version 2.85.4.1
;;; 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 "`ps-print.el' was compiled for Emacs 19.29 or later"))

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


#@368 ps-print.el, v 6.5.5 <2001/09/17 vinicius>

Vinicius's last change version -- this file may have been edited as part of
Emacs without changes to the version number.  When reporting bugs, please also
report the version of Emacs, if any, that ps-print was distributed with.

Please send all bug fixes and enhancements to
	Vinicius Jose Latorre <vinicius@cpqd.com.br>.

(defconst ps-print-version "6.5.5" (#$ . 619))
(byte-code "\304\305!\210\306\307!\204 \310\311!\210\312\313!\204 \313\314M\210\312\315!\204\" \315\316M\210\312\317!\204, \317\320M\210\312\321!\2046 \321\322M\210\312\323!\204@ \323\324M\210\312\325!\204J \325\326M\210\327\330\331\"\210\327\332\333\"\210\327\334\335\"\210\327\336\337\"\210\327\340\341\"\210\327\342\343\"\210\327\344\345\"\210\327\346\347\"\210\327\350\351\"\210\327\352\353\"\210\327\354\355\"\210\327\356\357\"\210\327\360\361\"\210\327\362\363\"\210\327\364\365\"\210\327\366\367\"\210\327\370\371\"\210\327\372\373\"\210\327\374\375\"\210\327\376\377\"\210\327\201@ \201A \"\210\327\201B \201C \"\210\327\201D \201E \"\210\312\201F !\203\335 \327\201G \201F \"\210\202\346 \327\201G \201H \"\210\302B	\201I >\303B	\201J >\201K \201L \201M \201N \201O \201P \201Q \201R &\210\201K \201S \201M \201T \201U \201V \201W \201X \201Q \201Y \201Q \201L &\210\201K \201Z \201M \201[ \201W \201X \201O \201\\ \201Q \201S &	\210\201K \201] \201M \201^ \201W \201X \201O \201_ \201Q \201S &	\210\201K \201` \201M \201a \201W \201X \201O \201b \201Q \201S &	\210\201K \201c \201M \201d \201W \201X \201O \201e \201Q \201S &	\210\201K \201f \201M \201g \201W \201X \201O \201h \201Q \201S &	\210\201K \201i \201M \201j \201W \201X \201O \201k \201Q \201S \201Q \201l &\210\201K \201m \201M \201n \201W \201X \201O \201o \201Q \201S &	\210\201K \201p \201M \201q \201W \201X \201O \201r \201Q \201S &	\210\201K \201s \201M \201t \201W \201X \201O \201u \201Q \201S &	\210\201K \201v \201M \201w \201W \201X \201O \201x \201Q \201S &	\210\201K \201y \201M \201z \201W \201X \201O \201{ \201Q \201S &	\210\201K \201| \201M \201} \201W \201X \201O \201~ \201Q \201S &	\207" [current-load-list system-type ps-windows-system ps-lp-system require lpr featurep lisp-float-type error "`ps-print' requires floating point support" fboundp set-buffer-multibyte #[(arg) "\211\207" [arg enable-multibyte-characters] 2] string-as-unibyte #[(arg) "\207" [arg] 1] string-as-multibyte #[(arg) "\207" [arg] 1] char-charset #[(arg) "\300\207" [ascii] 1] charset-after #[(&optional arg) "\301f!\207" [arg char-charset] 2] line-beginning-position #[(&optional n) "\212\203 \301U\204 Sy\210\302 \210`)\207" [n 1 beginning-of-line] 2] defalias ps-x-color-instance-p color-instance-p ps-x-color-instance-rgb-components color-instance-rgb-components ps-x-color-name color-name ps-x-color-specifier-p color-specifier-p ps-x-copy-coding-system copy-coding-system ps-x-device-class device-class ps-x-extent-end-position extent-end-position ps-x-extent-face extent-face ps-x-extent-priority extent-priority ps-x-extent-start-position extent-start-position ps-x-face-font-instance face-font-instance ps-x-find-coding-system find-coding-system ps-x-font-instance-properties font-instance-properties ps-x-make-color-instance make-color-instance ps-x-map-extents map-extents ps-e-face-bold-p face-bold-p ps-e-face-italic-p face-italic-p ps-e-next-overlay-change next-overlay-change ps-e-overlays-at overlays-at ps-e-overlay-get overlay-get ps-e-overlay-end overlay-end ps-e-x-color-values x-color-values ps-e-color-values color-values find-composition ps-e-find-composition ignore (emx win32 w32 mswindows ms-dos windows-nt) (usq-unix-v dgux hpux irix) custom-declare-group postscript nil "PostScript Group" :tag "PostScript" :group emacs ps-print "PostScript generator for Emacs" :link (emacs-library-link :tag "Source Lisp File" "ps-print.el") :prefix "ps-" wp ps-print-horizontal "Horizontal page layout" "Horizontal" ps-print-vertical "Vertical page layout" "Vertical" ps-print-headers "Headers & footers layout" "Header & Footer" ps-print-font "Fonts customization" "Font" ps-print-color "Color customization" "Color" ps-print-face "Faces customization" "PS Faces" faces ps-print-n-up "N-up customization" "N-Up" ps-print-zebra "Zebra customization" "Zebra" ps-print-background "Background customization" "Background" ps-print-printer "Printer customization" "Printer" ps-print-page "Page customization" "Page" ps-print-miscellany "Miscellany customization" "Miscellany"] 12)
#@635 *Specify where the error handler message should be sent.

Valid values are:

   `none'		catch the error and *DON'T* send any message.

   `paper'		catch the error and print on paper the error message.

   `system'		catch the error and send back the error message to
			printing system.  This is useful only if printing system
			send back an email reporting the error, or if there is
			some other alternative way to report back the error from
			the system to you.

   `paper-and-system'	catch the error, print on paper the error message and
			send back the error message to printing system.

Any other value is treated as `paper'.
(custom-declare-variable 'ps-error-handler-message ''paper '(#$ . -5119) :type '(choice :menu-tag "Error Handler Message" :tag "Error Handler Message" (const none) (const paper) (const system) (const paper-and-system)) :group 'ps-print-miscellany)
#@1106 *User defined PostScript prologue code inserted before all prologue code.

`ps-user-defined-prologue' may be a string or a symbol function which returns a
string.  Note that this string is inserted after `ps-adobe-tag' and PostScript
prologue comments, and before ps-print PostScript prologue code section.  That
is, this string is inserted after error handler initialization and before
ps-print settings.

It's strongly recommended only insert PostScript code and/or comments specific
for your printing system particularities.  For example, some special
initialization that only your printing system needs.

Do not insert code for duplex printing, n-up printing or error handler,
ps-print handles this in a suitable way.

For more information about PostScript, see:
   PostScript Language Reference Manual (2nd edition)
   Adobe Systems Incorporated

As an example for `ps-user-defined-prologue' setting:

   ;; Setting for HP PostScript printer
   (setq ps-user-defined-prologue
	 (concat "<</DeferredMediaSelection true /PageSize [612 792] "
		 "/MediaPosition 2 /MediaType (Plain)>> setpagedevice"))

(custom-declare-variable 'ps-user-defined-prologue 'nil '(#$ . -6009) :type '(choice :menu-tag "User Defined Prologue" :tag "User Defined Prologue" (const :tag "none" nil) string symbol) :group 'ps-print-miscellany)
#@1044 *PostScript prologue header comments besides that ps-print generates.

`ps-print-prologue-header' may be a string or a symbol function which returns a
string.  Note that this string is inserted on PostScript prologue header
section which is used to define some document characteristic through PostScript
special comments, like "%%Requirements: jog\n".

ps-print always inserts the %%Requirements: comment, so if you need to insert
more requirements put them first in `ps-print-prologue-header' using the
"%%+" comment.  For example, if you need to set numcopies to 3 and jog on
requirements and set %%LanguageLevel: to 2, do:

(setq ps-print-prologue-header
      "%%+ numcopies(3) jog\n%%LanguageLevel: 2\n")

The duplex requirement is inserted by ps-print (see `ps-spool-duplex').

Do not forget to terminate the string with "\n".

For more information about PostScript document comments, see:
   PostScript Language Reference Manual (2nd edition)
   Adobe Systems Incorporated
   Appendix G: Document Structuring Conventions -- Version 3.0
(custom-declare-variable 'ps-print-prologue-header 'nil '(#$ . -7338) :type '(choice :menu-tag "Prologue Header" :tag "Prologue Header" (const :tag "none" nil) string symbol) :group 'ps-print-miscellany)
#@1137 *The name of a local printer for printing PostScript files.

On Unix-like systems, a string value should be a name understood by lpr's -P
option; a value of nil means use the value of `printer-name' instead.

On MS-DOS and MS-Windows systems, a string value is taken as the name of the
printer device or port to which PostScript files are written, provided
`ps-lpr-command' is "".  By default it is the same as `printer-name'; 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.  (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".

Set to t, if the utility given by `ps-lpr-command' needs an empty printer name.

Any other value is treated as t, that is, an empty printer name.

See also `ps-printer-name-option' for documentation.
(custom-declare-variable 'ps-printer-name '(and (boundp 'printer-name) (symbol-value 'printer-name)) '(#$ . -8593) :type '(choice :menu-tag "Printer Name" :tag "Printer Name" (const :tag "Same as printer-name" nil) (const :tag "No Printer Name" t) (file :tag "Print to file") (string :tag "Pipe to ps-lpr-command")) :group 'ps-print-printer)
#@618 *Option for `ps-printer-name' variable (see it).

On Unix-like systems, if it's been used lpr utility, it should be the string
"-P"; if it's been used lp utility, it should be the string "-d".

On MS-DOS and MS-Windows systems, if it's been used print utility, it should be
the string "/D:".

For any other printing utility, see the proper manual or documentation.

Set to "" or nil, if the utility given by `ps-lpr-command' needs an empty
option printer name option.

Any other value is treated as nil, that is, an empty printer name option.

This variable is used only when `ps-printer-name' is a non-empty string.
(custom-declare-variable 'ps-printer-name-option '(cond (ps-windows-system "/D:") (ps-lp-system "-d") (t "-P")) '(#$ . -10078) :type '(choice :menu-tag "Printer Name Option" :tag "Printer Name Option" (const :tag "None" nil) (string :tag "Option")) :version "21.1" :group 'ps-print-printer)
#@489 *Name of program for printing a PostScript file.

On MS-DOS and MS-Windows systems, if the value is an empty string then Emacs
will write directly to the printer port named by `ps-printer-name'.  The
programs `print' and `nprint' (the standard print programs on Windows NT and
Novell Netware respectively) are handled specially, using `ps-printer-name' as
the destination for output; any other program is treated like `lpr' except that
an explicit filename is given as the last argument.
(custom-declare-variable 'ps-lpr-command 'lpr-command '(#$ . -10993) :type 'string :group 'ps-print-printer)
#@56 *A list of extra switches to pass to `ps-lpr-command'.
(custom-declare-variable 'ps-lpr-switches 'lpr-switches '(#$ . -11596) :type '(repeat :tag "PostScript lpr Switches" (choice :menu-tag "PostScript lpr Switch" :tag "PostScript lpr Switch" string symbol (repeat sexp))) :group 'ps-print-printer)
#@181 *Specify a function to print the region on a PostScript printer.
See definition of `call-process-region' for calling conventions.  The fourth
and the sixth arguments are both nil.
(custom-declare-variable 'ps-print-region-function 'nil '(#$ . -11902) :type '(choice (const nil) function) :group 'ps-print-printer)
#@99 *Non-nil means the printer will manually feed paper.

If it's nil, automatic feeding takes place.
(custom-declare-variable 'ps-manual-feed 'nil '(#$ . -12222) :type 'boolean :group 'ps-print-printer)
#@64 *Non-nil means insert C-d at end of PostScript file generated.
(custom-declare-variable 'ps-end-with-control-d '(and ps-windows-system t) '(#$ . -12428) :version "21.1" :type 'boolean :group 'ps-print-printer)
#@98 *List associating a symbolic paper type to its width, height and doc media.
See `ps-paper-type'.
(custom-declare-variable 'ps-page-dimensions-database '(list (list 'a4 (/ (* 72 21.0) 2.54) (/ (* 72 29.7) 2.54) "A4") (list 'a3 (/ (* 72 29.7) 2.54) (/ (* 72 42.0) 2.54) "A3") (list 'letter (* 72 8.5) (* 72 11.0) "Letter") (list 'legal (* 72 8.5) (* 72 14.0) "Legal") (list 'letter-small (* 72 7.68) (* 72 10.16) "LetterSmall") (list 'tabloid (* 72 11.0) (* 72 17.0) "Tabloid") (list 'ledger (* 72 17.0) (* 72 11.0) "Ledger") (list 'statement (* 72 5.5) (* 72 8.5) "Statement") (list 'executive (* 72 7.5) (* 72 10.0) "Executive") (list 'a4small (* 72 7.47) (* 72 10.85) "A4Small") (list 'b4 (* 72 10.125) (* 72 14.33) "B4") (list 'b5 (* 72 7.16) (* 72 10.125) "B5")) '(#$ . -12644) :type '(repeat (list :tag "Paper Type" (symbol :tag "Name") (number :tag "Width") (number :tag "Height") (string :tag "Media"))) :group 'ps-print-page)
#@157 *Specify the size of paper to format for.
Should be one of the paper types defined in `ps-page-dimensions-database', for
example `letter', `legal' or `a4'.
(custom-declare-variable 'ps-paper-type ''letter '(#$ . -13584) :type '(symbol :validate (lambda (wid) (if (assq (widget-value wid) ps-page-dimensions-database) nil (widget-put wid :error "Unknown paper size") wid))) :group 'ps-print-page)
#@138 *Non-nil means give an error if paper size is not equal to `ps-paper-type'.

It's used when `ps-spool-config' is set to `setpagedevice'.
(custom-declare-variable 'ps-warn-paper-type 't '(#$ . -13987) :type 'boolean :group 'ps-print-page)
#@41 *Non-nil means print in landscape mode.
(custom-declare-variable 'ps-landscape-mode 'nil '(#$ . -14231) :type 'boolean :group 'ps-print-page)
#@73 *Non-nil means print upside-down (that is, it's rotated by 180 grades).
(custom-declare-variable 'ps-print-upside-down 'nil '(#$ . -14379) :type 'boolean :version "21.1" :group 'ps-print-page)
#@669 *Specify which pages to print.

If it's nil, all pages are printed.

If it's a list, the list element may be an integer or a cons cell (FROM . TO)
designating FROM page to TO page; any invalid element is ignored, that is, an
integer lesser than one or if FROM is greater than TO.

Otherwise, it's treated as nil.

After ps-print processing `ps-selected-pages' is set to nil.  But the latest
`ps-selected-pages' is saved in `ps-last-selected-pages' (see it for
documentation).  So you can restore the latest selected pages by using
`ps-last-selected-pages' or by calling `ps-restore-selected-pages' command (see
it for documentation).

See also `ps-even-or-odd-pages'.
(custom-declare-variable 'ps-selected-pages 'nil '(#$ . -14579) :type '(repeat :tag "Selected Pages" (radio :tag "Page" (integer :tag "Number") (cons :tag "Range" (integer :tag "From") (integer :tag "To")))) :group 'ps-print-page)
#@1446 *Specify if it prints even/odd pages.

Valid values are:

   nil		print all pages.

   `even-page'	print only even pages.

   `odd-page'	print only odd pages.

   `even-sheet'	print only even sheets.
		That is, if `ps-n-up-printing' is 1, it behaves as `even-page';
		but for values greater than 1, it'll print only the even sheet
		of paper.

   `odd-sheet'	print only odd sheets.
		That is, if `ps-n-up-printing' is 1, it behaves as `odd-page';
		but for values greater than 1, it'll print only the odd sheet
		of paper.

Any other value is treated as nil.

If you set `ps-selected-pages' (see it for documentation), first the pages are
filtered by `ps-selected-pages' and then by `ps-even-or-odd-pages'.  For
example, if we have:

   (setq ps-selected-pages '(1 4 (6 . 10) (12 . 16) 20))

Combining with `ps-even-or-odd-pages' and `ps-n-up-printing', we have:

`ps-n-up-printing' = 1:
   `ps-even-or-odd-pages'	PAGES PRINTED
	nil			1, 4, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 20
	even-page		4, 6, 8, 10, 12, 14, 16, 20
	odd-page		1, 7, 9, 13, 15
	even-sheet		4, 6, 8, 10, 12, 14, 16, 20
	odd-sheet		1, 7, 9, 13, 15

`ps-n-up-printing' = 2:
   `ps-even-or-odd-pages'	PAGES PRINTED
	nil			1/4, 6/7, 8/9, 10/12, 13/14, 15/16, 20
	even-page		4/6, 8/10, 12/14, 16/20
	odd-page		1/7, 9/13, 15
	even-sheet		6/7, 10/12, 15/16
	odd-sheet		1/4, 8/9, 13/14, 20

So even-page/odd-page are about page parity and even-sheet/odd-sheet are about
sheet parity.
(custom-declare-variable 'ps-even-or-odd-pages 'nil '(#$ . -15486) :type '(choice :menu-tag "Print Even/Odd Pages" :tag "Print Even/Odd Pages" (const :tag "All Pages" nil) (const :tag "Only Even Pages" even-page) (const :tag "Only Odd Pages" odd-page) (const :tag "Only Even Sheets" even-sheet) (const :tag "Only Odd Sheets" odd-sheet)) :group 'ps-print-page)
#@898 *Specify the printable form for control and 8-bit characters.
That is, instead of sending, for example, a ^D (\004) to printer,
it is sent the string "^D".

Valid values are:

  `8-bit'         This is the value to use when you want an ASCII encoding of
		  any control or non-ASCII character.  Control characters are
		  encoded as "^D", and non-ASCII characters have an
		  octal encoding.

  `control-8-bit' This is the value to use when you want an ASCII encoding of
		  any control character, whether it is 7 or 8-bit.
		  European 8-bits accented characters are printed according
		  the current font.

  `control'       Only ASCII control characters have an ASCII encoding.
		  European 8-bits accented characters are printed according
		  the current font.

  nil             No ASCII encoding.  Any character is printed according the
		  current font.

Any other value is treated as nil.
(custom-declare-variable 'ps-print-control-characters ''control-8-bit '(#$ . -17298) :type '(choice :menu-tag "Control Char" :tag "Control Char" (const 8-bit) (const control-8-bit) (const control) (const :tag "nil" nil)) :group 'ps-print-miscellany)
#@47 *Specify the number of pages per sheet paper.
(custom-declare-variable 'ps-n-up-printing '1 '(#$ . -18451) :type '(integer :tag "N Up Printing" :validate (lambda (wid) (if (and (< 0 (widget-value wid)) (<= (widget-value wid) 100)) nil (widget-put wid :error "Number of pages per sheet paper must be between 1 and 100.") wid))) :group 'ps-print-n-up)
#@75 *Specify the margin in points between the sheet border and n-up printing.
(custom-declare-variable 'ps-n-up-margin '(/ (* 72 1.0) 2.54) '(#$ . -18807) :type 'number :group 'ps-print-n-up)
#@52 *Non-nil means a border is drawn around each page.
(custom-declare-variable 'ps-n-up-border-p 't '(#$ . -19001) :type 'boolean :group 'ps-print-n-up)
#@857 *Specify how page matrix is filled on each sheet of paper.

Following are the valid values for `ps-n-up-filling' with a filling example
using a 3x4 page matrix:

   `left-top'   1  2  3  4         `left-bottom'    9  10 11 12
		5  6  7  8                          5  6  7  8
		9  10 11 12                         1  2  3  4

   `right-top'  4  3  2  1         `right-bottom'   12 11 10 9
		8  7  6  5                          8  7  6  5
		12 11 10 9                          4  3  2  1

   `top-left'   1  4  7  10        `bottom-left'    3  6  9  12
		2  5  8  11                         2  5  8  11
		3  6  9  12                         1  4  7  10

   `top-right'  10 7  4  1         `bottom-right'   12 9  6  3
		11 8  5  2                          11 8  5  2
		12 9  6  3                          10 7  4  1

Any other value is treated as `left-top'.
(custom-declare-variable 'ps-n-up-filling ''left-top '(#$ . -19158) :type '(choice :menu-tag "N-Up Filling" :tag "N-Up Filling" (const left-top) (const left-bottom) (const right-top) (const right-bottom) (const top-left) (const bottom-left) (const top-right) (const bottom-right)) :group 'ps-print-n-up)
#@32 *Specify the number of columns
(custom-declare-variable 'ps-number-of-columns '(if ps-landscape-mode 2 1) '(#$ . -20324) :type 'number :group 'ps-print-miscellany)
#@111 *Non-nil means print zebra stripes.
See also documentation for `ps-zebra-stripe-height' and `ps-zebra-color'.
(custom-declare-variable 'ps-zebra-stripes 'nil '(#$ . -20495) :type 'boolean :group 'ps-print-zebra)
#@100 *Number of zebra stripe lines.
See also documentation for `ps-zebra-stripes' and `ps-zebra-color'.
(custom-declare-variable 'ps-zebra-stripe-height '3 '(#$ . -20714) :type 'number :group 'ps-print-zebra)
#@116 *Zebra stripe gray scale or RGB color.
See also documentation for `ps-zebra-stripes' and `ps-zebra-stripe-height'.
(custom-declare-variable 'ps-zebra-color '0.95 '(#$ . -20925) :type '(choice :menu-tag "Zebra Gray/Color" :tag "Zebra Gray/Color" (number :tag "Gray Scale" :value 0.95) (string :tag "Color Name" :value "gray95") (list :tag "RGB Color" :value (0.95 0.95 0.95) (number :tag "Red") (number :tag "Green") (number :tag "Blue"))) :group 'ps-print-zebra)
#@1802 *Specify how zebra stripes continue on next page.

Visually, valid values are (the character `+' at right of each column indicates
that a line is printed):

		   `nil'        `follow'        `full'        `full-follow'
   Current Page --------     -----------     ---------     ----------------
		1  XXXXX +   1  XXXXXXXX +   1  XXXXXX +   1  XXXXXXXXXXXXX +
		2  XXXXX +   2  XXXXXXXX +   2  XXXXXX +   2  XXXXXXXXXXXXX +
		3  XXXXX +   3  XXXXXXXX +   3  XXXXXX +   3  XXXXXXXXXXXXX +
		4        +   4           +   4         +   4                +
		5        +   5           +   5         +   5                +
		6        +   6           +   6         +   6                +
		7  XXXXX +   7  XXXXXXXX +   7  XXXXXX +   7  XXXXXXXXXXXXX +
		8  XXXXX +   8  XXXXXXXX +   8  XXXXXX +   8  XXXXXXXXXXXXX +
		9  XXXXX +   9  XXXXXXXX +   9  XXXXXX +   9  XXXXXXXXXXXXX +
		10       +   10          +
		11       +   11          +
		--------     -----------     ---------     ----------------
      Next Page --------     -----------     ---------     ----------------
		12 XXXXX +   12          +   10 XXXXXX +   10               +
		13 XXXXX +   13 XXXXXXXX +   11 XXXXXX +   11               +
		14 XXXXX +   14 XXXXXXXX +   12 XXXXXX +   12               +
		15       +   15 XXXXXXXX +   13        +   13 XXXXXXXXXXXXX +
		16       +   16          +   14        +   14 XXXXXXXXXXXXX +
		17       +   17          +   15        +   15 XXXXXXXXXXXXX +
		18 XXXXX +   18          +   16 XXXXXX +   16               +
		19 XXXXX +   19 XXXXXXXX +   17 XXXXXX +   17               +
		20 XXXXX +   20 XXXXXXXX +   18 XXXXXX +   18               +
		21       +   21 XXXXXXXX +
		22       +   22          +
		--------     -----------     ---------     ----------------

Any other value is treated as `nil'.
(custom-declare-variable 'ps-zebra-stripe-follow 'nil '(#$ . -21396) :type '(choice :menu-tag "Zebra Stripe Follow" :tag "Zebra Stripe Follow" (const :tag "Always Restart" nil) (const :tag "Continue on Next Page" follow) (const :tag "Print Only Full Stripe" full) (const :tag "Continue on Full Stripe" full-follow)) :group 'ps-print-zebra)
#@35 *Non-nil means print line number.
(custom-declare-variable 'ps-line-number 'nil '(#$ . -23543) :type 'boolean :group 'ps-print-miscellany)
#@533 *Specify the interval that line number is printed.

For example, `ps-line-number-step' is set to 2, the printing will look like:

   1 one line
     one line
   3 one line
     one line
   5 one line
     one line
     ...

Valid values are:

   integer	an integer that specifies the interval that line number is
		printed.  If it's lesser than or equal to zero, it's used the
		value 1.

   `zebra'	specifies that only the line number of the first line in a
		zebra stripe is to be printed.

Any other value is treated as `zebra'.
(custom-declare-variable 'ps-line-number-step '1 '(#$ . -23689) :type '(choice :menu-tag "Line Number Step" :tag "Line Number Step" (integer :tag "Step Interval") (const :tag "Synchronize Zebra" zebra)) :group 'ps-print-miscellany)
#@728 *Specify the starting point in the interval given by `ps-line-number-step'.

For example, if `ps-line-number-step' is set to 3 and `ps-line-number-start' is
set to 3, the printing will look like:

      one line
      one line
    3 one line
      one line
      one line
    6 one line
      one line
      one line
    9 one line
      one line
      ...

The values for `ps-line-number-start':

   * If `ps-line-number-step' is an integer, must be between 1 and the value of
     `ps-line-number-step' inclusive.

   * If `ps-line-number-step' is set to `zebra', must be between 1 and the
     value of `ps-zebra-strip-height' inclusive.  Use this combination if you
     wish that line number be relative to zebra stripes.
(custom-declare-variable 'ps-line-number-start '1 '(#$ . -24460) :type '(integer :tag "Start Step Interval") :group 'ps-print-miscellany)
#@1079 *EPS image list to be printed on background.

The elements are:

   (FILENAME X Y XSCALE YSCALE ROTATION PAGES...)

FILENAME is a file name which contains an EPS image or some PostScript
programming like EPS.
FILENAME is ignored, if it doesn't exist or is read protected.

X and Y are relative positions on paper to put the image.
If X and Y are nil, the image is centralized on paper.

XSCALE and YSCALE are scale factor to be applied to image before printing.
If XSCALE and YSCALE are nil, the original size is used.

ROTATION is the image rotation angle; if nil, the default is 0.

PAGES designates the page to print background image.
PAGES may be a number or a cons cell (FROM . TO) designating FROM page to TO
page.
If PAGES is nil, print background image on all pages.

X, Y, XSCALE, YSCALE and ROTATION may be a floating point number, an integer
number or a string. If it is a string, the string should contain PostScript
programming that returns a float or integer value.

For example, if you wish to print an EPS image on all pages do:

   '(("~/images/EPS-image.ps"))
(custom-declare-variable 'ps-print-background-image 'nil '(#$ . -25333) :type '(repeat (list (file :tag "EPS File") (choice :tag "X" (const :tag "default" nil) number string) (choice :tag "Y" (const :tag "default" nil) number string) (choice :tag "X Scale" (const :tag "default" nil) number string) (choice :tag "Y Scale" (const :tag "default" nil) number string) (choice :tag "Rotation" (const :tag "default" nil) number string) (repeat :tag "Pages" :inline t (radio (integer :tag "Page") (cons :tag "Range" (integer :tag "From") (integer :tag "To")))))) :group 'ps-print-background)
#@1125 *Text list to be printed on background.

The elements are:

   (STRING X Y FONT FONTSIZE GRAY ROTATION PAGES...)

STRING is the text to be printed on background.

X and Y are positions on paper to put the text.
If X and Y are nil, the text is positioned at lower left corner.

FONT is a font name to be used on printing the text.
If nil, "Times-Roman" is used.

FONTSIZE is font size to be used, if nil, 200 is used.

GRAY is the text gray factor (should be very light like 0.8).
If nil, the default is 0.85.

ROTATION is the text rotation angle; if nil, the angle is given by the diagonal
from lower left corner to upper right corner.

PAGES designates the page to print background text.
PAGES may be a number or a cons cell (FROM . TO) designating FROM page to TO
page.
If PAGES is nil, print background text on all pages.

X, Y, FONTSIZE, GRAY and ROTATION may be a floating point number, an integer
number or a string. If it is a string, the string should contain PostScript
programming that returns a float or integer value.

For example, if you wish to print text "Preliminary" on all pages do:

   '(("Preliminary"))
(custom-declare-variable 'ps-print-background-text 'nil '(#$ . -27004) :type '(repeat (list (string :tag "Text") (choice :tag "X" (const :tag "default" nil) number string) (choice :tag "Y" (const :tag "default" nil) number string) (choice :tag "Font" (const :tag "default" nil) string) (choice :tag "Fontsize" (const :tag "default" nil) number string) (choice :tag "Gray" (const :tag "default" nil) number string) (choice :tag "Rotation" (const :tag "default" nil) number string) (repeat :tag "Pages" :inline t (radio (integer :tag "Page") (cons :tag "Range" (integer :tag "From") (integer :tag "To")))))) :group 'ps-print-background)
#@37 *Left margin in points (1/72 inch).
(custom-declare-variable 'ps-left-margin '(/ (* 72 2.0) 2.54) '(#$ . -28769) :type 'number :group 'ps-print-horizontal)
#@38 *Right margin in points (1/72 inch).
(custom-declare-variable 'ps-right-margin '(/ (* 72 2.0) 2.54) '(#$ . -28931) :type 'number :group 'ps-print-horizontal)
#@58 *Horizontal space between columns in points (1/72 inch).
(custom-declare-variable 'ps-inter-column '(/ (* 72 2.0) 2.54) '(#$ . -29095) :type 'number :group 'ps-print-horizontal)
#@39 *Bottom margin in points (1/72 inch).
(custom-declare-variable 'ps-bottom-margin '(/ (* 72 1.5) 2.54) '(#$ . -29279) :type 'number :group 'ps-print-vertical)
#@36 *Top margin in points (1/72 inch).
(custom-declare-variable 'ps-top-margin '(/ (* 72 1.5) 2.54) '(#$ . -29443) :type 'number :group 'ps-print-vertical)
#@77 *Vertical space in points (1/72 inch) between the main text and the header.
(custom-declare-variable 'ps-header-offset '(/ (* 72 1.0) 2.54) '(#$ . -29601) :type 'number :group 'ps-print-vertical)
#@149 *Portion of a header title line height to insert between the header frame
and the text it contains, both in the vertical and horizontal directions.
(custom-declare-variable 'ps-header-line-pad '0.15 '(#$ . -29804) :type 'number :group 'ps-print-vertical)
#@77 *Vertical space in points (1/72 inch) between the main text and the footer.
(custom-declare-variable 'ps-footer-offset '(/ (* 72 1.0) 2.54) '(#$ . -30065) :type 'number :group 'ps-print-vertical)
#@149 *Portion of a footer title line height to insert between the footer frame
and the text it contains, both in the vertical and horizontal directions.
(custom-declare-variable 'ps-footer-line-pad '0.15 '(#$ . -30268) :type 'number :group 'ps-print-vertical)
#@267 *Non-nil means print a header at the top of each page.
By default, the header displays the buffer name, page number, and, if the
buffer is visiting a file, the file's directory.  Headers are customizable by
changing variables `ps-left-header' and `ps-right-header'.
(custom-declare-variable 'ps-print-header 't '(#$ . -30530) :type 'boolean :group 'ps-print-headers)
#@54 *Non-nil means draw a gaudy frame around the header.
(custom-declare-variable 'ps-print-header-frame 't '(#$ . -30903) :type 'boolean :group 'ps-print-headers)
#@848 *Specify header frame properties alist.

Valid frame properties are:

   `fore-color'		Specify the foreground frame color.
			It should be a float number between 0.0 (black color)
			and 1.0 (white color), a string which is a color name,
			or a list of 3 float numbers which corresponds to the
			Red Green Blue color scale, each float number between
			0.0 (dark color) and 1.0 (bright color).

   `back-color'		Specify the background frame color (similar to
			`fore-color').

   `shadow-color'	Specify the shadow color (similar to `fore-color').

   `border-color'	Specify the border color (similar to `fore-color').

   `border-width'	Specify the border width.

Any other property is ignored.

Don't change this alist directly, instead use customization, or `ps-value',
`ps-get', `ps-put' and `ps-del' functions (see them for documentation).
(custom-declare-variable 'ps-header-frame-alist ''((fore-color . 0.0) (back-color . 0.9) (border-width . 0.4) (border-color . 0.0) (shadow-color . 0.0)) '(#$ . -31070) :version "21.1" :type '(repeat (choice :menu-tag "Header Frame Element" :tag "" (cons :tag "Foreground Color" :format "%v" (const :format "" fore-color) (choice :menu-tag "Foreground Color" :tag "Foreground Color" (number :tag "Gray Scale" :value 0.0) (string :tag "Color Name" :value "black") (list :tag "RGB Color" :value (0.0 0.0 0.0) (number :tag "Red") (number :tag "Green") (number :tag "Blue")))) (cons :tag "Background Color" :format "%v" (const :format "" back-color) (choice :menu-tag "Background Color" :tag "Background Color" (number :tag "Gray Scale" :value 0.9) (string :tag "Color Name" :value "gray90") (list :tag "RGB Color" :value (0.9 0.9 0.9) (number :tag "Red") (number :tag "Green") (number :tag "Blue")))) (cons :tag "Border Width" :format "%v" (const :format "" border-width) (number :tag "Border Width" :value 0.4)) (cons :tag "Border Color" :format "%v" (const :format "" border-color) (choice :menu-tag "Border Color" :tag "Border Color" (number :tag "Gray Scale" :value 0.0) (string :tag "Color Name" :value "black") (list :tag "RGB Color" :value (0.0 0.0 0.0) (number :tag "Red") (number :tag "Green") (number :tag "Blue")))) (cons :tag "Shadow Color" :format "%v" (const :format "" shadow-color) (choice :menu-tag "Shadow Color" :tag "Shadow Color" (number :tag "Gray Scale" :value 0.0) (string :tag "Color Name" :value "black") (list :tag "RGB Color" :value (0.0 0.0 0.0) (number :tag "Red") (number :tag "Green") (number :tag "Blue")))))) :group 'ps-print-headers)
#@73 *Number of lines to display in page header, when generating PostScript.
(custom-declare-variable 'ps-header-lines '2 '(#$ . -33588) :type 'integer :group 'ps-print-headers)
#@191 *Non-nil means print a footer at the bottom of each page.
By default, the footer displays page number.
Footers are customizable by changing variables `ps-left-footer' and
`ps-right-footer'.
(custom-declare-variable 'ps-print-footer 'nil '(#$ . -33768) :version "21.1" :type 'boolean :group 'ps-print-headers)
#@54 *Non-nil means draw a gaudy frame around the footer.
(custom-declare-variable 'ps-print-footer-frame 't '(#$ . -34083) :version "21.1" :type 'boolean :group 'ps-print-headers)
#@243 *Specify footer frame properties alist.

Don't change this alist directly, instead use customization, or `ps-value',
`ps-get', `ps-put' and `ps-del' functions (see them for documentation).

See also `ps-header-frame-alist' for documentation.
(custom-declare-variable 'ps-footer-frame-alist ''((fore-color . 0.0) (back-color . 0.9) (border-width . 0.4) (border-color . 0.0) (shadow-color . 0.0)) '(#$ . -34266) :version "21.1" :type '(repeat (choice :menu-tag "Header Frame Element" :tag "" (cons :tag "Foreground Color" :format "%v" (const :format "" fore-color) (choice :menu-tag "Foreground Color" :tag "Foreground Color" (number :tag "Gray Scale" :value 0.0) (string :tag "Color Name" :value "black") (list :tag "RGB Color" :value (0.0 0.0 0.0) (number :tag "Red") (number :tag "Green") (number :tag "Blue")))) (cons :tag "Background Color" :format "%v" (const :format "" back-color) (choice :menu-tag "Background Color" :tag "Background Color" (number :tag "Gray Scale" :value 0.9) (string :tag "Color Name" :value "gray90") (list :tag "RGB Color" :value (0.9 0.9 0.9) (number :tag "Red") (number :tag "Green") (number :tag "Blue")))) (cons :tag "Border Width" :format "%v" (const :format "" border-width) (number :tag "Border Width" :value 0.4)) (cons :tag "Border Color" :format "%v" (const :format "" border-color) (choice :menu-tag "Border Color" :tag "Border Color" (number :tag "Gray Scale" :value 0.0) (string :tag "Color Name" :value "black") (list :tag "RGB Color" :value (0.0 0.0 0.0) (number :tag "Red") (number :tag "Green") (number :tag "Blue")))) (cons :tag "Shadow Color" :format "%v" (const :format "" shadow-color) (choice :menu-tag "Shadow Color" :tag "Shadow Color" (number :tag "Gray Scale" :value 0.0) (string :tag "Color Name" :value "black") (list :tag "RGB Color" :value (0.0 0.0 0.0) (number :tag "Red") (number :tag "Green") (number :tag "Blue")))))) :group 'ps-print-headers)
#@73 *Number of lines to display in page footer, when generating PostScript.
(custom-declare-variable 'ps-footer-lines '2 '(#$ . -36179) :version "21.1" :type 'integer :group 'ps-print-headers)
#@277 *Non-nil means print only one header/footer at the top/bottom of each page.
This is useful when printing more than one column, so it is possible to have
only one header/footer over all columns or one header/footer per column.
See also `ps-print-header' and `ps-print-footer'.
(custom-declare-variable 'ps-print-only-one-header 'nil '(#$ . -36375) :type 'boolean :group 'ps-print-headers)
#@326 *Specify if headers/footers are switched or not.

Valid values are:

nil	Never switch headers/footers.

t	Always switch headers/footers.

duplex	Switch headers/footers only when duplexing is on, that is, when
	`ps-spool-duplex' is non-nil.

Any other value is treated as t.

See also `ps-print-header' and `ps-print-footer'.
(custom-declare-variable 'ps-switch-header ''duplex '(#$ . -36770) :type '(choice :menu-tag "Switch Header/Footer" :tag "Switch Header/Footer" (const :tag "Never Switch" nil) (const :tag "Always Switch" t) (const :tag "Switch When Duplexing" duplex)) :group 'ps-print-headers)
#@154 *Non-nil means show page numbers as N/M, meaning page N of M.
NOTE: page numbers are displayed as part of headers,
      see variable `ps-print-header'.
(custom-declare-variable 'ps-show-n-of-n 't '(#$ . -37379) :type 'boolean :group 'ps-print-headers)
#@1103 *Specify who is responsible for setting duplex and page size.

Valid values are:

  `lpr-switches'    duplex and page size are configured by `ps-lpr-switches'.
		    Don't forget to set `ps-lpr-switches' to select duplex
		    printing for your printer.

  `setpagedevice'   duplex and page size are configured by ps-print using the
		    setpagedevice PostScript operator.

  nil               duplex and page size are configured by ps-print *not* using
		    the setpagedevice PostScript operator.

Any other value is treated as nil.

WARNING: The setpagedevice PostScript operator affects ghostview utility when
	 viewing file generated using landscape.  Also on some printers,
	 setpagedevice affects zebra stripes; on other printers, setpagedevice
	 affects the left margin.
	 Besides all that, if your printer does not have the paper size
	 specified by setpagedevice, your printing will be aborted.
	 So, if you need to use setpagedevice, set `ps-spool-config' to
	 `setpagedevice', generate a test file and send it to your printer; if
	 the printed file isn't ok, set `ps-spool-config' to nil.
(custom-declare-variable 'ps-spool-config '(if ps-windows-system nil 'lpr-switches) '(#$ . -37640) :type '(choice :menu-tag "Spool Config" :tag "Spool Config" (const lpr-switches) (const setpagedevice) (const :tag "nil" nil)) :group 'ps-print-headers)
#@412 *Non-nil generates PostScript for a two-sided printer.
For a duplex printer, the `ps-spool-*' and `ps-print-*' commands will insert
blank pages as needed between print jobs so that the next buffer printed will
start on the right page.  Also, if headers are turned on, the headers will be
reversed on duplex printers so that the page numbers fall to the left on
even-numbered pages.

See also `ps-spool-tumble'.
(custom-declare-variable 'ps-spool-duplex 'nil '(#$ . -39001) :type 'boolean :group 'ps-print-headers)
#@309 *Specify how the page images on opposite sides of a sheet are oriented.
If `ps-spool-tumble' is nil, produces output suitable for binding on the left
or right.  If `ps-spool-tumble' is non-nil, produces output suitable for
binding at the top or bottom.

It has effect only when `ps-spool-duplex' is non-nil.
(custom-declare-variable 'ps-spool-tumble 'nil '(#$ . -39522) :type 'boolean :group 'ps-print-headers)
#@794 *Font info database: font family (the key), name, bold, italic, bold-italic,
reference size, line height, space width, average character width.
To get the info for another specific font (say Helvetica), do the following:
- create a new buffer
- generate the PostScript image to a file (C-u M-x ps-print-buffer)
- open this file and delete the leading `%' (which is the PostScript comment
  character) from the line
	   `% 3 cm 20 cm moveto  10/Courier ReportFontInfo  showpage'
  to get the line
	   `3 cm 20 cm moveto  10/Helvetica ReportFontInfo  showpage'
- add the values to `ps-font-info-database'.
You can get all the fonts of YOUR printer using `ReportAllFontInfo'.

Note also that ps-print DOESN'T download any font to your printer, instead it
uses the fonts resident in your printer.
(custom-declare-variable 'ps-font-info-database ''((Courier (fonts (normal . "Courier") (bold . "Courier-Bold") (italic . "Courier-Oblique") (bold-italic . "Courier-BoldOblique")) (size . 10.0) (line-height . 10.55) (space-width . 6.0) (avg-char-width . 6.0)) (Helvetica (fonts (normal . "Helvetica") (bold . "Helvetica-Bold") (italic . "Helvetica-Oblique") (bold-italic . "Helvetica-BoldOblique")) (size . 10.0) (line-height . 11.56) (space-width . 2.78) (avg-char-width . 5.09243)) (Times (fonts (normal . "Times-Roman") (bold . "Times-Bold") (italic . "Times-Italic") (bold-italic . "Times-BoldItalic")) (size . 10.0) (line-height . 11.0) (space-width . 2.5) (avg-char-width . 4.71432)) (Palatino (fonts (normal . "Palatino-Roman") (bold . "Palatino-Bold") (italic . "Palatino-Italic") (bold-italic . "Palatino-BoldItalic")) (size . 10.0) (line-height . 12.1) (space-width . 2.5) (avg-char-width . 5.08676)) (Helvetica-Narrow (fonts (normal . "Helvetica-Narrow") (bold . "Helvetica-Narrow-Bold") (italic . "Helvetica-Narrow-Oblique") (bold-italic . "Helvetica-Narrow-BoldOblique")) (size . 10.0) (line-height . 11.56) (space-width . 2.2796) (avg-char-width . 4.17579)) (NewCenturySchlbk (fonts (normal . "NewCenturySchlbk-Roman") (bold . "NewCenturySchlbk-Bold") (italic . "NewCenturySchlbk-Italic") (bold-italic . "NewCenturySchlbk-BoldItalic")) (size . 10.0) (line-height . 12.15) (space-width . 2.78) (avg-char-width . 5.31162)) (AvantGarde-Book (fonts (normal . "AvantGarde-Book") (italic . "AvantGarde-BookOblique")) (size . 10.0) (line-height . 11.77) (space-width . 2.77) (avg-char-width . 5.45189)) (AvantGarde-Demi (fonts (normal . "AvantGarde-Demi") (italic . "AvantGarde-DemiOblique")) (size . 10.0) (line-height . 12.72) (space-width . 2.8) (avg-char-width . 5.51351)) (Bookman-Demi (fonts (normal . "Bookman-Demi") (italic . "Bookman-DemiItalic")) (size . 10.0) (line-height . 11.77) (space-width . 3.4) (avg-char-width . 6.05946)) (Bookman-Light (fonts (normal . "Bookman-Light") (italic . "Bookman-LightItalic")) (size . 10.0) (line-height . 11.79) (space-width . 3.2) (avg-char-width . 5.67027)) (Symbol (fonts (normal . "Symbol")) (size . 10.0) (line-height . 13.03) (space-width . 2.5) (avg-char-width . 3.24324)) (Zapf-Dingbats (fonts (normal . "Zapf-Dingbats")) (size . 10.0) (line-height . 9.63) (space-width . 2.78) (avg-char-width . 2.78)) (Zapf-Chancery-MediumItalic (fonts (normal . "Zapf-Chancery-MediumItalic")) (size . 10.0) (line-height . 11.45) (space-width . 2.2) (avg-char-width . 4.10811))) '(#$ . -39940) :type '(repeat (list :tag "Font Definition" (symbol :tag "Font Family") (cons :format "%v" (const :format "" fonts) (repeat :tag "Faces" (cons (choice :menu-tag "Font Weight/Slant" :tag "Font Weight/Slant" (const normal) (const bold) (const italic) (const bold-italic) (symbol :tag "Face")) (string :tag "Font Name")))) (cons :format "%v" (const :format "" size) (number :tag "Reference Size")) (cons :format "%v" (const :format "" line-height) (number :tag "Line Height")) (cons :format "%v" (const :format "" space-width) (number :tag "Space Width")) (cons :format "%v" (const :format "" avg-char-width) (number :tag "Average Character Width")))) :group 'ps-print-font)
#@66 *Font family name for ordinary text, when generating PostScript.
(custom-declare-variable 'ps-font-family ''Courier '(#$ . -43953) :type 'symbol :group 'ps-print-font)
#@71 *Font size, in points, for ordinary text, when generating PostScript.
(custom-declare-variable 'ps-font-size ''(7 . 8.5) '(#$ . -44127) :type '(choice :menu-tag "Ordinary Text Font Size" :tag "Ordinary Text Font Size" (number :tag "Text Size") (cons :tag "Landscape/Portrait" (number :tag "Landscape Text Size") (number :tag "Portrait Text Size"))) :group 'ps-print-font)
#@71 *Font family name for text in the header, when generating PostScript.
(custom-declare-variable 'ps-header-font-family ''Helvetica '(#$ . -44505) :type 'symbol :group 'ps-print-font)
#@76 *Font size, in points, for text in the header, when generating PostScript.
(custom-declare-variable 'ps-header-font-size ''(10 . 12) '(#$ . -44693) :type '(choice :menu-tag "Header Font Size" :tag "Header Font Size" (number :tag "Header Size") (cons :tag "Landscape/Portrait" (number :tag "Landscape Header Size") (number :tag "Portrait Header Size"))) :group 'ps-print-font)
#@75 *Font size, in points, for the top line of text in header, in PostScript.
(custom-declare-variable 'ps-header-title-font-size ''(12 . 14) '(#$ . -45075) :type '(choice :menu-tag "Header Title Font Size" :tag "Header Title Font Size" (number :tag "Header Title Size") (cons :tag "Landscape/Portrait" (number :tag "Landscape Header Title Size") (number :tag "Portrait Header Title Size"))) :group 'ps-print-font)
#@71 *Font family name for text in the footer, when generating PostScript.
(custom-declare-variable 'ps-footer-font-family ''Helvetica '(#$ . -45492) :version "21.1" :type 'symbol :group 'ps-print-font)
#@76 *Font size, in points, for text in the footer, when generating PostScript.
(custom-declare-variable 'ps-footer-font-size ''(10 . 12) '(#$ . -45696) :version "21.1" :type '(choice :menu-tag "Footer Font Size" :tag "Footer Font Size" (number :tag "Footer Size") (cons :tag "Landscape/Portrait" (number :tag "Landscape Footer Size") (number :tag "Portrait Footer Size"))) :group 'ps-print-font)
#@61 *Specify color for line-number, when generating PostScript.
(custom-declare-variable 'ps-line-number-color '"black" '(#$ . -46094) :type '(choice :menu-tag "Line Number Color" :tag "Line Number Color" (number :tag "Gray Scale" :value 0) (string :tag "Color Name" :value "black") (list :tag "RGB Color" :value (0 0 0) (number :tag "Red") (number :tag "Green") (number :tag "Blue"))) :version "21.1" :group 'ps-print-font :group 'ps-print-miscellany)
#@52 *Font for line-number, when generating PostScript.
(custom-declare-variable 'ps-line-number-font '"Times-Italic" '(#$ . -46549) :type 'string :group 'ps-print-font :group 'ps-print-miscellany)
#@69 *Font size, in points, for line number, when generating PostScript.
(custom-declare-variable 'ps-line-number-font-size '6 '(#$ . -46748) :type '(choice :menu-tag "Line Number Font Size" :tag "Line Number Font Size" (number :tag "Font Size") (cons :tag "Landscape/Portrait" (number :tag "Landscape Font Size") (number :tag "Portrait Font Size"))) :group 'ps-print-font :group 'ps-print-miscellany)
#@238 *Specify how buffer's text color is printed.

Valid values are:

   nil		Do not print colors.

   t		Print colors.

   black-white	Print colors on black/white printer.
		See also `ps-black-white-faces'.

Any other value is treated as t.
(custom-declare-variable 'ps-print-color-p '(or (and (fboundp 'color-values) (ps-e-color-values "Green")) (fboundp 'x-color-values) (fboundp 'color-instance-rgb-components)) '(#$ . -47152) :type '(choice :menu-tag "Print Color" :tag "Print Color" (const :tag "Do NOT Print Color" nil) (const :tag "Print Always Color" t) (const :tag "Print Black/White Color" black-white)) :group 'ps-print-color)
#@66 *RGB values of the default foreground color.  Defaults to black.
(custom-declare-variable 'ps-default-fg ''(0.0 0.0 0.0) '(#$ . -47792) :type '(choice :menu-tag "Default Foreground Gray/Color" :tag "Default Foreground Gray/Color" (number :tag "Gray Scale" :value 0.0) (string :tag "Color Name" :value "black") (list :tag "RGB Color" :value (0.0 0.0 0.0) (number :tag "Red") (number :tag "Green") (number :tag "Blue"))) :group 'ps-print-color)
#@66 *RGB values of the default background color.  Defaults to white.
(custom-declare-variable 'ps-default-bg ''(1.0 1.0 1.0) '(#$ . -48241) :type '(choice :menu-tag "Default Background Gray/Color" :tag "Default Background Gray/Color" (number :tag "Gray Scale" :value 1.0) (string :tag "Color Name" :value "white") (list :tag "RGB Color" :value (1.0 1.0 1.0) (number :tag "Red") (number :tag "Green") (number :tag "Blue"))) :group 'ps-print-color)
#@175 *Non-nil means automatically detect bold/italic/underline face attributes.
If nil, we rely solely on the lists `ps-bold-faces', `ps-italic-faces', and
`ps-underlined-faces'.
(custom-declare-variable 'ps-auto-font-detect 't '(#$ . -48691) :type 'boolean :group 'ps-print-font)
#@228 *Specify list of face attributes to print colors on black/white printers.

The list elements are the same as defined on `ps-extend-face' (which see).

This variable is used only when `ps-print-color-p' is set to `black-white'.
(custom-declare-variable 'ps-black-white-faces ''((font-lock-builtin-face "black" nil bold) (font-lock-comment-face "gray20" nil italic) (font-lock-constant-face "black" nil bold) (font-lock-function-name-face "black" nil bold) (font-lock-keyword-face "black" nil bold) (font-lock-string-face "black" nil italic) (font-lock-type-face "black" nil italic) (font-lock-variable-name-face "black" nil bold italic) (font-lock-warning-face "black" nil bold italic)) '(#$ . -48974) :version "21.1" :type '(repeat (list :tag "Face Specification" (face :tag "Face Symbol") (choice :menu-tag "Foreground Color" :tag "Foreground Color" (const :tag "Black" nil) (string :tag "Color Name")) (choice :menu-tag "Background Color" :tag "Background Color" (const :tag "None" nil) (string :tag "Color Name")) (repeat :inline t (choice :menu-tag "Attribute" (const bold) (const italic) (const underline) (const strikeout) (const overline) (const shadow) (const box) (const outline))))) :group 'ps-print-face)
#@109 *A list of the (non-bold) faces that should be printed in bold font.
This applies to generating PostScript.
(custom-declare-variable 'ps-bold-faces '(unless ps-print-color-p '(font-lock-function-name-face font-lock-builtin-face font-lock-variable-name-face font-lock-keyword-face font-lock-warning-face)) '(#$ . -50197) :type '(repeat face) :group 'ps-print-face)
#@113 *A list of the (non-italic) faces that should be printed in italic font.
This applies to generating PostScript.
(custom-declare-variable 'ps-italic-faces '(unless ps-print-color-p '(font-lock-variable-name-face font-lock-type-face font-lock-string-face font-lock-comment-face font-lock-warning-face)) '(#$ . -50568) :type '(repeat face) :group 'ps-print-face)
#@113 *A list of the (non-underlined) faces that should be printed underlined.
This applies to generating PostScript.
(custom-declare-variable 'ps-underlined-faces '(unless ps-print-color-p '(font-lock-function-name-face font-lock-constant-face font-lock-warning-face)) '(#$ . -50935) :type '(repeat face) :group 'ps-print-face)
#@249 *Specify if face background should be used.

Valid values are:

   t		always use face background color.
   nil		never use face background color.
   (face...)	list of faces whose background color will be used.

Any other value will be treated as t.
(custom-declare-variable 'ps-use-face-background 'nil '(#$ . -51265) :type '(choice :menu-tag "Use Face Background" :tag "Use Face Background" (const :tag "Always Use Face Background" t) (const :tag "Never Use Face Background" nil) (repeat :menu-tag "Face Background List" :tag "Face Background List" face)) :group 'ps-print-face)
#@707 *The items to display (each on a line) on the left part of the page header.
This applies to generating PostScript.

The value should be a list of strings and symbols, each representing an entry
in the PostScript array HeaderLinesLeft.

Strings are inserted unchanged into the array; those representing
PostScript string literals should be delimited with PostScript string
delimiters '(' and ')'.

For symbols with bound functions, the function is called and should return a
string to be inserted into the array.  For symbols with bound values, the value
should be a string to be inserted into the array.  In either case, function or
variable, the string value has PostScript string delimiters added to it.
(custom-declare-variable 'ps-left-header '(list 'ps-get-buffer-name 'ps-header-dirpart) '(#$ . -51851) :type '(repeat (choice :menu-tag "Left Header" :tag "Left Header" string symbol)) :group 'ps-print-headers)
#@575 *The items to display (each on a line) on the right part of the page header.
This applies to generating PostScript.

See the variable `ps-left-header' for a description of the format of this
variable.

There are the following basic functions implemented:

   `ps-time-stamp-locale-default'	Return the locale's "preferred" date
					as, for example, "06/18/01".

   `ps-time-stamp-hh:mm:ss'		Return time as "17:28:31".

   `ps-time-stamp-mon-dd-yyyy'		Return date as "Jun 18 2001".

You can also create your own time stamp function by using `format-time-string'
(which see).
(custom-declare-variable 'ps-right-header '(list "/pagenumberstring load" 'ps-time-stamp-locale-default 'ps-time-stamp-hh:mm:ss) '(#$ . -52775) :type '(repeat (choice :menu-tag "Right Header" :tag "Right Header" string symbol)) :group 'ps-print-headers)
#@707 *The items to display (each on a line) on the left part of the page footer.
This applies to generating PostScript.

The value should be a list of strings and symbols, each representing an entry
in the PostScript array FooterLinesLeft.

Strings are inserted unchanged into the array; those representing PostScript
string literals should be delimited with PostScript string delimiters '(' and
')'.

For symbols with bound functions, the function is called and should return a
string to be inserted into the array.  For symbols with bound values, the value
should be a string to be inserted into the array.  In either case, function or
variable, the string value has PostScript string delimiters added to it.
(custom-declare-variable 'ps-left-footer '(list 'ps-get-buffer-name 'ps-header-dirpart) '(#$ . -53610) :version "21.1" :type '(repeat (choice :menu-tag "Left Footer" :tag "Left Footer" string symbol)) :group 'ps-print-headers)
#@575 *The items to display (each on a line) on the right part of the page footer.
This applies to generating PostScript.

See the variable `ps-left-footer' for a description of the format of this
variable.

There are the following basic functions implemented:

   `ps-time-stamp-locale-default'	Return the locale's "preferred" date
					as, for example, "06/18/01".

   `ps-time-stamp-hh:mm:ss'		Return time as "17:28:31".

   `ps-time-stamp-mon-dd-yyyy'		Return date as "Jun 18 2001".

You can also create your own time stamp function by using `format-time-string'
(which see).
(custom-declare-variable 'ps-right-footer '(list "/pagenumberstring load" 'ps-time-stamp-locale-default 'ps-time-stamp-hh:mm:ss) '(#$ . -54550) :version "21.1" :type '(repeat (choice :menu-tag "Right Footer" :tag "Right Footer" string symbol)) :group 'ps-print-headers)
#@57 *Non-nil means report progress while formatting buffer.
(custom-declare-variable 'ps-razzle-dazzle 't '(#$ . -55400) :type 'boolean :group 'ps-print-miscellany)
#@191 *Contains the header line identifying the output as PostScript.
By default, `ps-adobe-tag' contains the standard identifier.  Some printers
require slightly different versions of this line.
(custom-declare-variable 'ps-adobe-tag '"%!PS-Adobe-3.0\n" '(#$ . -55568) :type 'string :group 'ps-print-miscellany)
#@457 *Non-nil means build the reference face lists.

ps-print sets this value to nil after it builds its internal reference lists of
bold and italic faces.  By settings its value back to t, you can force ps-print
to rebuild the lists the next time you invoke one of the ...-with-faces
commands.

You should set this value back to t after you change the attributes of any
face, or create new faces.  Most users shouldn't have to worry about its
setting, though.
(custom-declare-variable 'ps-build-face-reference 't '(#$ . -55882) :type 'boolean :group 'ps-print-face)
#@271 *Non-nil means always rebuild the reference face lists.

If this variable is non-nil, ps-print will rebuild its internal reference lists
of bold and italic faces *every* time one of the ...-with-faces commands is
called.  Most users shouldn't need to set this variable.
(custom-declare-variable 'ps-always-build-face-reference 'nil '(#$ . -56451) :type 'boolean :group 'ps-print-face)
#@119 *Non-nil means the very first page is skipped.
It's like the very first character of buffer (or region) is ^L (\014).
(custom-declare-variable 'ps-banner-page-when-duplexing 'nil '(#$ . -56843) :type 'boolean :group 'ps-print-headers)
#@154 *Directory where it's located the PostScript prologue file used by ps-print.
By default, this directory is the same as in the variable `data-directory'.
(custom-declare-variable 'ps-postscript-code-directory '(or (and (fboundp 'locate-data-directory) (locate-data-directory "ps-print")) data-directory) '(#$ . -57085) :type 'directory :group 'ps-print-miscellany)
#@215 *Specify line spacing, in points, for ordinary text.

See also `ps-paragraph-spacing' and `ps-paragraph-regexp'.

To get all lines with some spacing set both `ps-line-spacing' and
`ps-paragraph-spacing' variables.
(custom-declare-variable 'ps-line-spacing '0 '(#$ . -57456) :type '(choice :menu-tag "Line Spacing For Ordinary Text" :tag "Line Spacing For Ordinary Text" (number :tag "Line Spacing") (cons :tag "Landscape/Portrait" (number :tag "Landscape Line Spacing") (number :tag "Portrait Line Spacing"))) :version "21.1" :group 'ps-print-miscellany)
#@215 *Specify paragraph spacing, in points, for ordinary text.

See also `ps-line-spacing' and `ps-paragraph-regexp'.

To get all lines with some spacing set both `ps-line-spacing' and
`ps-paragraph-spacing' variables.
(custom-declare-variable 'ps-paragraph-spacing '0 '(#$ . -58018) :type '(choice :menu-tag "Paragraph Spacing For Ordinary Text" :tag "Paragraph Spacing For Ordinary Text" (number :tag "Paragraph Spacing") (cons :tag "Landscape/Portrait" (number :tag "Landscape Paragraph Spacing") (number :tag "Portrait Paragraph Spacing"))) :version "21.1" :group 'ps-print-miscellany)
#@96 *Specify paragraph delimiter.

It should be a regexp or nil.

See also `ps-paragraph-spacing'.
(custom-declare-variable 'ps-paragraph-regexp '"[ 	]*$" '(#$ . -58609) :type '(choice :menu-tag "Paragraph Delimiter" (const :tag "No Delimiter" nil) (regexp :tag "Delimiter Regexp")) :version "21.1" :group 'ps-print-miscellany)
#@644 *Specify regexp which is start of a region to cut out when printing.

As an example, variables `ps-begin-cut-regexp' and `ps-end-cut-regexp' may be
set to "^Local Variables:" and "^End:", respectively, in order to leave out
some special printing instructions from the actual print.  Special printing
instructions may be appended to the end of the file just like any other
buffer-local variables.  See section "Local Variables in Files" on Emacs
manual for more information.

Variables `ps-begin-cut-regexp' and `ps-end-cut-regexp' control together what
actually gets printed.  Both variables may be set to nil in which case no
cutting occurs.
(custom-declare-variable 'ps-begin-cut-regexp 'nil '(#$ . -58940) :type 'regexp :version "21.1" :group 'ps-print-miscellany)
#@119 *Specify regexp which is end of the region to cut out when printing.

See `ps-begin-cut-regexp' for more information.
(custom-declare-variable 'ps-end-cut-regexp 'nil '(#$ . -59715) :type 'regexp :version "21.1" :group 'ps-print-miscellany)
#@35 Latest `ps-selected-pages' value.
(defvar ps-last-selected-pages nil (#$ . 59962))
#@43 Restore latest `ps-selected-pages' value.
(defalias 'ps-restore-selected-pages #[nil "\211\207" [ps-last-selected-pages ps-selected-pages] 2 (#$ . 60051) nil])
#@34 Customization of ps-print group.
(defalias 'ps-print-customize #[nil "\300\301!\207" [customize-group ps-print] 2 (#$ . 60219) nil])
#@423 Generate and print a PostScript image of the buffer.

Interactively, when you use a prefix argument (C-u), the command prompts the
user for a file name, and saves the PostScript image in that file instead of
sending it to the printer.

Noninteractively, the argument FILENAME is treated as follows: if it is nil,
send the image to the printer.  If FILENAME is a string, save the PostScript
image in a file with that name.
(defalias 'ps-print-buffer #[(&optional filename) "\301ed#\207" [filename ps-print-without-faces] 4 (#$ . 60359) (list (ps-print-preprint current-prefix-arg))])
#@256 Generate and print a PostScript image of the buffer.
Like `ps-print-buffer', but includes font, color, and underline information in
the generated image.  This command works only if you are using a window system,
so it has a way to determine color values.
(defalias 'ps-print-buffer-with-faces #[(&optional filename) "\301ed#\207" [filename ps-print-with-faces] 4 (#$ . 60950) (list (ps-print-preprint current-prefix-arg))])
#@114 Generate and print a PostScript image of the region.
Like `ps-print-buffer', but prints just the current region.
(defalias 'ps-print-region #[(from to &optional filename) "\303	\n\304$\207" [from to filename ps-print-without-faces t] 5 (#$ . 61382) (ps-print-preprint-region current-prefix-arg)])
#@256 Generate and print a PostScript image of the region.
Like `ps-print-region', but includes font, color, and underline information in
the generated image.  This command works only if you are using a window system,
so it has a way to determine color values.
(defalias 'ps-print-region-with-faces #[(from to &optional filename) "\303	\n\304$\207" [from to filename ps-print-with-faces t] 5 (#$ . 61687) (ps-print-preprint-region current-prefix-arg)])
#@243 Generate and spool a PostScript image of the buffer.
Like `ps-print-buffer' except that the PostScript image is saved in a local
buffer to be sent to the printer later.

Use the command `ps-despool' to send the spooled images to the printer.
(defalias 'ps-spool-buffer #[nil "\300ed\"\207" [ps-spool-without-faces] 3 (#$ . 62142) nil])
#@329 Generate and spool a PostScript image of the buffer.
Like `ps-spool-buffer', but includes font, color, and underline information in
the generated image.  This command works only if you are using a window system,
so it has a way to determine color values.

Use the command `ps-despool' to send the spooled images to the printer.
(defalias 'ps-spool-buffer-with-faces #[nil "\300ed\"\207" [ps-spool-with-faces] 3 (#$ . 62485) nil])
#@195 Generate a PostScript image of the region and spool locally.
Like `ps-spool-buffer', but spools just the current region.

Use the command `ps-despool' to send the spooled images to the printer.
(defalias 'ps-spool-region #[(from to) "\302	\303#\207" [from to ps-spool-without-faces t] 4 (#$ . 62922) "r"])
#@337 Generate a PostScript image of the region and spool locally.
Like `ps-spool-region', but includes font, color, and underline information in
the generated image.  This command works only if you are using a window system,
so it has a way to determine color values.

Use the command `ps-despool' to send the spooled images to the printer.
(defalias 'ps-spool-region-with-faces #[(from to) "\302	\303#\207" [from to ps-spool-with-faces t] 4 (#$ . 63236) "r"])
#@422 Send the spooled PostScript to the printer.

Interactively, when you use a prefix argument (C-u), the command prompts the
user for a file name, and saves the spooled PostScript image in that file
instead of sending it to the printer.

Noninteractively, the argument FILENAME is treated as follows: if it is nil,
send the image to the printer.  If FILENAME is a string, save the PostScript
image in a file with that name.
(defalias 'ps-despool #[(&optional filename) "\301!\207" [filename ps-do-despool] 2 (#$ . 63700) (list (ps-print-preprint current-prefix-arg))])
#@177 Display the correspondence between a line length and a font size, using the
current ps-print setup.
Try: pr -t file | awk '{printf "%3d %s
", length($0), $0}' | sort -r | head
(defalias 'ps-line-lengths #[nil "\300 \207" [ps-line-lengths-internal] 1 (#$ . 64274) nil])
#@122 Display number of pages to print this buffer, for various font heights.
The table depends on the current ps-print setup.
(defalias 'ps-nb-pages-buffer #[(nb-lines) "\301!\207" [nb-lines ps-nb-pages] 2 (#$ . 64550) (byte-code "\300ed\"\207" [ps-count-lines-preprint] 3)])
#@121 Display number of pages to print the region, for various font heights.
The table depends on the current ps-print setup.
(defalias 'ps-nb-pages-region #[(nb-lines) "\301!\207" [nb-lines ps-nb-pages] 2 (#$ . 64829) (byte-code "\300\301 `\"\207" [ps-count-lines-preprint mark] 3)])
#@40 Used for `ps-print-quote' (which see).
(defvar ps-prefix-quote nil (#$ . 65115))
#@49 Return the current PostScript-generation setup.
(defalias 'ps-setup #[nil "\302\303\304\305	\306Q\307\310\311\312\313\314\315\316\302\317\320\321\322\323\302\324\325\326\327\330\331\332\302\333\334\335\302\336\302\337\302\340\302\341\302\342\343\344\345\346\302\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377\201@ \201A \201B \302\201C \201D \201E \201F \302\201G \201H \201I \201J \201K \201L \201M \201N \201O \201P \201Q \201R \201S \201T \201U \201V \302\201W \201X \201Y \302\201Z \201[ \302\201\\ \201] \201^ \201_ \201` \201a \257j\306#)\207" [ps-prefix-quote ps-print-version nil mapconcat ps-print-quote "\n;;; ps-print version " "\n" (25 . ps-print-color-p) (25 . ps-lpr-command) (25 . ps-lpr-switches) (25 . ps-printer-name) (25 . ps-printer-name-option) (25 . ps-print-region-function) (25 . ps-manual-feed) (25 . ps-end-with-control-d) (23 . ps-paper-type) (23 . ps-warn-paper-type) (23 . ps-landscape-mode) (23 . ps-print-upside-down) (23 . ps-number-of-columns) (23 . ps-zebra-stripes) (23 . ps-zebra-stripe-height) (23 . ps-zebra-stripe-follow) (23 . ps-zebra-color) (23 . ps-line-number) (23 . ps-line-number-step) (23 . ps-line-number-start) (17 . ps-default-fg) (17 . ps-default-bg) (17 . ps-razzle-dazzle) (23 . ps-use-face-background) (28 . ps-print-control-characters) (26 . ps-print-background-image) (25 . ps-print-background-text) (29 . ps-error-handler-message) (29 . ps-user-defined-prologue) (29 . ps-print-prologue-header) (29 . ps-postscript-code-directory) (29 . ps-adobe-tag) (30 . ps-left-margin) (30 . ps-right-margin) (30 . ps-inter-column) (30 . ps-bottom-margin) (30 . ps-top-margin) (30 . ps-print-only-one-header) (30 . ps-switch-header) (30 . ps-print-header) (30 . ps-header-lines) (30 . ps-header-offset) (30 . ps-header-line-pad) (30 . ps-print-header-frame) (30 . ps-header-frame-alist) (30 . ps-print-footer) (30 . ps-footer-lines) (30 . ps-footer-offset) (30 . ps-footer-line-pad) (30 . ps-print-footer-frame) (30 . ps-footer-frame-alist) (30 . ps-show-n-of-n) (30 . ps-spool-config) (30 . ps-spool-duplex) (30 . ps-spool-tumble) (30 . ps-banner-page-when-duplexing) (30 . ps-left-header) (30 . ps-right-header) (30 . ps-left-footer) (30 . ps-right-footer) (23 . ps-n-up-printing) (23 . ps-n-up-margin) (23 . ps-n-up-border-p) (23 . ps-n-up-filling) (26 . ps-multibyte-buffer) (26 . ps-font-family) (26 . ps-font-size) (26 . ps-header-font-family) (26 . ps-header-font-size) (26 . ps-header-title-font-size) (26 . ps-footer-font-family) (26 . ps-footer-font-size) (26 . ps-line-number-color) (26 . ps-line-number-font) (26 . ps-line-number-font-size) (26 . ps-line-spacing) (26 . ps-paragraph-spacing) (26 . ps-paragraph-regexp) (26 . ps-begin-cut-regexp) (26 . ps-end-cut-regexp) (23 . ps-even-or-odd-pages) (23 . ps-selected-pages) (23 . ps-last-selected-pages) (31 . ps-build-face-reference) (31 . ps-always-build-face-reference) (20 . ps-auto-font-detect) (20 . ps-bold-faces) (20 . ps-italic-faces) (20 . ps-underlined-faces) (20 . ps-black-white-faces) "      )\n\n;; The following customized variables have long lists and are seldom modified:\n;;    ps-page-dimensions-database\n;;    ps-font-info-database\n\n;;; ps-print - end of settings\n"] 108 (#$ . 65202)])
#@701 Quote ELT for printing (used for showing settings).

If ELT is nil, return an empty string.
If ELT is string, return it.
Otherwise, ELT should be a cons (LEN . SYM) where SYM is a variable symbol and
LEN is the field length where SYM name will be inserted.  The variable
`ps-prefix-quote' is used to form the string, if `ps-prefix-quote' is nil, it's
used "(setq " as prefix; otherwise, it's used "      ".  So, the string
generated is:

   * If `ps-prefix-quote' is nil:
      "(setq SYM-NAME   SYM-VALUE"
	     |<------->|
		 LEN

   * If `ps-prefix-quote' is non-nil:
      "      SYM-NAME   SYM-VALUE"
	     |<------->|
		 LEN

If `ps-prefix-quote' is nil, it's set to t after generating string.
(defalias 'ps-print-quote #[(elt) "\204 \306\207;\203 \207@A\307\n!\211G\nJ\203& \310\202* \311\312	\fV\203: \313	\fZ\314\"\202; \315\204C \316\202b \311=\203M \317\202b 9\204W <\203^ \320\321\"\202b \320\322\"R-\207" [elt col sym key len val "" symbol-name "      " t "(setq " make-string 32 " " "nil" "t" format "'%S" "%S" ps-prefix-quote] 7 (#$ . 68480)])
#@72 Return value from association list ALIST-SYM which car is `eq' to KEY.
(defalias 'ps-value #[(alist-sym key) "	J\236A\207" [key alist-sym] 2 (#$ . 69568)])
#@74 Return element from association list ALIST-SYM which car is `eq' to KEY.
(defalias 'ps-get #[(alist-sym key) "	J\236\207" [key alist-sym] 2 (#$ . 69731)])
#@170 Store element (KEY . VALUE) into association list ALIST-SYM.
If KEY already exists in ALIST-SYM, modify cdr to VALUE.
It can be retrieved with `(ps-get ALIST-SYM KEY)'.
(defalias 'ps-put #[(alist-sym key value) "	J\236\211\203 \n\241\210\202 B	\n	JBL\210\n)\207" [key alist-sym elt: value] 4 (#$ . 69894)])
#@68 Delete by side effect element KEY from association list ALIST-SYM.
(defalias 'ps-del #[(alist-sym key) "J\304\211\2031 \n@@=\203( 	\203 	\nA\241\210\202\" \nAL\210\304\211\202 \n\nA\211\204	 *J\207" [alist-sym old a:list: key nil] 3 (#$ . 70215)])
#@67 Return the locale's "preferred" date as, for example, "06/18/01".
(defalias 'ps-time-stamp-locale-default #[nil "\300\301!\207" [format-time-string "%x"] 2 (#$ . 70480)])
#@31 Return date as "Jun 18 2001".
(defalias 'ps-time-stamp-mon-dd-yyyy #[nil "\300\301!\207" [format-time-string "%b %d %Y"] 2 (#$ . 70657)])
#@28 Return time as "17:28:31".
(defalias 'ps-time-stamp-hh:mm:ss #[nil "\300\301!\207" [format-time-string "%T"] 2 (#$ . 70801)])
(byte-code "\302B\305\302!\204- \306\307	\"\203 \310\202, \306\311	\"\203  \312\202, \306\313	\"\203+ \314\202, \315\n\316>\203> \317W\203B \320\202B \321\322!\210\n\310=\203U \317Y\203U \323\324M\210\202Y \323\325M\210\320\207" [current-load-list emacs-version ps-print-emacs-type emacs-minor-version ps-print-color-p boundp string-match "XEmacs" xemacs "Lucid" lucid "Epoch" epoch emacs (lucid xemacs) 12 nil require faces ps-color-device #[nil "\300 \301=\207" [ps-x-device-class color] 2] #[nil "\300\301!\203\n \302\303!\207\304\207" [fboundp color-values ps-e-color-values "Green" t] 2]] 3)
(defalias 'ps-mapper #[(extent list) "\302	!\303	E\304	!\305	ED\244\210\306\207" [list extent ps-x-extent-start-position push ps-x-extent-end-position pull nil] 5])
(defalias 'ps-extent-sorter #[(a b) "\302!\302	!W\207" [a b ps-x-extent-priority] 3])
(defalias 'ps-xemacs-face-kind-p #[(face kind kind-regex) "\306!\206	 \306\307!\211\205 \n\310	!\236\211\243\311\f\205\" \312\f\",\207" [face frame-font kind kind-cons kind-spec case-fold-search ps-x-face-font-instance default ps-x-font-instance-properties t string-match kind-regex] 4])
(defalias 'ps-xemacs-color-name #[(color) "\301!\203\n \302!\207\207" [color ps-x-color-specifier-p ps-x-color-name] 2])
(byte-code "\306=\203 \307\310M\210\311\312\313\"\210\311\314\315\"\210\316\317M\210\320\321M\210\202h \302	B\322\302!\204+ \323\303	B\322\303!\2047 \323\304	B\322\304!\204C \323\324\325!\203T \326\327!\204T \330\331\327\"\210\307\332M\210\312\333M\210\314\334M\210\316\335M\210\320\336M\210\305	B\322\305!\204t \337\323\207" [ps-print-emacs-type current-load-list coding-system-for-write coding-system-for-read buffer-file-coding-system ps-print-color-scale emacs ps-color-values #[(x-color) "\301\302!\203\n \303!\207\301\304!\203 \305!\207\306\307!\207" [x-color fboundp color-values ps-e-color-values x-color-values ps-e-x-color-values error "No available function to determine X color values"] 2] defalias ps-face-foreground-name face-foreground ps-face-background-name face-background ps-face-bold-p #[(face) "\302!\206	 	>\207" [face ps-bold-faces ps-e-face-bold-p] 2] ps-face-italic-p #[(face) "\302!\206	 	>\207" [face ps-italic-faces ps-e-face-italic-p] 2] boundp nil fboundp find-coding-system ps-x-find-coding-system raw-text-unix ps-x-copy-coding-system no-conversion-unix #[(x-color) "\302!\303\304!\203 \305	!\2020 \303\306!\203- \307 \203- \310\311!\203& \202) \312	!!\2020 \313\314!)\207" [x-color color ps-xemacs-color-name fboundp x-color-values ps-e-x-color-values color-instance-rgb-components ps-color-device ps-x-color-instance-rgb-components ps-x-color-instance-p ps-x-make-color-instance error "No available function to determine X color values"] 3] #[(face) "\301\302!!\207" [face ps-xemacs-color-name face-foreground] 3] #[(face) "\301\302!!\207" [face ps-xemacs-color-name face-background] 3] #[(face) "\302\303\304#\206 	>\207" [face ps-bold-faces ps-xemacs-face-kind-p WEIGHT_NAME "bold\\|demibold"] 4] #[(face) "\302\303\304#\206 \302\305\304#\206 	>\207" [face ps-italic-faces ps-xemacs-face-kind-p ANGLE_NAME "i\\|o" SLANT] 4] 1.0] 3)
(defalias 'ps-color-scale #[(color) "\301\302\303!\"\207" [color mapcar #[(value) "	\245\207" [value ps-print-color-scale] 2] ps-color-values] 4])
(defalias 'ps-face-underlined-p #[(face) "\302!\206	 	>\207" [face ps-underlined-faces face-underline-p] 2])
#@245 If prologue FILENUMBER exists and is readable, returns contents as string.

Note: No major/minor-mode is activated and no local variables are evaluated for
      FILENUMBER, but proper EOL-conversion and character interpretation is
      done!
(defalias 'ps-prologue-file #[(filenumber) "\304\305\306\307\"	\"!\310\n!\203, \311\n!\203, \312\313\314!!\315\216rq\210\316\n!\210\317 +\2020 \320\321\n\")\207" [filenumber ps-postscript-code-directory filename #1=#:temp-buffer convert-standard-filename expand-file-name format "ps-prin%d.ps" file-exists-p file-readable-p get-buffer-create generate-new-buffer-name " *temp*" ((byte-code "\301!\203\n \302!\210\301\207" [#1# buffer-name kill-buffer] 2)) insert-file-contents buffer-string error "ps-print PostScript prologue `%s' file was not found"] 5 (#$ . 74371)])
(byte-code "\301B\302\301!\204\f \303\303\207" [current-load-list ps-mark-code-directory boundp nil] 2)
#@36 ps-print PostScript error handler.
(defvar ps-print-prologue-0 "" (#$ . 75303))
#@31 ps-print PostScript prologue.
(defvar ps-print-prologue-1 "" (#$ . 75389))
(byte-code "\301B\306\301!\204\f \307\302B\306\302!\204 \310\303B\306\303!\204$ \307\304B\306\304!\2040 \307\305B\306\305!\204< \307\311B\306\311!\204I \312	\313B\306\313!\204V \312\314B\306\314!\204c \312\f\315B\306\315!\204p \312\316B\306\316!\204} \312\317B\306\317!\204\212 \312\320B\306\320!\204\227 \312\321B\306\321!\204\244 \322\323B\306\323!\204\261 \307\324B\306\324!\204\276 \307\325B\306\325!\204\313 \326\327B\306\327!\204\330 \307\330B\306\330!\204\345 \307\331B\306\331!\204\362 \307\332B\306\332!\204\377 \307\333B\306\333!\204\f\312\334B\306\334!\204\312\335B\306\335!\204&\312\336B\306\336!\2043\307\337B\306\337!\204@\307\340B\306\340!\204M\307 \341B\306\341!\204Z\307!\342B\306\342!\204g\307\"\343B\306\343!\204t\312#\344B\306\344!\204\201\307$\345B\306\345!\204\231)\346=\203\226\347\202\227\350%\307\207" [current-load-list ps-source-buffer ps-spool-buffer-name ps-spool-buffer ps-output-head ps-output-tail boundp nil "*PostScript*" ps-page-postscript 0 ps-page-order ps-page-sheet ps-page-column ps-page-printed ps-page-n-up ps-lines-printed ps-showline-count 1 ps-first-page ps-last-page ps-print-page-p t ps-control-or-escape-regexp ps-n-up-on ps-background-pages ps-background-all-pages ps-background-text-count ps-background-image-count ps-current-font ps-default-foreground ps-default-color ps-current-color ps-current-bg ps-zebra-stripe-full-p ps-razchunk ps-color-p ps-color-format emacs "%0.3f %0.3f %0.3f" "%s %s %s" ps-print-emacs-type] 2)
#@110 Vertical and horizontal space between the header frame and the text.
This is in units of points (1/72 inch).
(defvar ps-header-pad 0 (#$ . 77072))
#@110 Vertical and horizontal space between the footer frame and the text.
This is in units of points (1/72 inch).
(defvar ps-footer-pad 0 (#$ . 77226))
(defalias 'ps-page-dimensions-get-width '(macro . #[(dims) "\301\302E\207" [dims nth 0] 3]))
(defalias 'ps-page-dimensions-get-height '(macro . #[(dims) "\301\302E\207" [dims nth 1] 3]))
(defalias 'ps-page-dimensions-get-media '(macro . #[(dims) "\301\302E\207" [dims nth 2] 3]))
(byte-code "\301B\306\301!\204\f \307\302B\306\302!\204 \307\303B\306\303!\204$ \307\304B\306\304!\2040 \307\305B\306\305!\204< \307\310B\306\310!\204I \307\311B\306\311!\204V \307	\312B\306\312!\204c \307\n\313B\306\313!\204p \307\314B\306\314!\204} \307\f\315B\306\315!\204\212 \307\307\207" [current-load-list ps-landscape-page-height ps-print-width ps-print-height ps-height-remaining ps-width-remaining boundp nil ps-font-size-internal ps-header-font-size-internal ps-header-title-font-size-internal ps-footer-font-size-internal ps-line-spacing-internal ps-paragraph-spacing-internal] 2)
#@362 Alist of symbolic faces used for black/white PostScript printers.
An element of this list has the same form as `ps-print-face-extension-alist'
(which see).

Don't change this list directly; instead,
use `ps-extend-face' and `ps-extend-face-list'.
See documentation for `ps-extend-face' for valid extension symbol.
See also documentation for `ps-print-color-p'.
(defvar ps-black-white-faces-alist nil (#$ . 78293))
#@573 Alist of symbolic faces *WITH* extension features (box, outline, etc).
An element of this list has the following form:

   (FACE . [BITS FG BG])

   FACE is a symbol denoting a face name
   BITS is a bit vector, where each bit correspond
      to a feature (bold, underline, etc)
      (see documentation for `ps-print-face-map-alist')
   FG foreground color (string or nil)
   BG background color (string or nil)

Don't change this list directly; instead,
use `ps-extend-face' and `ps-extend-face-list'.
See documentation for `ps-extend-face' for valid extension symbol.
(defvar ps-print-face-extension-alist nil (#$ . 78714))
#@296 Alist of symbolic faces *WITHOUT* extension features (box, outline, etc).

An element of this list has the same form as an element of
`ps-print-face-extension-alist'.

Don't change this list directly; this list is used by `ps-face-attributes',
`ps-map-face' and `ps-build-reference-face-lists'.
(defvar ps-print-face-alist nil (#$ . 79349))
#@106 Alist of all features and the corresponding bit mask.
Each symbol correspond to one bit in a bit vector.
(defconst ps-print-face-map-alist '((bold . 1) (italic . 2) (underline . 4) (strikeout . 8) (overline . 16) (shadow . 32) (box . 64) (outline . 128)) (#$ . 79697))
#@390 Extend face in ALIST-SYM.

If optional MERGE-P is non-nil, extensions in FACE-EXTENSION-LIST are merged
with face extension in ALIST-SYM; otherwise, overrides.

If optional ALIST-SYM is nil, it's used `ps-print-face-extension-alist';
otherwise, it should be an alist symbol.

The elements in FACE-EXTENSION-LIST is like those for `ps-extend-face'.

See `ps-extend-face' for documentation.
(defalias 'ps-extend-face-list #[(face-extension-list &optional merge-p alist-sym) "\205 \303@	\n#\210A\211\204 \304\207" [face-extension-list merge-p alist-sym ps-extend-face nil] 5 (#$ . 79973)])
#@991 Extend face in ALIST-SYM.

If optional MERGE-P is non-nil, extensions in FACE-EXTENSION list are merged
with face extensions in ALIST-SYM; otherwise, overrides.

If optional ALIST-SYM is nil, it's used `ps-print-face-extension-alist';
otherwise, it should be an alist symbol.

The elements of FACE-EXTENSION list have the form:

   (FACE-NAME FOREGROUND BACKGROUND EXTENSION...)

FACE-NAME is a face name symbol.

FOREGROUND and BACKGROUND may be nil or a string that denotes the
foreground and background colors respectively.

EXTENSION is one of the following symbols:
   bold      - use bold font.
   italic    - use italic font.
   underline - put a line under text.
   strikeout - like underline, but the line is in middle of text.
   overline  - like underline, but the line is over the text.
   shadow    - text will have a shadow.
   box       - text will be surrounded by a box.
   outline   - print characters as hollow outlines.

If EXTENSION is any other symbol, it is ignored.
(defalias 'ps-extend-face #[(face-extension &optional merge-p alist-sym) "\204 \306\307	8	A@	@\211J\236A\211\206  \310\311\312\211#\313	!\311\203: \314\311H\"\202< I\210\203L \203R ;\203R \315I\210\203` \n\203f \n;\203f \307\nI\210\206s \fBJBL.\207" [alist-sym face-extension background foreground face-name ps-face ps-print-face-extension-alist 2 vector 0 nil ps-extension-bit logior 1 face-vector face-bit merge-p] 6 (#$ . 80573)])
(defalias 'ps-extension-bit #[(face-extension) "\303	AA	A\211\203 \304	@\n\236A\206 \303\"\202 )\207" [face-bit face-extension ps-print-face-map-alist 0 logior] 4])
(defalias 'ps-font-lock-face-attributes #[nil "\306\307!\205\203 \307J\205\203 \306\310!\205\203 \310J\205\202 \211A@\211@\211\311N\204~ 	A@\312	8\313	8\314	8\315	8\316\211\203K \317BB\203W \320BB\203a \321\322\"\203j \321\323\"\f\203s \321\324\"\325\n\326DC\316#\210.*\202 )\207" [face-attributes face-attribute face face-spec underline-p italic-p boundp font-lock-mode font-lock-face-attributes saved-face 2 3 4 5 nil :foreground :background append (:bold t) (:italic t) (:underline t) custom-declare-face t bold-p background foreground] 7])
(byte-code "\301B\305\301!\204\f \306\302B\305\302!\204 \306\303B\305\303!\204$ \306\304B\305\304!\2040 \306\306\207" [current-load-list ps-print-hook ps-print-begin-sheet-hook ps-print-begin-page-hook ps-print-begin-column-hook boundp nil] 2)
(defalias 'ps-print-without-faces #[(from to &optional filename region-p) "\304	\n#\210\305!\207" [from to region-p filename ps-spool-without-faces ps-do-despool] 4])
(defalias 'ps-spool-without-faces #[(from to &optional region-p) "\303\304!\210\305	\"\210\306p	\n\307$\207" [region-p from to run-hooks ps-print-hook ps-printing-region ps-generate ps-generate-postscript] 5])
(defalias 'ps-print-with-faces #[(from to &optional filename region-p) "\304	\n#\210\305!\207" [from to region-p filename ps-spool-with-faces ps-do-despool] 4])
(defalias 'ps-spool-with-faces #[(from to &optional region-p) "\303\304!\210\305	\"\210\306p	\n\307$\207" [region-p from to run-hooks ps-print-hook ps-printing-region ps-generate ps-generate-postscript-with-faces] 5])
(defalias 'ps-count-lines-preprint #[(from to) "\203 	\204\f \302\303!\210\304	\"C\207" [from to error "The mark is not set now" count-lines] 3])
(defalias 'ps-count-lines #[(from to) "\302	\"\212	b\210i\303U\203 \304\202 \303)\\\207" [from to count-lines 0 1] 3])
#@389 Variable used to indicate if the region that ps-print is printing.
It is a cons, the car of which is the line number where the region begins, and
its cdr is the total number of lines in the buffer.  Formatting functions can
use this information to print the original line number (and not the number of
lines printed), and to indicate in the header that the printout is of a partial
file.
(defvar ps-printing-region nil (#$ . 84088))
#@46 Non-nil means ps-print is printing a region.
(defvar ps-printing-region-p nil (#$ . 84527))
(defalias 'ps-printing-region #[(region-p from) "\203 \304e\n\"\202 \305\304ed\"B\211\207" [region-p ps-printing-region-p from ps-printing-region ps-count-lines 1] 4])
(defalias 'ps-font-alist #[(font-sym) "\301N\207" [font-sym fonts] 2])
(put 'ps-font-alist 'byte-optimizer 'byte-compile-inline-expand)
#@71 Font family name for text of `font-type', when generating PostScript.
(defalias 'ps-font #[(font-sym font-type) "\211\304N)\305	\236A	\203 	@@=\204 	A\211\204 	@A\206& \n*\207" [font-sym font-list normal-font font-type fonts normal] 3 (#$ . 84936)])
(defalias 'ps-fonts #[(font-sym) "\301\302\211\303N)\"\207" [font-sym mapcar cdr fonts] 5])
(put 'ps-fonts 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'ps-font-number #[(font-sym font-type) "\302	\211\303N)\"\206 \304\207" [font-type font-sym ps-alist-position fonts 0] 5])
(put 'ps-font-number 'byte-optimizer 'byte-compile-inline-expand)
#@287 The height of a line, for generating PostScript.
This is the value that ps-print uses to determine the height,
y-dimension, of the lines of text it has printed, and thus affects the
point at which page-breaks are placed.
The line-height is *not* the same as the point size of the font.
(defalias 'ps-line-height #[(font-sym) "\301N\207" [font-sym line-height] 2 (#$ . 85558)])
(put 'ps-line-height 'byte-optimizer 'byte-compile-inline-expand)
#@301 The height of a `title' line, for generating PostScript.
This is the value that ps-print uses to determine the height,
y-dimension, of the lines of text it has printed, and thus affects the
point at which page-breaks are placed.
The title-line-height is *not* the same as the point size of the font.
(defalias 'ps-title-line-height #[(font-sym) "\301N\207" [font-sym title-line-height] 2 (#$ . 86009)])
(put 'ps-title-line-height 'byte-optimizer 'byte-compile-inline-expand)
#@108 The width of a space character, for generating PostScript.
This value is used in expanding tab characters.
(defalias 'ps-space-width #[(font-sym) "\301N\207" [font-sym space-width] 2 (#$ . 86492)])
(put 'ps-space-width 'byte-optimizer 'byte-compile-inline-expand)
#@237 The average width, in points, of a character, for generating PostScript.
This is the value that ps-print uses to determine the length,
x-dimension, of the text it has printed, and thus affects the point at
which long lines wrap around.
(defalias 'ps-avg-char-width #[(font-sym) "\301N\207" [font-sym avg-char-width] 2 (#$ . 86764)])
(put 'ps-avg-char-width 'byte-optimizer 'byte-compile-inline-expand)
#@177 Display the correspondence between a line length and a font size,
using the current ps-print setup.
Try: pr -t file | awk '{printf "%3d %s
", length($0), $0}' | sort -r | head
(defalias 'ps-line-lengths-internal #[nil "\206 \306\307!	\206 \306\310!\n\206 \306\311!\312\313!\314\314\315N)\316 \210 \317 \320!\321\"\321#\322$\321%\321&\321'\321(\321)!_\f\245\"\323 \"\245!#$_\f\245%\323 %\245!\211&)q\210db\210o\204\206 \324\325\326\327\"\324\261\210\330\261\210)#X\203\270  \331)!\245(\f(_\245'\332\333)'#c\210)T\211)\202\216 \324c\210\334\335\".\207" [ps-font-size-internal ps-header-font-size-internal ps-header-title-font-size-internal buf ifs font-sym ps-get-font-size ps-font-size ps-header-font-size ps-header-title-font-size get-buffer-create "*Line-lengths*" ps-font-for-text avg-char-width ps-get-page-dimensions ps-setup 5 nil 14 floor "\n" make-string 75 59 "\nnb char per line / font size\n" float format "%16d   %s\n" display-buffer not-this-window icw ps-print-width print-width fs-min cw-min nb-cpl-max fs-max cw-max nb-cpl-min fs cw nb-cpl] 5 (#$ . 87174)])
#@164 Display correspondence between font size and the number of pages.
The correspondence is based on having NB-LINES lines of text,
and on the current ps-print setup.
(defalias 'ps-nb-pages #[(nb-lines) "\206 \306\307!	\206 \306\310!\n\206 \306\311!\206  \312\f\313\"\314\315!\"#\316$\316\317N)%\320 \210&'\321 \322(\323)\323*\323+\324,\323-\323.\323/\3230\3231\3232\3233%\"\\(_\"Z#\245)\325')\245!*\326\3274!*\245!+%\"\\,_\"Z#\245-\325'-\245!.\326\3274!.\245!/+3q\210db\210o\204\302 \330\331\332\333\"\330\261\210\334\3354\"\336\261\2103/X\203\3264\3273!\245!2'2\2451#1_%\2450\334\33730#c\2103T\2113\202\317 \330c\210\340\341\".\207" [ps-font-size-internal ps-header-font-size-internal ps-header-title-font-size-internal ps-line-spacing-internal ps-line-spacing buf ps-get-font-size ps-font-size ps-header-font-size ps-header-title-font-size ps-get-size "line spacing" get-buffer-create "*Nb-Pages*" ps-font-for-text line-height ps-get-page-dimensions ps-setup 4 nil 14 floor ceiling float "\n" make-string 75 59 format "\nThere are %d lines.\n\n" "nb page / font size\n" "%7d   %s\n" display-buffer not-this-window ils ifs font-sym ilh ps-print-height page-height fs-min lh-min nb-lpp-max nb-page-min fs-max lh-max nb-lpp-min nb-page-max fs lh nb-lpp nb-page nb-lines] 5 (#$ . 88316)])
(defalias 'ps-lookup '(macro . #[(key) "\301\302\303BBD\207" [key cdr assq (font-entry)] 4]))
(defalias 'ps-size-scale '(macro . #[(key) "\301\302\303D\304BB\305BB\207" [key / * ps-lookup (font-size) (size)] 4]))
(defalias 'ps-select-font #[(font-family sym font-size title-font-size) "	\236A\211\204 \306\307\310\311	\"#\210\303\n\236A\312\f\313\211\n\236A#\210\312\f\314\211\n\236A_\245#\210\312\f\315\211\n\236A_\245#\210\312\f\316\211\n\236A_\245#\210\312\f\317\316\n\236A_\245#*\207" [font-family ps-font-info-database font-entry size sym font-size error "Don't have data to scale font %s.  Known fonts families are %s" mapcar car put fonts space-width avg-char-width line-height title-line-height title-font-size] 7])
(defalias 'ps-get-page-dimensions #[nil "	\236A\306\211\211\204 \307\310\311\312	\"\"\210\202# \313W\203# \307\314\"\210\315\316\211$\210\315\317$\210\315\320 \211$\210\f@\fA@!\203O \n\n\"#Z$ZS%_Z\245\211&\321X\203x \307\322#$%&&\210\n'Z(Z\211)\321X\203\221 \307\323(')$\210*\203\303 +\317,\317\324N)_-).Z-Z\317,\317\324N)Z\317,\317\325N)/S_Z-Z))\321X\203\361 \307\326('.-\211\317,\317\324N)\\\317,\317\325N)/S_\\-\\)&\2100\2031\320,\320\324N)_2)3Z2Z\320,\320\325N)4S_Z2Z))\321X\203A\307\327('32\211\320,\320\325N)4S_\\2\\)&\2105\205\200\316,\316\325N)\2116\\7_8\330)8\"8_Z\211)\321X\205\307\33197\316,\316\325N)6)&*+\207" [ps-paper-type ps-page-dimensions-database page-height page-width page-dimensions ps-number-of-columns nil error "`ps-paper-type' must be one of:\n%s" mapcar car 1 "The number of columns %d should be positive" ps-select-font ps-font-for-text ps-font-for-header ps-font-for-footer 0 "Bad horizontal layout:\npage-width           == %s\nps-left-margin       == %s\nps-right-margin      == %s\nps-inter-column      == %s\nps-number-of-columns == %s\n| lm | text | ic | text | ic | text | rm |\npage-width == lm  +  n * print-width  +  (n - 1) * ic  +  rm\n=> print-width == %d !" "Bad vertical layout:\nps-top-margin    == %s\nps-bottom-margin == %s\npage-height == bm + print-height + tm\n=> print-height == %d !" title-line-height line-height "Bad vertical layout (header):\nps-top-margin    == %s\nps-bottom-margin == %s\nps-header-offset == %s\nps-header-pad    == %s\nheader-height    == %s\npage-height == bm + print-height + tm - ho - hh\n=> print-height == %d !" "Bad vertical layout (footer):\nps-top-margin    == %s\nps-bottom-margin == %s\nps-footer-offset == %s\nps-footer-pad    == %s\nfooter-height    == %s\npage-height == bm + print-height + tm - fo - fh\n=> print-height == %d !" floor "Bad vertical layout (full zebra stripe follow):\nps-zebra-stripe-follow == %s\nps-zebra-stripe-height == %s\nfont-text-height       == %s\nline-spacing           == %s\npage-height == ((floor print-height ((th + ls) * zh)) * ((th + ls) * zh)) - th\n=> print-height == %d !" ps-font-family ps-font-size-internal ps-header-font-family ps-header-font-size-internal ps-header-title-font-size-internal ps-footer-font-family ps-footer-font-size-internal ps-landscape-mode ps-landscape-page-height ps-left-margin ps-right-margin ps-inter-column ps-print-width ps-bottom-margin ps-top-margin ps-print-height ps-print-header ps-header-line-pad font-sym ps-header-pad ps-header-offset ps-header-lines ps-print-footer ps-footer-line-pad ps-footer-pad ps-footer-offset ps-footer-lines ps-zebra-stripe-full-p ps-line-spacing-internal ps-zebra-stripe-height zebra ps-zebra-stripe-follow] 10])
(defalias 'ps-print-preprint-region #[(prefix-arg) "\204 \302\303!\210`\304 \305	!E\207" [mark-active prefix-arg error "The mark is not set now" mark ps-print-preprint] 4])
(defalias 'ps-print-preprint #[(prefix-arg) "\205} \247\204 <\205} \305\306 \206 \307 !\310P\311\312	\"\313\n	\314$\315\f!\2035 \316 \210\317\211\202W \320\f!\204D \316 \210\321\211\202W \322\f!\203V \323\324\311\325\f\"!?\202W \314\203l \313\311\326\n\"\327\f!\314\211\305\f!%\202& \315\f!\203{ \330	\331\f!\"\202| \f+\207" [prefix-arg name prompt default-directory res file-name-nondirectory buffer-file-name buffer-name ".ps" format "Save PostScript to file: (default %s) " read-file-name nil file-directory-p ding "It's a directory" file-writable-p "File is unwritable" file-exists-p "File exists" y-or-n-p "File `%s' exists; overwrite? " "%s; save PostScript to file: " file-name-directory expand-file-name file-name-as-directory] 7])
#@66 Vector used to map characters to PostScript string escape codes.
(defvar ps-string-escape-codes (byte-code "\302\303\304\"\305\306X\203 	\307\310\"I\210T\211\202 \311W\2031 	\307\312\"I\210T\211\202 \313X\203F 	\307\314\"I\210T\211\2022 	\315\316I\210	\317\320I\210	\321\322I\210	\323\324I\210	\325\326I\210	\327\330I\210	\331\332I\210	\333\334I\210	*\207" [char table make-vector 256 nil 0 31 format "\\%03o" 127 "%c" 255 "\\%o" 10 "\\n" 13 "\\r" 9 "\\t" 8 "\\b" 12 "\\f" 92 "\\\\" 40 "\\(" 41 "\\)"] 6) (#$ . 94177))
(defalias 'ps-output-string-prim #[(string) "\303c\210\212\304!c\210)\305\306w\210m\204! g\307\310!\210\n	Hc\210)\202\n db\210\311c\207" [string special ps-string-escape-codes "(" string-as-unibyte " -'*-[]-~" nil delete-char 1 ")"] 2])
(put 'ps-output-string-prim 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'ps-init-output-queue #[nil "\302C\211\211\207" [ps-output-head ps-output-tail ""] 3])
(put 'ps-init-output-queue 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'ps-selected-pages #[nil "@@@AA\211\205 \nW\205 \202  \207" [ps-selected-pages ps-first-page ps-last-page ps-page-postscript] 3])
(defalias 'ps-print-page-p #[nil "\203' 	\nX\203 	X\202$ \203# \303 \210	X\205F 	\nX\202$ \306\205F \f\307=\2036 \310	\311\"\312U\202F \f\313=\203E \310	\311\"\311U\202F \314\211\207" [ps-first-page ps-page-postscript ps-last-page ps-selected-pages ps-even-or-odd-pages ps-print-page-p nil even-page logand 1 0 odd-page t] 3])
(put 'ps-print-page-p 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'ps-print-sheet-p #[nil "\303=\203 \304	\305\"\306U\202 \307=\203 \304	\305\"\305U\202 \310\211\207" [ps-even-or-odd-pages ps-page-sheet ps-print-page-p even-sheet logand 1 0 odd-sheet t] 3])
(put 'ps-print-sheet-p 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'ps-output #[(&rest args) "\205 	\n\241\210	A\205 	A\211\202	 \207" [ps-print-page-p ps-output-tail args] 3])
(defalias 'ps-output-string #[(string) "\301\302\"\207" [string ps-output t] 3])
(defalias 'ps-output-prologue #[(args) "\301\302;\203\f C\202 \"\207" [args ps-output prologue] 3])
(defalias 'ps-flush-output #[nil "\212q\210db\210	\203k 	@\211\306=\203E 	A\211@\307c\210\212\310!c\210)\311\312w\210m\204; g\313\314!\210\fHc\210)\202$ db\210\315c\210)\202c \n\316=\203` 	A\212\317\320!\210\314u\210\321\322	@\"\210)\202c \nc\210)	A\211\204 )\323C\211\211\207" [ps-spool-buffer ps-output-head it string special ps-string-escape-codes t "(" string-as-unibyte " -'*-[]-~" nil delete-char 1 ")" prologue search-backward "\nBeginDoc" apply insert "" ps-output-tail] 4])
(defalias 'ps-insert-file #[(fname) "\302 \210\212q\210db\210\303	!)\207" [ps-spool-buffer fname ps-flush-output insert-file] 2])
(defalias 'ps-generate-header-line #[(fonttag &optional content) "\302\303\304#\210	;\203 \302\305	\"!\210\202E 	9\203+ \306	!\203+ \307\305	 \"!\210\202E 	9\203A \310	!\203A \307\305	J\"!\210\202E \307\311!\210\302\312!\207" [fonttag content ps-output " [" " " ps-mule-encode-header-string fboundp ps-output-string boundp "" "]\n"] 4])
(defalias 'ps-generate-header #[(name fonttag0 fonttag1 contents) "\306\307\310#\210	\2033 \n\311V\2033 \312\313\f	@\"\210\nW\2032 	A\211\2032 \313	@\"\210T\211\202 )\306\314!\207" [name contents ps-header-lines count fonttag0 fonttag1 ps-output "/" "[\n" 0 1 ps-generate-header-line "]def\n"] 5])
(defalias 'ps-output-boolean #[(name bool) "\302\303\304	\203\f \305\202 \306#!\207" [name bool ps-output format "/%s %s def\n" "true" "false"] 5])
(defalias 'ps-output-frame-properties #[(name alist) "\302\303\304\305\306	\236A\307\"\305\310	\236A\311\"\312\313	\236A\206 \314!\305\315	\236A\316\"\305\317	\236A\320\"\321&	\207" [name alist ps-output "/" " [" ps-format-color fore-color 0.0 back-color 0.9 ps-float-format border-width 0.4 border-color 0.0 shadow-color 0.0 "]def\n"] 11])
(defalias 'ps-background-pages #[(page-list func) "\203	 \303\304\"\207	\nB\211\207" [page-list func ps-background-all-pages mapcar #[(pages) ":\203\n @\202 :\203 A\202 \211\250\2050 	\250\2050 \n	X\2050 \304\305\306\n	#\"*\207" [pages end start func add-to-list ps-background-pages vector] 7]] 3])
(byte-code "\301B\302\301\207" [current-load-list ps-boundingbox-re "^%%BoundingBox:\\s-+\\([0-9.]+\\)\\s-+\\([0-9.]+\\)\\s-+\\([0-9.]+\\)\\s-+\\([0-9.]+\\)"] 2)
(defalias 'ps-get-boundingbox #[nil "\212q\210\212\302	\303\304#\203. \305\306\307\224\307\225{!\306\310\224\310\225{!\306\311\224\311\225{!\306\312\224\312\225{!$\2024 \305\313\211\211\211$*\207" [ps-spool-buffer ps-boundingbox-re re-search-forward nil t vector string-to-number 1 2 3 4 0] 7])
(byte-code "\302B\303\302!\204 	\304=\203 \305\202 \306\302\207" [current-load-list ps-print-emacs-type ps-float-format boundp emacs "%0.3f " "%s "] 2)
(defalias 'ps-float-format #[(value &optional default) "\206 	\211\204 \304\202  \n\247\203 \305\n\306_\"\202  \305\307\n\")\207" [value default literal ps-float-format " " format 1.0 "%s "] 5])
(defalias 'ps-background-text #[nil "\301\302\"\207" [ps-print-background-text mapcar #[(text) "T\302\303\304\"!\210\305	@!\210\302\306\307\310	8\311\"\303\312\313	8\206  \314\"\307\315	8\316\"\307\317	8\320\"\307	A@\321\"\307\322	8\321\"\323&\210\324\325	\233\303\326\"\"\207" [ps-background-text-count text ps-output format "/ShowBackText-%d{\n" ps-output-string "\n" ps-float-format 4 200.0 "/%s " 3 "Times-Roman" 6 "PrintHeight PrintPageWidth atan" 5 0.85 "0" 2 "\nShowBackText}def\n" ps-background-pages 7 "ShowBackText-%d\n"] 10]] 3])
(defalias 'ps-background-image #[nil "\301\302\"\207" [ps-print-background-image mapcar #[(image) "\305@!\306	!\205~ \nT\307\310\311\n\"\312\3138\314\"\312\3158\316\"\312\3178\320\"\312A@\321\"\312\3228\323\"\324&\210\325	!\210\326 \212\fq\210\212\327\330\331\332#\203p \333\310\334\312\322H\335HZ\336\245\335H\\[!\312\315H\337HZ\340\245\337H\\[!#\332\"\210+\307\341!\210\342\343\233\310\344\n\"\")\207" [image image-file ps-background-image-count box ps-spool-buffer expand-file-name file-readable-p ps-output format "/ShowBackImage-%d{\n--back-- " ps-float-format 5 0.0 3 1.0 4 1.0 "PrintPageWidth 2 div" 2 "PrintHeight 2 div BottomMargin add" "\nBeginBackImage\n" ps-insert-file ps-get-boundingbox re-search-backward "^--back--" nil t replace-match "%s %s" 0 2.0 1 2.0 "\nEndBackImage}def\n" ps-background-pages 6 "ShowBackImage-%d\n"] 9]] 3])
(defalias 'ps-background #[(page-number) "\302\303\304	\"\210\205 \305\306!)\207" [has-local-background ps-background-pages nil mapcar #[(range) "\303H	X\205\" 	\304HX\205\" \n\203 \305\306H!\207\307\305\310\306H\"\207" [range page-number has-local-background 0 1 ps-output 2 t "/printLocalBackground{\n"] 4] ps-output "}def\n"] 3])
(defalias 'ps-remove-duplicates #[(list) "\303	\203 	@\n\235\204 	@\nB	A\211\204 \n\237*\207" [list tail new nil] 3])
(defalias 'ps-alist-position #[(item list) "\305\306\211\203$ @@\f=\211\203 \306\211\202 \nTA\211\204\n 	\205) \n+\207" [list found index tail item 0 nil] 4])
#@675 Alist which is the page matrix database used for N-up printing.

Each element has the following form:

   (PAGE
    (MAX LANDSCAPE LINES COLUMNS COL-MISSING)
    ...)

Where:
PAGE is the page size used (see `ps-paper-type').
MAX is the maximum elements of this page matrix.
LANDSCAPE specifies if page matrix is landscaped, has the following valid
	  values:
	    nil   the sheet is in portrait mode.
	    t     the sheet is in landscape mode.
	    pag   the sheet is in portrait mode and page is in landscape mode.
LINES is the number of lines of page matrix.
COLUMNS is the number of columns of page matrix.
COL-MISSING is the number of columns missing to fill the sheet.
(defconst ps-n-up-database '((a4 (1 nil 1 1 0) (2 t 1 2 0) (4 nil 2 2 0) (6 t 2 3 1) (8 t 2 4 0) (9 nil 3 3 0) (12 t 3 4 2) (16 nil 4 4 0) (18 t 3 6 0) (20 nil 5 4 1) (25 nil 5 5 0) (30 nil 6 5 1) (32 t 4 8 0) (36 nil 6 6 0) (42 nil 7 6 1) (49 nil 7 7 0) (50 t 5 10 0) (56 nil 8 7 1) (64 nil 8 8 0) (72 nil 9 8 1) (81 nil 9 9 0) (90 nil 10 9 1) (100 nil 10 10 0)) (a3 (1 nil 1 1 0) (2 t 1 2 0) (4 nil 2 2 0) (6 t 2 3 1) (8 t 2 4 0) (9 nil 3 3 0) (12 nil 4 3 1) (16 nil 4 4 0) (18 t 3 6 0) (20 nil 5 4 1) (25 nil 5 5 0) (30 nil 6 5 1) (32 t 4 8 0) (36 nil 6 6 0) (42 nil 7 6 1) (49 nil 7 7 0) (50 t 5 10 0) (56 nil 8 7 1) (64 nil 8 8 0) (72 nil 9 8 1) (81 nil 9 9 0) (90 nil 10 9 1) (100 nil 10 10 0)) (letter (1 nil 1 1 0) (2 t 1 2 0) (4 nil 2 2 0) (6 t 2 3 0) (9 nil 3 3 0) (12 nil 4 3 1) (16 nil 4 4 0) (20 nil 5 4 1) (25 nil 5 5 0) (30 nil 6 5 1) (36 nil 6 6 0) (40 t 5 8 0) (42 nil 7 6 1) (49 nil 7 7 0) (56 nil 8 7 1) (64 nil 8 8 0) (72 nil 9 8 1) (81 nil 9 9 0) (90 nil 10 9 1) (100 nil 10 10 0)) (legal (1 nil 1 1 0) (2 t 1 2 0) (4 nil 2 2 0) (6 nil 3 2 1) (9 nil 3 3 0) (10 t 2 5 0) (12 nil 4 3 1) (16 nil 4 4 0) (20 nil 5 4 1) (25 nil 5 5 0) (30 nil 6 5 1) (36 nil 6 6 0) (42 nil 7 6 1) (49 nil 7 7 0) (56 nil 8 7 1) (64 nil 8 8 0) (70 t 5 14 0) (72 nil 9 8 1) (81 nil 9 9 0) (90 nil 10 9 1) (100 nil 10 10 0)) (letter-small (1 nil 1 1 0) (2 t 1 2 0) (4 nil 2 2 0) (6 t 2 3 0) (9 nil 3 3 0) (12 t 3 4 1) (15 t 3 5 0) (16 nil 4 4 0) (20 nil 5 4 1) (25 nil 5 5 0) (28 t 4 7 0) (30 nil 6 5 1) (36 nil 6 6 0) (40 t 5 8 0) (42 nil 7 6 1) (49 nil 7 7 0) (56 nil 8 7 1) (60 t 6 10 0) (64 nil 8 8 0) (72 ni 9 8 1) (81 nil 9 9 0) (84 t 7 12 0) (90 nil 10 9 1) (100 nil 10 10 0)) (tabloid (1 nil 1 1 0) (2 t 1 2 0) (4 nil 2 2 0) (6 t 2 3 1) (8 t 2 4 0) (9 nil 3 3 0) (12 nil 4 3 1) (16 nil 4 4 0) (20 nil 5 4 1) (25 nil 5 5 0) (30 nil 6 5 1) (36 nil 6 6 0) (42 nil 7 6 1) (49 nil 7 7 0) (56 nil 8 7 1) (64 nil 8 8 0) (72 nil 9 8 1) (81 nil 9 9 0) (84 t 6 14 0) (90 nil 10 9 1) (100 nil 10 10 0)) (ledger (1 nil 1 1 0) (2 pag 1 2 0) (4 nil 2 2 0) (6 pag 2 3 1) (8 pag 2 4 0) (9 nil 3 3 0) (12 nil 4 3 1) (16 nil 4 4 0) (20 nil 5 4 1) (25 nil 5 5 0) (30 nil 6 5 1) (36 nil 6 6 0) (42 nil 7 6 1) (49 nil 7 7 0) (56 nil 8 7 1) (64 nil 8 8 0) (72 nil 9 8 1) (81 nil 9 9 0) (84 pag 6 14 0) (90 nil 10 9 1) (100 nil 10 10 0)) (statement (1 nil 1 1 0) (2 t 1 2 0) (4 nil 2 2 0) (6 nil 3 2 1) (9 nil 3 3 0) (10 t 2 5 0) (12 nil 4 3 1) (16 nil 4 4 0) (20 nil 5 4 1) (21 t 3 7 0) (25 nil 5 5 0) (30 nil 6 5 1) (36 nil 6 6 0) (40 t 4 10 0) (42 nil 7 6 1) (49 nil 7 7 0) (56 nil 8 7 1) (60 t 5 12 0) (64 nil 8 8 0) (72 nil 9 8 1) (81 nil 9 9 0) (90 nil 10 9 1) (100 nil 10 10 0)) (executive (1 nil 1 1 0) (2 t 1 2 0) (4 nil 2 2 0) (6 t 2 3 0) (9 nil 3 3 0) (12 nil 4 3 1) (16 nil 4 4 0) (20 nil 5 4 1) (25 nil 5 5 0) (28 t 4 7 0) (30 nil 6 5 1) (36 nil 6 6 0) (42 nil 7 6 1) (45 t 5 9 0) (49 nil 7 7 0) (56 nil 8 7 1) (60 t 6 10 0) (64 nil 8 8 0) (72 nil 9 8 1) (81 nil 9 9 0) (84 t 7 12 0) (90 nil 10 9 1) (100 nil 10 10 0)) (a4small (1 nil 1 1 0) (2 t 1 2 0) (4 nil 2 2 0) (6 t 2 3 1) (8 t 2 4 0) (9 nil 3 3 0) (12 nil 4 3 1) (16 nil 4 4 0) (18 t 3 6 0) (20 nil 5 4 1) (25 nil 5 5 0) (30 nil 6 5 1) (32 t 4 8 0) (36 nil 6 6 0) (42 nil 7 6 1) (49 nil 7 7 0) (50 t 5 10 0) (56 nil 8 7 1) (64 nil 8 8 0) (72 nil 9 8 1) (78 t 6 13 0) (81 nil 9 9 0) (90 nil 10 9 1) (100 nil 10 10 0)) (b4 (1 nil 1 1 0) (2 t 1 2 0) (4 nil 2 2 0) (6 t 2 3 1) (8 t 2 4 0) (9 nil 3 3 0) (12 nil 4 3 1) (16 nil 4 4 0) (18 t 3 6 0) (20 nil 5 4 1) (25 nil 5 5 0) (30 nil 6 5 1) (32 t 4 8 0) (36 nil 6 6 0) (42 nil 7 6 1) (49 nil 7 7 0) (50 t 5 10 0) (56 nil 8 7 1) (64 nil 8 8 0) (72 nil 9 8 1) (81 nil 9 9 0) (90 nil 10 9 1) (100 nil 10 10 0)) (b5 (1 nil 1 1 0) (2 t 1 2 0) (4 nil 2 2 0) (6 t 2 3 1) (8 t 2 4 0) (9 nil 3 3 0) (12 nil 4 3 1) (16 nil 4 4 0) (18 t 3 6 0) (20 nil 5 4 1) (25 nil 5 5 0) (30 nil 6 5 1) (32 t 4 8 0) (36 nil 6 6 0) (42 nil 7 6 1) (49 nil 7 7 0) (50 t 5 10 0) (56 nil 8 7 1) (64 nil 8 8 0) (72 nil 9 8 0) (81 nil 9 9 0) (90 nil 10 9 1) (98 t 7 14 0) (100 nil 10 10 0))) (#$ . 101295))
(defalias 'ps-n-up-landscape '(macro . #[(mat) "\301\302E\207" [mat nth 1] 3]))
(defalias 'ps-n-up-lines '(macro . #[(mat) "\301\302E\207" [mat nth 2] 3]))
(defalias 'ps-n-up-columns '(macro . #[(mat) "\301\302E\207" [mat nth 3] 3]))
(defalias 'ps-n-up-missing '(macro . #[(mat) "\301\302E\207" [mat nth 4] 3]))
(defalias 'ps-n-up-printing #[nil "\305^\306]	\n\236A\211\203  \211@@)V\203  A\202 @)\207" [ps-n-up-printing ps-paper-type ps-n-up-database the-list x 100 1] 3])
#@529 Alist for n-up printing initializations.

Each element has the following form:

   (KIND XCOL YCOL XLIN YLIN REPEAT END XSTART YSTART)

Where:
KIND is a valid value of `ps-n-up-filling'.
XCOL YCOL are the relative position for the next column.
XLIN YLIN are the relative position for the beginning of next line.
REPEAT is the number of repetions for external loop.
END is the number of repetions for internal loop and also the number of pages in
    a row.
XSTART YSTART are the relative position for the first page in a sheet.
(defconst ps-n-up-filling-database '((left-top "PageWidth" "0" "N-Up-End 1 sub PageWidth mul neg" "LandscapePageHeight neg" "N-Up-Lines" "N-Up-Columns" "0" "0") (left-bottom "PageWidth" "0" "N-Up-End 1 sub PageWidth mul neg" "LandscapePageHeight" "N-Up-Lines" "N-Up-Columns" "0" "N-Up-Repeat 1 sub LandscapePageHeight mul neg") (right-top "PageWidth neg" "0" "N-Up-End 1 sub PageWidth mul" "LandscapePageHeight neg" "N-Up-Lines" "N-Up-Columns" "N-Up-End 1 sub PageWidth mul" "0") (right-bottom "PageWidth neg" "0" "N-Up-End 1 sub PageWidth mul" "LandscapePageHeight" "N-Up-Lines" "N-Up-Columns" "N-Up-End 1 sub PageWidth mul" "N-Up-Repeat 1 sub LandscapePageHeight mul neg") (top-left "0" "LandscapePageHeight neg" "PageWidth" "N-Up-End 1 sub LandscapePageHeight mul" "N-Up-Columns" "N-Up-Lines" "0" "0") (bottom-left "0" "LandscapePageHeight" "PageWidth" "N-Up-End 1 sub LandscapePageHeight mul neg" "N-Up-Columns" "N-Up-Lines" "0" "N-Up-End 1 sub LandscapePageHeight mul neg") (top-right "0" "LandscapePageHeight neg" "PageWidth neg" "N-Up-End 1 sub LandscapePageHeight mul" "N-Up-Columns" "N-Up-Lines" "N-Up-Repeat 1 sub PageWidth mul" "0") (bottom-right "0" "LandscapePageHeight" "PageWidth neg" "N-Up-End 1 sub LandscapePageHeight mul neg" "N-Up-Columns" "N-Up-Lines" "N-Up-Repeat 1 sub PageWidth mul" "N-Up-End 1 sub LandscapePageHeight mul neg")) (#$ . 106536))
(defalias 'ps-n-up-filling #[nil "	\236\206	 \302	\236A\207" [ps-n-up-filling ps-n-up-filling-database left-top] 2])
(defalias 'ps-n-up-xcolumn '(macro . #[(init) "\301\302E\207" [init nth 0] 3]))
(defalias 'ps-n-up-ycolumn '(macro . #[(init) "\301\302E\207" [init nth 1] 3]))
(defalias 'ps-n-up-xline '(macro . #[(init) "\301\302E\207" [init nth 2] 3]))
(defalias 'ps-n-up-yline '(macro . #[(init) "\301\302E\207" [init nth 3] 3]))
(defalias 'ps-n-up-repeat '(macro . #[(init) "\301\302E\207" [init nth 4] 3]))
(defalias 'ps-n-up-end '(macro . #[(init) "\301\302E\207" [init nth 5] 3]))
(defalias 'ps-n-up-xstart '(macro . #[(init) "\301\302E\207" [init nth 6] 3]))
(defalias 'ps-n-up-ystart '(macro . #[(init) "\301\302E\207" [init nth 7] 3]))
#@34 Alist for error handler message.
(defconst ps-error-handler-alist '((none . 0) (paper . 1) (system . 2) (paper-and-system . 3)) (#$ . 109194))
#@38 Alist for zebra stripe continuation.
(defconst ps-zebra-stripe-alist '((follow . 1) (full . 2) (full-follow . 3)) (#$ . 109343))
(defalias 'ps-begin-file #[nil "\306\306\306\306\307\307@A\236AB\203 C?\202 C\310 \311 DEFGH\2035 F?F\312I\313\314 \315\316 \317J\320\321\322!\323B\203O \324\202P \325\326\327\330\331\332\333K\334\335K\211K\336N)\")\337\340\341\"\337\340\342\"D\"!\343#\344\345G8\346\347\350G@!\"\346\347\350GA@!\"\351L\203\232 F\203\226 \352\202\233 \353\202\233 \354&\210\355M!\210\312\356\345G8\357\360\346\361\362NO\"A\206\270 \363\"P\364&\210\355Q!\210\312\365!\210\366\367B\206\325 EA@\370=\"\210\366\371R\"\210\312\346\372S\"\346\373T\"\346\374UV\\S_VZ\"\346\375U\"\346\376W\"\346\377X\"\346\201\211 Y\"\346\201\212 V\"\346\201\213 Z\"\346\201\214 [\"\346\201\215 \\\"\346\201\216 ]\"\346\201\217 ^\"\346\201\220 _\"\346\201\221 `\"&\210\366\201\222 a\"\210\366\201\223 b\201\224 =\203aL\202cb\"\210\366\201\225 c\"\210\366\201\226 d\"\210\366\201\227 e\"\210\201\230 \201\231 f\"\210\366\201\232 g\"\210\366\201\233 h\"\210\201\230 \201\234 i\"\210\333K\333\201j N)j\312\346\201\235 k\"\346\201\236 l\"\346\201\237 j\"\346\201\240 jk\\m\350Wm\201\241 _\\m\245!)\"$\210)\366\201\242 n\"\210\366\201\243 o\"\210\366\201\244 p\"\210\366\201\245 q\250?\"\210\312\346\201\246 rs\236A\206\306\"\346\201\247 q\250\203!q\202#t\"\346\201\250 u\"\201\251 \201\252 v\201\253 \"\346\201\254 t\"\201\255 \201\252 w\201\256 \"\201\257 \201\252 x\201\260 \"\201\261 y\201\262 =\203h\201\263 \202k\201\264 \201\265 \201\266 \346\201\267 \"&\210\366\201\270 EA@\201\271 =\"\210\366\201\272 z\"\210\312\346\201\273 \345E8\"\346\201\274 \201\275 E8\"\346\201\276 \201\277 E8\"\346\201\300 {\"\201\301 B\203\311\201\302 D8\202\317\201\277 D8\201\303 B\203\340\201\277 D8\202\346\201\302 D8\201\304 D@\201\305 DA@\201\306 \345D8\201\307 \201\275 D8\201\310 \201\311 D8\201\312 \201\313 D8\201\314 &\210\201\315  \210\201\316  \210\237\f\237\312\354|\"\210\312\201\317 !\210\334\312\"\210\312\201\320 !\210\312\346\201\321 }\337\340\342\"#\346\201\322 ~\337\340\341\"#\346\201\323 \201\324 \201\325 !#\346\201\326 \200\337\201\327 \341\"#\201\330 %\210\333K\333\336N)\306\201\202\202\203\252\312\346\201\331 \201\203\337\333\202@@\"$!\210\202A\202\201T\201\202\205*\204\205\236A\206\312\346\201\332 \201\333 \206\236A\201\334 \206\236A\245\"!\210)\312\201\335 !\210y\201\336 =\204\312\201\337 \201\340 L!\201\341 \201\340 F!\201\342 \201\343 L!\201\344 \201\343 F!\201\345 \201\343 L!\201\346 \201\343 F!\201\347 &\210,\312\201\350 \201\340 \207!\201\351 \201\343 \207!\201\352 %\210\210\205:\312\201\353 !\207" [ps-page-order ps-page-printed ps-background-text-count ps-background-image-count ps-background-pages ps-background-all-pages 0 nil ps-n-up-printing ps-n-up-filling ps-output "%%Title: " buffer-name "\n%%Creator: " user-full-name " (using ps-print v" ")\n%%CreationDate: " format-time-string "%T %b %d %Y" "\n%%Orientation: " "Landscape" "Portrait" "\n%%DocumentNeededResources: font Times-Roman Times-Italic\n%%+ font " mapconcat identity ps-remove-duplicates append ps-font-for-text mapcar cdr fonts ps-font ps-font-for-header normal bold "\n%%+ font " "\n%%DocumentMedia: " 2 format " %d" round " 0 () ()\n%%PageOrder: Ascend\n%%Pages: (atend)\n%%Requirements:" " duplex(tumble)\n" " duplex\n" "\n" ps-insert-string "%%EndComments\n%%BeginDefaults\n%%PageMedia: " "\n%%EndDefaults\n\n%%BeginProlog\n\n" "/languagelevel where{pop}{/languagelevel 1 def}ifelse\n" "/ErrorMessage  %s def\n\n" assoc 1 "\n%%BeginProcSet: UserDefinedPrologue\n\n" "\n%%EndProcSet\n\n" ps-output-boolean "LandscapeMode      " pag "UpsideDown         " "/NumberOfColumns     %d def\n" "/LandscapePageHeight %s def\n" "/PrintPageWidth      %s def\n" "/PrintWidth   %s def\n" "/PrintHeight  %s def\n" "/LeftMargin   %s def\n" ps-paper-type ps-page-dimensions-database ps-landscape-mode ps-spool-tumble n-up-filling n-up tumble dimensions ps-n-up-on ps-adobe-tag ps-print-version font-sym ps-spool-duplex ps-print-prologue-header ps-error-handler-message ps-error-handler-alist ps-print-prologue-0 ps-user-defined-prologue ps-print-upside-down ps-number-of-columns ps-landscape-page-height ps-print-width ps-inter-column ps-print-height ps-left-margin ps-right-margin ps-bottom-margin ps-top-margin ps-header-offset ps-header-pad ps-footer-offset ps-footer-pad ps-footer-lines ps-show-n-of-n ps-switch-header ps-print-only-one-header ps-print-header ps-print-header-frame ps-header-frame-alist ps-print-footer ps-print-footer-frame ps-footer-frame-alist line-height ps-line-spacing-internal ps-paragraph-spacing-internal height ps-warn-paper-type ps-zebra-stripes ps-line-number ps-line-number-step ps-zebra-stripe-follow ps-zebra-stripe-alist ps-zebra-stripe-height ps-line-number-start ps-line-number-color ps-zebra-color ps-default-bg ps-spool-config ps-n-up-border-p ps-n-up-margin ps-print-prologue-1 ps-header-title-font-size-internal ps-header-font-size-internal ps-line-number-font ps-footer-font-size-internal i font ps-font-size-internal ps-font-family ps-font-info-database font-entry ps-manual-feed ps-banner-page-when-duplexing "/RightMargin  %s def\n" "/InterColumn  %s def\n" "/BottomMargin %s def\n" "/TopMargin    %s def\n" "/HeaderOffset %s def\n" "/HeaderPad    %s def\n" "/FooterOffset %s def\n" "/FooterPad    %s def\n" "/FooterLines  %s def\n" "ShowNofN          " "SwitchHeader      " duplex "PrintOnlyOneHeader" "PrintHeader       " "PrintHeaderFrame  " ps-output-frame-properties "HeaderFrameProperties" "PrintFooter       " "PrintFooterFrame  " "FooterFrameProperties" "/LineSpacing      %s def\n" "/ParagraphSpacing %s def\n" "/LineHeight       %s def\n" "/LinesPerColumn   %d def\n" 0.45 "WarnPaperSize   " "Zebra           " "PrintLineNumber " "SyncLineZebra   " "/ZebraFollow      %d def\n" "/PrintLineStep    %d def\n" "/PrintLineStart   %d def\n" "/LineNumberColor  " ps-format-color 0.0 "def\n/ZebraHeight      %d def\n" "/ZebraColor       " 0.95 "def\n/BackgroundColor  " 1.0 "def\n/UseSetpagedevice " setpagedevice "/setpagedevice where{pop languagelevel 2 eq}{false}ifelse" "false" " def\n\n/PageWidth " "PrintPageWidth LeftMargin add RightMargin add def\n\n" "/N-Up           %d def\n" "N-Up-Landscape" t "N-Up-Border   " "/N-Up-Lines     %d def\n" "/N-Up-Columns   %d def\n" 3 "/N-Up-Missing   %d def\n" 4 "/N-Up-Margin    %s def\n" "/N-Up-Repeat    " 5 " def\n/N-Up-End       " " def\n/N-Up-XColumn   " " def\n/N-Up-YColumn   " " def\n/N-Up-XLine     " " def\n/N-Up-YLine     " " def\n/N-Up-XStart    " 6 " def\n/N-Up-YStart    " 7 " def\n" ps-background-text ps-background-image "\n/printGlobalBackground{\n" "}def\n/printLocalBackground{\n}def\n" "/h0 %s(%s)cvn DefFont\n" "/h1 %s(%s)cvn DefFont\n" "/L0 %s(%s)cvn DefFont\n" ps-get-font-size ps-line-number-font-size "/H0 %s(%s)cvn DefFont\n" ps-font-for-footer "\n\n% ---- These lines must be kept together because...\n\n/h0 F\n/HeaderTitleLineHeight FontHeight def\n\n/h1 F\n/HeaderLineHeight FontHeight def\n/HeaderDescent    Descent def\n\n/H0 F\n/FooterLineHeight FontHeight def\n/FooterDescent    Descent def\n\n% ---- ...because `F' has a side-effect on `FontHeight' and `Descent'\n\n" "/f%d %s(%s)cvn DefFont\n" "/SpaceWidthRatio %f def\n" space-width size "\n%%EndProlog\n\n%%BeginSetup\n" lpr-switches "\n%%BeginFeature: *Duplex " ps-boolean-capitalized " *Tumble " "\nUseSetpagedevice\n{BMark/Duplex " ps-boolean-constant "/Tumble " " EMark setpagedevice}\n{statusdict begin " " setduplexmode " " settumble end}ifelse\n%%EndFeature\n" "\n%%BeginFeature: *ManualFeed " "\nBMark /ManualFeed " " EMark setpagedevice\n%%EndFeature\n\nBeginDoc\n%%EndSetup\n" "\n%%Page: banner 0\nsave showpage restore\n"] 22])
(defalias 'ps-format-color #[(color &optional default) ";\203 \304!\202\f \211\203- 	<\203- \305\306\n	@\307_	A@\310_\311	8\312_$\313Q\2029 \314	\247\2037 	\2028 !)\207" [color the-color ps-color-format default ps-color-scale "[" format 1.0 1.0 2 1.0 "] " ps-float-format] 8])
(defalias 'ps-insert-string #[(prologue) "\302!\203  \202\f \211;\205 \303	!)\207" [prologue str functionp ps-output] 3])
(defalias 'ps-boolean-capitalized #[(bool) "\203 \301\207\302\207" [bool "True" "False"] 1])
(defalias 'ps-boolean-constant #[(bool) "\203 \301\207\302\207" [bool "true" "false"] 1])
(defalias 'ps-header-dirpart #[nil "\301 \211\203 \302 \303!\230\203 \304\305!!\202 \202 \306)\207" [fname buffer-file-name buffer-name file-name-nondirectory abbreviate-file-name file-name-directory ""] 4])
(defalias 'ps-get-buffer-name #[nil "\301 \302\230\203	 \303\207\301 \304\230\203 \305\207\205 \306\301 \307 \205 \310Q\207" [ps-printing-region-p buffer-name "ps-print.el" "Hey, Cool!  It's ps-print.el!!!" "sokoban.el" "Super! C'est sokoban.el!" "Subset of: " buffer-modified-p " (unsaved)"] 3])
(defalias 'ps-get-size #[(size mess &optional arg) "\247\203	 \202) :\203( @\247\203( A\247\203( 	\203# @\202) A\202) \305\211\306W\203B \307\310\f\203? \311\312\f\"\202@ \313$\210\n)\207" [size ps-landscape-mode siz mess arg -1 0 error "Invalid %s `%S'%s" format " for `%S'" ""] 8])
(defalias 'ps-get-font-size #[(font-sym) "\301J\302#\207" [font-sym ps-get-size "font size"] 4])
(defalias 'ps-rgb-color #[(color default) "\203 <\203 \207;\203 \302!\207\247\203 \211\211E\207	\211\211E\207" [color default ps-color-scale] 3])
(put 'ps-rgb-color 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'ps-begin-job #[nil "	\232\204 \306\307!\306\310!	\311\211(\203] (@(A(\f\250\2036 \f\307V\203 \f\211BB\202 \f:\203 \f@\250\203 \fA\250\203 \f@\307V\203 \f@\fAX\203 \fB\202 \312\313\"\211()\311*\311+*,<\204v \314,-\250\203\206 -\307X\203\206 \310-.\310V/\3100-\250\203\232 -\202\234 1^]0\2122q\210db\210\315\316\311\314#\203\265 \307\224d|\210)3\317>4\3075\3076\3077\3078\3079\314:;@<\320=\321\">\320?\322\"@\323\324!A\323\325!B\323\326!C\323\327!DE\330=\203\331\332!\202E\333=\203\331\334!\202E\335=\203\336\202\337FG\340H\211I\2033I<\2033I\202SI;\203@\341I!\202SI\247\203NI\211\211E\202SH\211\211E*JK\314=\205_J\211LMK\205k\342 \211N\203z\343\344\345!@!\202{\346O\347 \207" [ps-mark-code-directory ps-postscript-code-directory ps-print-prologue-0 ps-print-prologue-1 page new ps-prologue-file 0 1 nil sort #[(one other) "@	@W\207" [one other] 2] t re-search-backward "^%%Trailer$" (full full-follow) ps-get-size "line spacing" "paragraph spacing" ps-get-font-size ps-font-size ps-header-font-size ps-header-title-font-size ps-footer-font-size 8-bit string-as-unibyte "[ --\377]" control-8-bit "[ --\237]" control "[ -]" "[	\n\f]" 0.0 ps-color-scale ps-color-device float ps-color-values "white" 1.0 ps-get-page-dimensions ps-selected-pages ps-last-selected-pages ps-first-page ps-last-page ps-use-face-background ps-line-number-step ps-n-up-printing ps-n-up-on ps-line-number-start ps-zebra-stripe-height ps-spool-buffer ps-zebra-stripe-follow ps-zebra-stripe-full-p ps-page-postscript ps-page-sheet ps-page-n-up ps-page-column ps-lines-printed ps-print-page-p ps-printing-region ps-showline-count ps-line-spacing ps-line-spacing-internal ps-paragraph-spacing ps-paragraph-spacing-internal ps-font-size-internal ps-header-font-size-internal ps-header-title-font-size-internal ps-footer-font-size-internal ps-print-control-characters ps-control-or-escape-regexp ps-default-fg default color ps-default-foreground ps-print-color-p ps-default-color ps-current-color ps-color-p ps-print-color-scale] 5])
(defalias 'ps-page-number #[nil "\203\n 	S\n\245T\207	\207" [ps-print-only-one-header ps-page-column ps-number-of-columns] 2])
(defalias 'ps-end-page #[nil "\300\301!\207" [ps-output "EndPage\nEndDSCPage\n"] 2])
(put 'ps-end-page 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'ps-next-page #[nil "\300\301!\210\302 \210\303 \207" [ps-output "EndPage\nEndDSCPage\n" ps-flush-output ps-begin-page] 2])
(put 'ps-next-page 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'ps-header-sheet #[nil "\203 	\306V\203 \307\310!\210	T\n\311=\203  \312	\313\"\306U\2020 \n\314=\203/ \312	\313\"\313U\2020 \315\211\205R T\307\f\203F \316\317$\202K \316\320#\321\316\322\"#\207" [ps-print-page-p ps-page-sheet ps-even-or-odd-pages ps-page-order ps-n-up-on ps-page-postscript 0 ps-output "EndSheet\n" even-sheet logand 1 odd-sheet t format "\n%%%%Page: (%d \\(%d\\)) %d\n" "\n%%%%Page: %d %d\n" "/Lines 0 def\n/PageCount 0 def\n" "%d BeginSheet\nBeginDSCPage\n" ps-n-up-printing] 6])
(defalias 'ps-header-page #[nil "\306\307	\"!\203\262 \nT\2033 \n\fX\203 \nX\2020 \203/ \305 \210\nX\205T \n\fX\2020 \310\205T \311=\203C \312\n\313\"\314U\202T \315=\203S \312\n\313\"\313U\202T \316\211\203\272 \317=\203k \312\313\"\314U\202} \320=\203| \312\313\"\313U\202} \316\306\307\"!\203\224 \321 \210\322\323!\210\202\234 \324\325!\210\322\326!\210\327\n!\210T\203\272 T\202\272 \324\325!\210\322\330!\210T\211\207" [ps-page-column ps-number-of-columns ps-page-postscript ps-first-page ps-last-page ps-selected-pages zerop mod nil even-page logand 1 0 odd-page t even-sheet odd-sheet ps-header-sheet run-hooks ps-print-begin-sheet-hook ps-output "BeginDSCPage\n" ps-print-begin-page-hook ps-background ps-print-begin-column-hook ps-even-or-odd-pages ps-print-page-p ps-page-sheet ps-page-n-up ps-n-up-printing ps-page-printed] 4])
(defalias 'ps-begin-page #[nil "\n\306 \210\307\310\311\f\"\310\312\313 \"\"\210\203/ \314\315\316\317$\210\314\320\316\317$\210\307\310\321\"!\210\203L \314\322\323\211 $\210\314\324\323\211!$\210\307\310\325\"\"!\210\307\326#!\327\"\210\330$!\210\331%!\210\332&!\210\333 \207" [ps-print-width ps-width-remaining ps-print-height ps-height-remaining ps-showline-count ps-print-header ps-header-page ps-output format "/LineNumber %d def\n" "/PageNumber %d def\n" ps-page-number ps-generate-header "HeaderLinesLeft" "/h0" "/h1" "HeaderLinesRight" "%d SetHeaderLines\n" "FooterLinesLeft" "/H0" "FooterLinesRight" "%d SetFooterLines\n" number-to-string " BeginPage\n" ps-set-font ps-set-bg ps-set-color ps-mule-begin-page ps-left-header ps-right-header ps-header-lines ps-print-footer ps-left-footer ps-right-footer ps-footer-lines ps-lines-printed ps-current-font ps-current-bg ps-current-color] 5])
(defalias 'ps-skip-newline #[(limit) "T	T`\nW\205 \303u\207" [ps-showline-count ps-lines-printed limit 1] 2])
(put 'ps-skip-newline 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'ps-next-line #[nil "T	T\n\205 \306\n!\307\307\310N)\203 \202 \\W\2035 \311\312!\210\313 \210\314 \202K Z\311\203I \315\202J \316!*\207" [ps-showline-count ps-lines-printed ps-paragraph-regexp paragraph-p font-sym ps-paragraph-spacing-internal looking-at ps-font-for-text line-height ps-output "EndPage\nEndDSCPage\n" ps-flush-output ps-begin-page "PHL\n" "LHL\n" ps-line-spacing-internal lh ps-height-remaining ps-print-width ps-width-remaining] 2])
(put 'ps-next-line 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'ps-continue-line #[nil "T\306\306\307N)\n\\\fW\203 \310\311!\210\312 \210\313 \202( \fZ\310\314!)\207" [ps-lines-printed font-sym ps-line-spacing-internal lh ps-height-remaining ps-print-width ps-font-for-text line-height ps-output "EndPage\nEndDSCPage\n" ps-flush-output ps-begin-page "SL\n" ps-width-remaining] 2])
(defalias 'ps-find-wrappoint #[(from to char-width) "\306	\245!\nZ\fW\203 \n\f	_B\202 \\B*\207" [ps-width-remaining char-width to from todo avail truncate] 3])
(defalias 'ps-basic-plot-str #[(from to string) "\306	\307\307\310N)#\211@\f	O\311!\210\312!\210\313\314!\210+\207" [from to font-sym wrappoint string str ps-find-wrappoint ps-font-for-text avg-char-width ps-mule-prepare-ascii-font ps-output-string ps-output " S\n"] 6])
(defalias 'ps-basic-plot-string #[(from to &optional bg-color) "\305	\306\306\307N)#\211@\310	\"\311\f!\210\312\f!\210\313\314!\210+\207" [from to font-sym wrappoint string ps-find-wrappoint ps-font-for-text avg-char-width buffer-substring-no-properties ps-mule-prepare-ascii-font ps-output-string ps-output " S\n"] 6])
(defalias 'ps-basic-plot-whitespace #[(from to &optional bg-color) "\304	\305\305\306N)#\211@\307\310\311	Z\"!\210*\207" [from to font-sym wrappoint ps-find-wrappoint ps-font-for-text space-width ps-output format "%d W\n"] 6])
(defalias 'ps-plot #[(plotfunc from to &optional bg-color) "	W\203) \n	#\211@\fA\f\fZ	W\203% \306 \210+\202  \205n deZ`eZ\307\245\211\310^ZV\205m \311\312\313W\203e \313_\245\202l \313\245\245\",\207" [from to plotfunc bg-color wrappoint plotted-to ps-continue-line 8 1000 message "Formatting...%3d%%" 100 plotted-width ps-width-remaining ps-razzle-dazzle q-todo q-done chunkfrac chunksize ps-razchunk] 6])
(byte-code "\301B\302\301!\204\f \303\303\207" [current-load-list ps-last-font boundp nil] 2)
(defalias 'ps-set-font #[(font) "\303\304\211\"\305\303\306\n\"!\207" [font ps-current-font ps-last-font format "f%d" ps-output "/%s F\n"] 4])
(defalias 'ps-set-bg #[(color) "\211\203 \303\304\n@A@\3058$\306\"\207\303\307!\207" [color ps-current-bg ps-color-format ps-output format 2 " true BG\n" "false BG\n"] 7])
(defalias 'ps-set-color #[(color) "\206 	\304\305\n@\nA@\306\n8$\307\"\207" [color ps-default-foreground ps-current-color ps-color-format ps-output format 2 " FG\n"] 7])
(defalias 'ps-plot-string #[(string) "\301\302\303G$\207" [string ps-plot ps-basic-plot-str 0] 5])
(byte-code "\302\303\304\305#\210\301B\306\301!\204 \307\302\207" [current-load-list ps-current-effect put ps-plot-string byte-optimizer byte-compile-inline-expand boundp 0] 4)
(defalias 'ps-plot-region #[(from to font &optional fg-color bg-color effects) "	\232\204\n \306!\210\n\206 \211\232\204 \307\f!\210)/0\232\204( \310/!\2101\250\2048 \311\312!\210\3132\202L 12U\204L \311\3141!\315\"\21012\2123b\21034W\205_5\203\204 6\203\204 \3165!\203\204 \313\225b\210\31764\320#\203\201 g\321U\203\201 \322u\210`3\31774\323#\203J\313\224\2118f9\32438T\"\211+\203\307 \325+8\203\304 +@8X\203\304 +@8\3139+A@b\210\202\307 \326+38W\203\334 \327 \210\330\33138/$\2109\332U\203\f\333 :\334u\210:i\\3\317\3354\323#\203\327 \210\330\3363:i\\/$\210)\202C9\321U\203\232\316\337!\203?4;<T<=T=`;W\2031\322u\210)\311\340!\210\341 \210\342 \210\202C<T<=T=>\205R\316>!?\343@\343\344N)?\203eA\202gB\\CDCW\203~\311\340!\210\341 \210\342 \202\225EFDCZD\311?\203\223\345\202\224\346!*\210\202C9\347U\203\3368Sf\321\232\203\262DGU\204Cg\321\232\203\3214;<T<=T=`;W\203\320\322u\210)\311\340!\210\341 \210\342 \210\202C+\203\357\330\3508`/$\210\202C9\351V\203>\3529!H\32484\"+\325+8\203+@\2024IH\353=\2041`IW\2031\354 H=\2031\322u\210\202\330\3558`/$\210+\202C\3569!\210`3+\202Q \327 \210\330\33134/$\2104\2113\202S )\207" [font ps-current-font fg-color ps-default-foreground fg ps-current-color ps-set-font ps-set-color ps-set-bg ps-output "0 EF\n" 0 number-to-string " EF\n" looking-at re-search-forward noerror 10 1 t ps-e-find-composition 2 nil ps-mule-set-ascii-font ps-plot ps-basic-plot-string 9 line-beginning-position -1 "[ 	]+" ps-basic-plot-whitespace "\f[^\n]" "EndPage\nEndDSCPage\n" ps-flush-output ps-begin-page ps-font-for-text line-height "PHL\n" "LHL\n" 12 ps-mule-plot-composition 255 char-charset composition charset-after ps-mule-plot-string ps-control-character bg-color ps-current-bg effects ps-current-effect from to ps-begin-cut-regexp ps-end-cut-regexp ps-control-or-escape-regexp match-point match linestart limit ps-showline-count ps-lines-printed ps-paragraph-regexp paragraph-p font-sym ps-paragraph-spacing-internal ps-line-spacing-internal lh ps-height-remaining ps-print-width ps-width-remaining ps-print-height charset stop] 6])
#@54 Vector used to map characters to a printable string.
(defvar ps-string-control-codes (byte-code "\302\303\304\"\305\306X\203 	\307\310\311\\\"I\210T\211\202 \312W\2033 	\307\313\"I\210T\211\202 	\314I\210T\211\315X\203L 	\307\316\"I\210\2028 	*\207" [char table make-vector 256 nil 0 31 format "^%c" 64 127 "%c" "^?" 255 "\\%o"] 7) (#$ . 129492))
(defalias 'ps-control-character #[(char) "	H`S\nG\f\\\306\306\307N)\310#\211@W\203) \311 \210\f_Z\312\n!\210\313\n!\210\314\315!.\207" [ps-string-control-codes char str from len to ps-font-for-text avg-char-width ps-find-wrappoint ps-continue-line ps-mule-prepare-ascii-font ps-output-string ps-output " S\n" font-sym char-width wrappoint ps-width-remaining] 5])
#@239 Return face attribute vector.

If FACE is not in `ps-print-face-extension-alist' or in
`ps-print-face-alist', insert it on `ps-print-face-alist' and
return the attribute vector.

If FACE is not a valid face name, it is used default face.
(defalias 'ps-face-attributes #[(face) "\203 	9\203 	\236A\206l \306\307\310\211#\207	9\203K 	\n\236\206I 	\236\206I \311	!\2031 	\2022 \312\313\f!\f\312=\203C \f\236\204G B*A\207	@\314=\203Y \306\307	A\310#\207	@\315=\203g \306\307\310	A#\207\306\307\310\211#\207" [ps-black-white-faces-alist face ps-print-face-extension-alist ps-print-face-alist the-face new-face vector 0 nil facep default ps-screen-to-bit-face foreground-color background-color] 4 (#$ . 130253)])
(defalias 'ps-face-background #[(face background) "\304=\204H 	9\203 	>\202E 	<\203D 	@\305>\204H \306	\203? 	@>\2041 	@\307>\2038 \306\304\202 	A\211\204# \n)\202E \306\205I \207" [ps-use-face-background face ok background t (foreground-color background-color) nil (foreground-color background-color)] 3])
(defalias 'ps-face-attribute-list #[(face-or-list) "<\204	 \306!\207@\307=\203 \310\311A\312#\207@\313=\203% \310\311\312A#\207\311\312\211\211\211\203Z @A\306	!\314\n\311H\"\f\204L \n\315H\204/ \316	\n\317H\"\202/ \310\f#-\207" [face-or-list face face-attr background foreground effects ps-face-attributes foreground-color vector 0 nil background-color logior 1 ps-face-background 2] 5])
(byte-code "\301B\302\303\304\305\306$\303\207" [current-load-list ps-font-type vector nil bold italic bold-italic] 5)
(defalias 'ps-plot-with-face #[(from to face) "\204 \306	\n\307#\210\202{ \310=\204{ \311!\211\307H\312H\313\314H\"\2036 \2036 \315!\2028 \205H \205H \315!\306	\n\316\317\f\320\"H\206Y \321\211\322N)\"\206m \307*\323\f\324\"&\210.\nb\207" [face from to face-bit effect foreground ps-plot-region 0 emacs--invisible--face ps-face-attribute-list 1 ps-face-background 2 ps-color-scale ps-font-for-text logand 3 ps-alist-position fonts lsh -2 background ps-color-p ps-default-color fg-color bg-color ps-font-type font-type font-sym] 10])
(byte-code "\300\301!\204 \302\301\303\"\210\300\207" [fboundp face-list defalias list-faces] 3)
(defalias 'ps-build-reference-face-lists #[nil "\306 \210\307	\203 \310\311\312 \"\210\202! \310\313\n\"\210\310\314\"\210\310\315\f\"\210\307\211\207" [ps-print-face-alist ps-auto-font-detect ps-bold-faces ps-italic-faces ps-underlined-faces ps-build-face-reference ps-font-lock-face-attributes nil mapcar ps-map-face face-list ps-set-face-bold ps-set-face-italic ps-set-face-underline] 3])
(defalias 'ps-set-face-bold #[(face) "\301\302\"\207" [face ps-set-face-attribute 1] 3])
(defalias 'ps-set-face-italic #[(face) "\301\302\"\207" [face ps-set-face-attribute 2] 3])
(defalias 'ps-set-face-underline #[(face) "\301\302\"\207" [face ps-set-face-attribute 4] 3])
(defalias 'ps-set-face-attribute #[(face effect) "\303!A\211\304\305	\304H\n\"I)\207" [face face-bit effect ps-map-face 0 logior] 6])
(defalias 'ps-map-face #[(face) "\305!\211@\n\236A\211\203; 	A\306\307\306H\f\306H\"I\210\310H\204* \310\f\310HI\210\311H\2047 \311\f\311HI\210)\202? 	\nB	*\207" [face face-map ps-print-face-alist ps-face-bit face-bit ps-screen-to-bit-face 0 logior 1 2] 7])
(defalias 'ps-screen-to-bit-face #[(face) "\301\302\303!\203 \304\202 \305\306!\203 \307\202 \305\310!\203# \311\202$ \305#\312!\313!#B\207" [face vector logior ps-face-bold-p 1 0 ps-face-italic-p 2 ps-face-underlined-p 4 ps-face-foreground-name ps-face-background-name] 7])
(defalias 'ps-print-ensure-fontified #[(start end) "\302\303!\203 \303J\203 \304\305\306\"\210\305	\"\207\302\307!\205) \307J\205) \304\310\311\"\210\310	\"\207" [start end boundp jit-lock-mode defalias ps-jitify jit-lock-fontify-now lazy-lock-mode ps-lazify lazy-lock-fontify-region] 3])
(defalias 'ps-generate-postscript-with-faces #[(from to) "\306	\204\n \n\203 \307\310!\210\311 \210\312\f\313=\203 \314\312\303#\210\214,-}\210\315,-\"\210\316-.\"/\317>\203\342 \320\312B\312\211\211\21101234\321\322\312,-4%\210\3234A\324\"4\31204\203\336 4@\2113@.3A\2113@23A\2113@1,eY\203\224 \325,.d^\"#\2102\326=\203\257 \3271!\203\301 \32310B\330\"0\202\301 2\331=\203\301 \323\33210\"\330\"00\203\316 \3270@!\202\317 \316\".,4A\2114\204g -\2025/\333=\2035,\2115\312\211\211)'5678,-W\20338-W\203\334,\312-#87-W\203'\335,!-^787^.\312'\312)\336,\337\"96\340=\203I9??\202V96>\206V96\236)\203^\341\202g\336,\342\"\206g\316\"\343,!\344:\211;\203\371\"\341=\204\371;@<\345<\337\"=\345<\346\"\206\222\306\211>:V\203\357\345<\347\"\206\245''\350<!.X\203\271\345<\351\"\206\273))>:6\340=\203\317=??\202\334=6>\204\337=6\236\203\343\341\202\355\345<\342\"\206\355\"\"+;A\211;\204v*'\203'?\352\353\306?G?$\210)\325,.\"#\210)\203+)?\352\353\306?G?$\210).\211,\202\377 .\325,-\"#+\207" [ps-current-effect ps-always-build-face-reference ps-build-face-reference ps-black-white-faces-alist ps-print-color-p ps-black-white-faces 0 message "Collecting face information..." ps-build-reference-face-lists nil black-white ps-extend-face-list ps-print-ensure-fontified default (xemacs lucid) dummy ps-x-map-extents ps-mapper sort car-less-than-car ps-plot-with-face push ps-x-extent-face ps-extent-sorter pull delq emacs next-property-change ps-e-next-overlay-change get-text-property invisible t emacs--invisible--face face ps-e-overlays-at -1 ps-e-overlay-get priority before-string ps-e-overlay-end after-string ps-plot ps-basic-plot-str from to position ps-print-emacs-type extent-list extent type record a buffer-invisibility-spec save-buffer-invisibility-spec overlay-change property-change prop face-priority overlays overlay overlay-invisible overlay-priority string] 7])
(defalias 'ps-generate-postscript #[(from to) "\302	\303\304$\207" [from to ps-plot-region 0 nil] 5])
(defalias 'ps-generate #[(buffer from to genfunc) "\212	^	]\306\214	}\210\203 \307\310\311\211\"\210\312!\313C\211 \314\211\211!\"#\315\216q\210\316\314!\210\317 \211#d\314\223\210eb\210\320\321$!!\204V \306!q\210\212\306\314%&\322 \210!\203o \323 \210\324 \210\325	\"\210\326 \210+\327 \210'	\"\210\330\331!\210\332!!\210\306\",\205\225 \307\333!-\207" [to from inhibit-read-only ps-razzle-dazzle ps-razchunk buffer t message "Formatting...%3d%%" 0 get-buffer-create "" nil ((byte-code "\303!\203 	\204 \nq\210\304!d|\210\303\207" [safe-marker completed-safely ps-spool-buffer markerp marker-position] 2)) set-buffer-multibyte make-marker looking-at regexp-quote ps-begin-job ps-begin-file ps-mule-initialize ps-mule-begin-job ps-selected-pages ps-begin-page ps-output "EndPage\nEndDSCPage\n" ps-end-job "Formatting...done" ps-source-buffer ps-spool-buffer-name ps-spool-buffer ps-output-head ps-output-tail needs-begin-file completed-safely safe-marker ps-adobe-tag ps-even-or-odd-pages ps-print-page-p genfunc] 5])
(defalias 'ps-end-job #[(needs-begin-file) "\306\307 \210\212\310\n\"\fA\311 !\"#q\210\312$db\210\"\313V\2037 \314\315\312\306#\2037 \316\317\320\"\"\306\"\210eb\210\321\322\312\306#\203O \316\317\323!#\306\"\210\202: -%\203s \310&\324\"\325U\203s \313\326 \210\327\330\331\332'!\333$\210\327\334!\210)	\203{ \327\335!\210\327\336\332(\203\216 )\203\216 &T\202\220 &!\337#\210*\203\235 \327\340!\210\307 \210*\312\211+\207" [ps-print-page-p previous-print ps-page-printed ps-n-up-printing ps-printing-region total-pages t ps-flush-output mod ps-page-number nil 0 re-search-backward "^[0-9]+ BeginSheet$" replace-match format "%d BeginSheet" re-search-forward "^/Lines 0 def\n/PageCount 0 def$" "/Lines %d def\n/PageCount %d def" 2 1 ps-header-sheet ps-output "/PrintHeader false def\n/ColumnIndex 0 def\n" "/PrintLineNumber false def\n" number-to-string " BeginPage\n" "EndPage\nEndDSCPage\n" "EndSheet\n" "\n%%Trailer\n%%Pages: " "\n\nEndDoc\n\n%%EOF\n" "" total-lines pages-per-sheet ps-spool-buffer case-fold-search ps-spool-duplex ps-page-order ps-lines-printed needs-begin-file ps-banner-page-when-duplexing ps-end-with-control-d ps-selected-pages] 5])
(defalias 'ps-do-despool #[(filename) "\306\302!\203 \302J\204 \307\310!\207\2039 \212	\203 \307\311!\210\nq\210\312!\313\314ed#\210)	\2035 \307\315\"\210)\202\224 	\203A \307\316!\210\212\nq\210\313\f\206S \306\317!\205S \317J\320\f;\205l \321\f\231\205l ;\205i \fPC\"\322\206u \323ed\324\325\326!\205\201 \327\324\330\331\332\"!&\210,	\203\224 \307\333!\210\334\n!\207" [filename ps-razzle-dazzle ps-spool-buffer coding-system-for-write ps-printer-name ps-lpr-switches boundp message "No spooled PostScript to print" "Saving..." expand-file-name raw-text-unix write-region "Wrote %s" "Printing..." printer-name append "" apply call-process-region nil fboundp start-process 0 ps-flatten-list mapcar ps-eval-switch "Printing...done" kill-buffer ps-printer-name-option ps-print-region-function ps-lpr-command] 12])
(defalias 'ps-eval-switch #[(arg) ";\203 \207\301!\203  \2079\203 J\207:\203$ \302@A\"\207\303\207" [arg functionp apply nil] 3])
(defalias 'ps-flatten-list #[(&rest list) "\301!\207" [list ps-flatten-list-1] 2])
(defalias 'ps-flatten-list-1 #[(list) "\204 \301\207:\203 \302\303@!\303A!\"\207C\207" [list nil append ps-flatten-list-1] 4])
(defalias 'ps-kill-emacs-check #[nil "\302\303	!\211\203 \304!\203 \305\306!\203 \307 \210\303	!\211\2051 \304!\2051 \310\311!?\2051 \312\313!)\207" [ps-buffer ps-spool-buffer-name nil get-buffer buffer-modified-p y-or-n-p "Unprinted PostScript waiting; print now? " ps-despool yes-or-no-p "Unprinted PostScript waiting; exit anyway? " error "Unprinted PostScript"] 2])
(byte-code "\301\302!\203 \302\300\303\"\210\202 \203 \304\305!\210\202 \303\301\207" [kill-emacs-hook fboundp add-hook ps-kill-emacs-check message "Won't override existing `kill-emacs-hook'"] 3)
(defalias 'ps-prsc '(macro . #[nil "\300\207" [(if (eq ps-print-emacs-type 'emacs) [f22] 'f22)] 1]))
(defalias 'ps-c-prsc '(macro . #[nil "\300\207" [(if (eq ps-print-emacs-type 'emacs) [C-f22] '(control f22))] 1]))
(defalias 'ps-s-prsc '(macro . #[nil "\300\207" [(if (eq ps-print-emacs-type 'emacs) [S-f22] '(shift f22))] 1]))
(defalias 'ps-rmail-mode-hook #[nil "\303\304=\203 \305\202\f \306\307\"\210\310\311\211\207" [ps-print-emacs-type ps-header-lines ps-left-header local-set-key emacs [f22] f22 ps-rmail-print-message-from-summary 3 (ps-article-subject ps-article-author buffer-name)] 3])
(defalias 'ps-rmail-print-message-from-summary #[nil "\300\301\302\"\207" [ps-print-message-from-summary rmail-summary-buffer "RMAIL"] 3 nil nil])
(defalias 'ps-print-message-from-summary #[(summary-buffer summary-default) "\303!\203 J\206\f 	\304\n!\205 \212\nq\210\305 ))\207" [summary-buffer summary-default ps-buf boundp get-buffer ps-spool-buffer-with-faces] 2])
(defalias 'ps-article-subject #[nil "\212eb\210\300\301\302\303#\203 \304\224\304\225{\202 \305)\207" [re-search-forward "^Subject:[ 	]+\\(.*\\)$" nil t 1 "Subject ???"] 4])
(defalias 'ps-article-author #[nil "\212eb\210\301\302\303\304#\2037 \305\224\305\225{\306\307\"\203\" \305\224\305\225O\2023 \306\310\"\2032 \311\224\311\225O\2023 )\2028 \312)\207" [fromstring re-search-forward "^From:[ 	]+\\(.*\\)$" nil t 1 string-match ".*[ 	]+(\\(.*\\))" "\\(\"?\\)\\(.*\\)\\1[ 	]+<.*>" 2 "From ???"] 4])
(defalias 'ps-gnus-article-prepare-hook #[nil "\302\303\211\207" [ps-header-lines ps-left-header 3 (ps-article-subject ps-article-author gnus-newsgroup-name)] 2])
(defalias 'ps-vm-mode-hook #[nil "\303\304=\203 \305\202\f \306\307\"\210\310\311\211\207" [ps-print-emacs-type ps-header-lines ps-left-header local-set-key emacs [f22] f22 ps-vm-print-message-from-summary 3 (ps-article-subject ps-article-author buffer-name)] 3])
(defalias 'ps-gnus-print-article-from-summary #[nil "\300\301\302\"\207" [ps-print-message-from-summary gnus-article-buffer "*Article*"] 3 nil nil])
(defalias 'ps-vm-print-message-from-summary #[nil "\300\301\302\"\207" [ps-print-message-from-summary vm-mail-buffer ""] 3 nil nil])
(defalias 'ps-gnus-summary-setup #[nil "\301\302=\203 \303\202\f \304\305\"\207" [ps-print-emacs-type local-set-key emacs [f22] f22 ps-gnus-print-article-from-summary] 3])
(defalias 'ps-info-file #[nil "\212eb\210\300\301\302\303#\203 \304\224\304\225{\202 \305)\207" [re-search-forward "File:[ 	]+\\([^, 	\n]*\\)" nil t 1 "File ???"] 4])
(defalias 'ps-info-node #[nil "\212eb\210\300\301\302\303#\203 \304\224\304\225{\202 \305)\207" [re-search-forward "Node:[ 	]+\\([^,	\n]*\\)" nil t 1 "Node ???"] 4])
(defalias 'ps-info-mode-hook #[nil "\301\211\207" [ps-left-header (ps-info-node ps-info-file)] 2])
(defalias 'ps-jts-ps-setup #[nil "\305\306=\203 \307\202\f \310\311\"\210\305\306=\203 \312\202 \313\314\"\210\305\306=\203) \315\202* \316\317\"\210\320\321\322\"\210\320\323\324\"\210\320\325\326\"\210\320\327\326\"\210\320\330\331\"\210\332\333\334\335\336\207" [ps-print-emacs-type ps-spool-duplex ps-print-color-p ps-lpr-command ps-lpr-switches global-set-key emacs [f22] f22 ps-spool-buffer-with-faces [S-f22] (shift f22) ps-spool-region-with-faces [C-f22] (control f22) ps-despool add-hook gnus-article-prepare-hook ps-gnus-article-prepare-hook gnus-summary-mode-hook ps-gnus-summary-setup vm-mode-hook ps-vm-mode-hook vm-mode-hooks Info-mode-hook ps-info-mode-hook t nil "lpr" ("-Jjct,duplex_long") ps-jts-ps-setup] 3])
(defalias 'ps-jack-setup #[nil "\306\307\306\310\311\312\313\314_\315\245\316\314_\317\245 \320\314_\321\245!\322\314_\323\245\"\324\314_\325\245#\326\314_\327\245$\330%\311&\311'\312(\311)\306*\331+\332,\333-\334.\335/\336\207" [ps-print-color-p ps-lpr-command ps-lpr-switches ps-paper-type ps-landscape-mode ps-number-of-columns nil "lpr" a4 t 2 1.0 72 2.54 1.0 2.54 1.0 2.54 1.5 2.54 1.5 2.54 1.0 2.54 0.15 Courier 5.5 Helvetica 6 8 ps-jack-setup ps-left-margin ps-right-margin ps-inter-column ps-bottom-margin ps-top-margin ps-header-offset ps-header-line-pad ps-print-header ps-print-header-frame ps-header-lines ps-show-n-of-n ps-spool-duplex ps-font-family ps-font-size ps-header-font-family ps-header-font-size ps-header-title-font-size] 2])
#@83 Setup special ASCII font for STRING.
STRING should contain only ASCII characters.
(autoload 'ps-mule-prepare-ascii-font "ps-mule" '(#$ . 144643))
#@54 Adjust current font if current charset is not ASCII.
(autoload 'ps-mule-set-ascii-font "ps-mule" '(#$ . 144795))
#@348 Generate PostScript code for plotting characters in the region FROM and TO.

It is assumed that all characters in this region belong to the same charset.

Optional argument BG-COLOR specifies background color.

Returns the value:

	(ENDPOS . RUN-WIDTH)

Where ENDPOS is the end position of the sequence and RUN-WIDTH is the width of
the sequence.
(autoload 'ps-mule-plot-string "ps-mule" '(#$ . 144915))
#@60 Initialize global data for printing multi-byte characters.
(autoload 'ps-mule-initialize "ps-mule" '(#$ . 145325))
#@139 Start printing job for multi-byte chars between FROM and TO.
This checks if all multi-byte characters in the region are printable or not.
(autoload 'ps-mule-begin-job "ps-mule" '(#$ . 145447))
#@58 Initialize multi-byte charset for printing current page.
(autoload 'ps-mule-begin-page "ps-mule" '(#$ . 145646))
#@122 Generate PostScript code for plotting characters in header STRING.

It is assumed that the length of STRING is not zero.
(autoload 'ps-mule-encode-header-string "ps-mule" '(#$ . 145766))
(provide 'ps-print)
