;ELC ;;; compiled by roland@churchy.gnu.ai.mit.edu on Fri May 12 12:25:16 1995 ;;; from file /gd/gnu/emacs/19.0/lisp/ps-print.el ;;; emacs version 19.28.91.1. ;;; bytecomp version FSF 2.10 ;;; optimization is on. ;;; this file uses opcodes which do not exist in Emacs 18. (if (and (boundp 'emacs-version) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "19"))) (error "`/gd/gnu/emacs/19.0/lisp/ps-print.el' was compiled for Emacs 19")) #@357 ps-print.el,v 2.8 1995/05/04 12:06:10 jct Exp Jim'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 Jim Thompson . (defconst ps-print-version "2.8" (#$ . 491)) #@52 *The shell command for printing a PostScript file. (defvar ps-lpr-command lpr-command (#$ . -898)) #@56 *A list of extra switches to pass to `ps-lpr-command'. (defvar ps-lpr-switches lpr-switches (#$ . -1003)) #@367 *Non-nil indicates spooling is for a two-sided printer. For a duplex printer, the `ps-spool-*' 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. (defvar ps-spool-duplex nil (#$ . -1116)) #@100 *Specifies the size of paper to format for. Should be one of `ps-letter', `ps-legal', or `ps-a4'. (defvar ps-paper-type (quote ps-letter) (#$ . -1531)) #@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-header-left' and `ps-header-right'. (defvar ps-print-header t (#$ . -1691)) #@54 *Non-nil means draw a gaudy frame around the header. (defvar ps-print-header-frame t (#$ . -2003)) #@149 *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-headers'. (defvar ps-show-n-of-n t (#$ . -2109)) #@48 *If non-nil, print the buffer's text in color. (defvar ps-print-color-p (byte-code "!\f!!" [fboundp x-color-values pixel-components float] 2) (#$ . -2302)) #@66 *RGB values of the default foreground color. Defaults to black. (defvar ps-default-fg (quote (0.0 0.0 0.0)) (#$ . -2476)) #@66 *RGB values of the default background color. Defaults to white. (defvar ps-default-bg (quote (1.0 1.0 1.0)) (#$ . -2605)) #@51 *Font size, in points, for generating Postscript. (defvar ps-font-size 10 (#$ . -2734)) #@66 *Font family name for ordinary text, when generating Postscript. (defvar ps-font "Courier" (#$ . -2828)) #@62 *Font family name for bold text, when generating Postscript. (defvar ps-font-bold "Courier-Bold" (#$ . -2939)) #@64 *Font family name for italic text, when generating Postscript. (defvar ps-font-italic "Courier-Oblique" (#$ . -3056)) #@69 *Font family name for bold italic text, when generating Postscript. (defvar ps-font-bold-italic "Courier-BoldOblique" (#$ . -3180)) #@330 *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. If you change the font or font size, you will probably have to adjust this value to match. (defvar ps-avg-char-width (byte-code "!‡Ç" [fboundp float 5.5999999999999996 6] 2) (#$ . -3319)) #@109 *The width of a space character, for generating Postscript. This value is used in expanding tab characters. (defvar ps-space-width (byte-code "!‡Ç" [fboundp float 5.5999999999999996 6] 2) (#$ . -3759)) #@381 *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. If you change the font or font size, you will probably have to adjust this value to match. The line-height is *not* the same as the point size of the font. (defvar ps-line-height (byte-code "!‡Ç" [fboundp float 11.289999999999999 11] 2) (#$ . -3975)) #@164 *Non-nil means automatically detect bold/italic face attributes. nil means rely solely on the lists `ps-bold-faces', `ps-italic-faces', and `ps-underlined-faces'. (defvar ps-auto-font-detect t (#$ . -4464)) #@109 *A list of the (non-bold) faces that should be printed in bold font. This applies to generating Postscript. (defvar ps-bold-faces nil (#$ . -4678)) #@113 *A list of the (non-italic) faces that should be printed in italic font. This applies to generating Postscript. (defvar ps-italic-faces nil (#$ . -4833)) #@113 *A list of the (non-underlined) faces that should be printed underlined. This applies to generating Postscript. (defvar ps-underlined-faces nil (#$ . -4994)) #@73 *Number of lines to display in page header, when generating Postscript. (defvar ps-header-lines 2 (#$ . -5158)) (make-variable-buffer-local (quote ps-header-lines)) #@690 *The items to display on the right 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. (defvar ps-left-header (list (quote ps-get-buffer-name) (quote ps-header-dirpart)) (#$ . -5330)) (make-variable-buffer-local (quote ps-left-header)) #@184 *The items to display on the left 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. (defvar ps-right-header (list "/pagenumberstring load" (quote time-stamp-yy/mm/dd) (quote time-stamp-hh:mm:ss)) (#$ . -6175)) (make-variable-buffer-local (quote ps-right-header)) #@57 *Non-nil means report progress while formatting buffer. (defvar ps-razzle-dazzle t (#$ . -6543)) #@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. (defvar ps-adobe-tag "%!PS-Adobe-1.0\n" (#$ . -6647)) #@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. (defvar ps-build-face-reference t (#$ . -6898)) #@268 *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. (defvar ps-always-build-face-reference nil (#$ . -7409)) #@483 Generate and print a PostScript image of the buffer. When called with a numeric prefix argument (C-u), prompts the user for the name of a file to save the PostScript image in, instead of sending it to the printer. More specifically, the FILENAME argument 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. If FILENAME is a number, prompt the user for the name of the file to save in. (defalias 'ps-print-buffer #[(&optional filename) "ped$ !" [ps-generate ps-generate-postscript ps-do-despool filename] 5 (#$ . 7740) (list (ps-print-preprint current-prefix-arg))]) #@155 Generate and print a PostScript image of the buffer. Like `ps-print-buffer', but includes font, color, and underline information in the generated image. (defalias 'ps-print-buffer-with-faces #[(&optional filename) "ped$ !" [ps-generate ps-generate-postscript-with-faces ps-do-despool filename] 5 (#$ . 8415) (list (ps-print-preprint current-prefix-arg))]) #@115 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) "p \n$ !" [ps-generate from to ps-generate-postscript ps-do-despool filename] 5 (#$ . 8784) (list (point) (mark) (ps-print-preprint current-prefix-arg))]) #@155 Generate and print a PostScript image of the region. Like `ps-print-region', but includes font, color, and underline information in the generated image. (defalias 'ps-print-region-with-faces #[(from to &optional filename) "p \n$ !" [ps-generate from to ps-generate-postscript-with-faces ps-do-despool filename] 5 (#$ . 9123) (list (point) (mark) (ps-print-preprint current-prefix-arg))]) #@244 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 "ped$" [ps-generate ps-generate-postscript] 5 (#$ . 9524) nil]) #@228 Generate and spool a PostScript image of the buffer. Like `ps-spool-buffer', but includes font, color, and underline information in the generated image. Use the command `ps-despool' to send the spooled images to the printer. (defalias 'ps-spool-buffer-with-faces #[nil "ped$" [ps-generate ps-generate-postscript-with-faces] 5 (#$ . 9874) nil]) #@196 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) "p \n$" [ps-generate from to ps-generate-postscript] 5 (#$ . 10230) "r"]) #@236 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. Use the command `ps-despool' to send the spooled images to the printer. (defalias 'ps-spool-region-with-faces #[(from to) "p \n$" [ps-generate from to ps-generate-postscript-with-faces] 5 (#$ . 10548) "r"]) #@475 Send the spooled PostScript to the printer. When called with a numeric prefix argument (C-u), prompt the user for the name of a file to save the spooled PostScript in, instead of sending it to the printer. More specifically, the FILENAME argument 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. If FILENAME is a number, prompt the user for the name of the file to save in. (defalias 'ps-despool #[(&optional filename) " !" [ps-do-despool filename] 2 (#$ . 10928) (list (ps-print-preprint current-prefix-arg))]) (byte-code "!8!2\"ǂ1\"$ɂ1\"0˂1 B =D =QWUU!!!b B !q B ! B ! B ! B ! B ! B ! B !  B !! B !#\" B !\"$ B !% B !,& B !E =BC' B !^![\\* B !w!tu/ B !2 B !4 B !6 B !7 B !9 B !: B !< B !> B @!@@ B A!BAA B C!*DCC B E!UF<:EG@>EHCAEEEE B I!jJII B K!}KK B L!LL B M!MM B N!NN B O B P B Q!QQ B R!RR B S!SS B Ї" [featurep emacs-vers boundp emacs-type string-match "XEmacs" emacs-version xemacs "Lucid" lucid "Epoch" epoch fsf current-load-list emacs-minor-version 12 nil ps-print-color-p require faces time-stamp ps-print-prologue "% ISOLatin1Encoding stolen from ps_init.ps in GhostScript 2.6.1.4:\n% If the ISOLatin1Encoding vector isn't known, define it.\n/ISOLatin1Encoding where { pop } {\n% Define the ISO Latin-1 encoding vector.\n% The first half is the same as the standard encoding,\n% except for minus instead of hyphen at code 055.\n/ISOLatin1Encoding\nStandardEncoding 0 45 getinterval aload pop\n /minus\nStandardEncoding 46 82 getinterval aload pop\n%*** NOTE: the following are missing in the Adobe documentation,\n%*** but appear in the displayed table:\n%*** macron at 0225, dieresis at 0230, cedilla at 0233, space at 0240.\n% x\n /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef\n /dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent\n /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron\n% x\n /space /exclamdown /cent /sterling\n /currency /yen /brokenbar /section\n /dieresis /copyright /ordfeminine /guillemotleft\n /logicalnot /hyphen /registered /macron\n /degree /plusminus /twosuperior /threesuperior\n /acute /mu /paragraph /periodcentered\n /cedilla /onesuperior /ordmasculine /guillemotright\n /onequarter /onehalf /threequarters /questiondown\n% x\n /Agrave /Aacute /Acircumflex /Atilde\n /Adieresis /Aring /AE /Ccedilla\n /Egrave /Eacute /Ecircumflex /Edieresis\n /Igrave /Iacute /Icircumflex /Idieresis\n /Eth /Ntilde /Ograve /Oacute\n /Ocircumflex /Otilde /Odieresis /multiply\n /Oslash /Ugrave /Uacute /Ucircumflex\n /Udieresis /Yacute /Thorn /germandbls\n% x\n /agrave /aacute /acircumflex /atilde\n /adieresis /aring /ae /ccedilla\n /egrave /eacute /ecircumflex /edieresis\n /igrave /iacute /icircumflex /idieresis\n /eth /ntilde /ograve /oacute\n /ocircumflex /otilde /odieresis /divide\n /oslash /ugrave /uacute /ucircumflex\n /udieresis /yacute /thorn /ydieresis\n256 packedarray def\n} ifelse\n\n/reencodeFontISO { %def\n dup\n length 5 add dict % Make a new font (a new dict\n % the same size as the old\n % one) with room for our new\n % symbols.\n\n begin % Make the new font the\n % current dictionary.\n\n\n { 1 index /FID ne\n { def } { pop pop } ifelse\n } forall % Copy each of the symbols\n % from the old dictionary to\n % the new except for the font\n % ID.\n\n /Encoding ISOLatin1Encoding def % Override the encoding with\n % the ISOLatin1 encoding.\n\n % Use the font's bounding box to determine the ascent, descent,\n % and overall height; don't forget that these values have to be\n % transformed using the font's matrix.\n FontBBox\n FontMatrix transform /Ascent exch def pop\n FontMatrix transform /Descent exch def pop\n /FontHeight Ascent Descent sub def\n\n % Define these in case they're not in the FontInfo (also, here\n % they're easier to get to.\n /UnderlinePosition 1 def\n /UnderlineThickness 1 def\n\n % Get the underline position and thickness if they're defined.\n currentdict /FontInfo known {\n FontInfo\n\n dup /UnderlinePosition known {\n dup /UnderlinePosition get\n 0 exch FontMatrix transform exch pop\n /UnderlinePosition exch def\n } if\n\n dup /UnderlineThickness known {\n /UnderlineThickness get\n 0 exch FontMatrix transform exch pop\n /UnderlineThickness exch def\n } if\n\n } if\n\n currentdict % Leave the new font on the\n % stack\n\n end % Stop using the font as the\n % current dictionary.\n\n definefont % Put the font into the font\n % dictionary\n\n pop % Discard the returned font.\n} bind def\n\n/Font {\n findfont exch scalefont reencodeFontISO\n} def\n\n/F { % Font select\n findfont\n dup /Ascent get /Ascent exch def\n dup /Descent get /Descent exch def\n dup /FontHeight get /FontHeight exch def\n dup /UnderlinePosition get /UnderlinePosition exch def\n dup /UnderlineThickness get /UnderlineThickness exch def\n setfont\n} def\n\n/FG /setrgbcolor load def\n\n/bg false def\n/BG {\n dup /bg exch def\n { mark 4 1 roll ] /bgcolor exch def } if\n} def\n\n/dobackground { % width --\n currentpoint\n gsave\n newpath\n moveto\n 0 Ascent rmoveto\n dup 0 rlineto\n 0 Descent Ascent sub rlineto\n neg 0 rlineto\n closepath\n bgcolor aload pop setrgbcolor\n fill\n grestore\n} def\n\n/dobackgroundstring { % string --\n stringwidth pop\n dobackground\n} def\n\n/dounderline { % fromx fromy --\n currentpoint\n gsave\n UnderlineThickness setlinewidth\n 4 2 roll\n UnderlinePosition add moveto\n UnderlinePosition add lineto\n stroke\n grestore\n} def\n\n/eolbg {\n currentpoint pop\n PrintWidth LeftMargin add exch sub dobackground\n} def\n\n/eolul {\n currentpoint exch pop\n PrintWidth LeftMargin add exch dounderline\n} def\n\n/SL { % Soft Linefeed\n bg { eolbg } if\n ul { eolul } if\n currentpoint LineHeight sub LeftMargin exch moveto pop\n} def\n\n/HL /SL load def % Hard Linefeed\n\n/sp1 { currentpoint 3 -1 roll } def\n\n% Some debug\n/dcp { currentpoint exch 40 string cvs print (, ) print = } def\n/dp { print 2 copy\n exch 40 string cvs print (, ) print = } def\n\n/S {\n bg { dup dobackgroundstring } if\n ul { sp1 } if\n show\n ul { dounderline } if\n} def\n\n/W {\n ul { sp1 } if\n ( ) stringwidth % Get the width of a space\n pop % Discard the Y component\n mul % Multiply the width of a\n % space by the number of\n % spaces to plot\n bg { dup dobackground } if\n 0 rmoveto\n ul { dounderline } if\n} def\n\n/BeginDSCPage {\n /vmstate save def\n} def\n\n/BeginPage {\n PrintHeader {\n PrintHeaderFrame { HeaderFrame } if\n HeaderText\n } if\n LeftMargin\n BottomMargin PrintHeight add\n moveto % move to where printing will\n % start.\n} def\n\n/EndPage {\n bg { eolbg } if\n ul { eolul } if\n showpage % Spit out a page\n} def\n\n/EndDSCPage {\n vmstate restore\n} def\n\n/ul false def\n\n/UL { /ul exch def } def\n\n/h0 14 /Helvetica-Bold Font\n/h1 12 /Helvetica Font\n\n/h1 F\n\n/HeaderLineHeight FontHeight def\n/HeaderDescent Descent def\n/HeaderPad 2 def\n\n/SetHeaderLines {\n /HeaderOffset TopMargin 2 div def\n /HeaderLines exch def\n /HeaderHeight HeaderLines HeaderLineHeight mul HeaderPad 2 mul add def\n /PrintHeight PrintHeight HeaderHeight sub def\n} def\n\n/HeaderFrameStart {\n LeftMargin BottomMargin PrintHeight add HeaderOffset add\n} def\n\n/HeaderFramePath {\n PrintWidth 0 rlineto\n 0 HeaderHeight rlineto\n PrintWidth neg 0 rlineto\n 0 HeaderHeight neg rlineto\n} def\n\n/HeaderFrame {\n gsave\n 0.4 setlinewidth\n HeaderFrameStart moveto\n 1 -1 rmoveto\n HeaderFramePath\n 0 setgray fill\n HeaderFrameStart moveto\n HeaderFramePath\n gsave 0.9 setgray fill grestore\n gsave 0 setgray stroke grestore\n grestore\n} def\n\n/HeaderStart {\n HeaderFrameStart\n exch HeaderPad add exch\n HeaderLineHeight HeaderLines 1 sub mul add HeaderDescent sub HeaderPad add\n} def\n\n/strcat {\n dup length 3 -1 roll dup length dup 4 -1 roll add string dup\n 0 5 -1 roll putinterval\n dup 4 2 roll exch putinterval\n} def\n\n/pagenumberstring {\n PageNumber 32 string cvs\n ShowNofN {\n (/) strcat\n PageCount 32 string cvs strcat\n } if\n} def\n\n/HeaderText {\n HeaderStart moveto\n\n HeaderLinesRight HeaderLinesLeft\n Duplex PageNumber 1 and 0 eq and { exch } if\n\n {\n aload pop\n exch F\n gsave\n dup xcheck { exec } if\n show\n grestore\n 0 HeaderLineHeight neg rmoveto\n } forall\n\n HeaderStart moveto\n\n {\n aload pop\n exch F\n gsave\n dup xcheck { exec } if\n dup stringwidth pop\n PrintWidth exch sub HeaderPad 2 mul sub 0 rmoveto\n show\n grestore\n 0 HeaderLineHeight neg rmoveto\n } forall\n} def\n\n/ReportFontInfo {\n 2 copy\n /t0 3 1 roll Font\n /t0 F\n /lh FontHeight def\n /sw ( ) stringwidth pop def\n /aw (01234567890abcdefghijklmnopqrstuvwxyz) dup length exch\n stringwidth pop exch div def\n /t1 12 /Helvetica-Oblique Font\n /t1 F\n 72 72 moveto\n gsave\n (For ) show\n 128 string cvs show\n ( ) show\n 32 string cvs show\n ( point, the line height is ) show\n lh 32 string cvs show\n (, the space width is ) show\n sw 32 string cvs show\n (,) show\n grestore\n 0 FontHeight neg rmoveto\n (and a crude estimate of average character width is ) show\n aw 32 string cvs show\n (.) show\n showpage\n} def\n\n% 10 /Courier ReportFontInfo\n" ps-source-buffer ps-spool-buffer-name "*PostScript*" ps-spool-buffer ps-output-head ps-output-tail ps-page-count 0 ps-showpage-count ps-current-font ps-current-underline-p ps-default-color ps-default-fg ps-current-color ps-current-bg ps-razchunk ps-color-format "%0.3f %0.3f %0.3f" "%s %s %s" ps-header-title-line-height fboundp float 16.0 16 ps-header-line-height 13.699999999999999 14 ps-header-pad 2 ps-left-margin 72 ps-right-margin ps-bottom-margin 36 ps-top-margin ps-letter-page-height 792 ps-letter-page-width 612 ps-legal-page-height 1008 ps-legal-page-width ps-a4-page-height 842 ps-a4-page-width 595 ps-pages-alist ps-letter ps-legal ps-a4 ps-page-width-i 1 ps-page-height-i ps-page-dimensions ps-print-width ps-print-height ps-height-remaining ps-width-remaining ps-ref-bold-faces ps-ref-italic-faces ps-ref-underlined-faces] 5) (defalias 'ps-get-page-dimensions #[nil "  \n8\f\n8 ZZ \nZ Z\f*" [ps-paper-type ps-pages-alist ps-page-dimensions ps-page-width-i ps-page-height-i ps-page-height ps-page-width ps-top-margin ps-bottom-margin ps-print-height ps-left-margin ps-right-margin ps-print-width] 3]) (defalias 'ps-print-preprint #[(&optional filename) "\"<\" P \" $*" [filename buffer-name ".ps" name format "Save PostScript to file: (default %s) " prompt read-file-name default-directory nil] 5]) (defalias 'ps-output-string-prim #[(string) "c c)#uc)dbc" ["(" string re-search-forward "[()\\]" nil t -1 "\\" ")"] 4]) (defalias 'ps-init-output-queue #[nil "C" ["" ps-output-head ps-output-tail] 3]) (defalias 'ps-output #[(&rest args) " AA" [ps-output-tail args] 3]) (defalias 'ps-output-string #[(string) "\n\"" [ps-output t string] 3]) (defalias 'ps-flush-output #[nil "qdb * @=\nc\" A @!) A ) " [ps-spool-buffer ps-output-head it t ps-output-string-prim ps-init-output-queue] 3]) (defalias 'ps-insert-file #[(fname) " \n!\n\" qdb\n!)" [ps-flush-output file-readable-p fname error "Could not read file `%s'" ps-spool-buffer insert-file] 3]) (defalias 'ps-generate-header-line #[(fonttag &optional content) "\n#\f;\f!<\f9%\f!%\f !<\f98\f!8\fJ!<!!" [ps-output " [ " fonttag " " content fboundp ps-output-string boundp "" " ]\n"] 4]) (defalias 'ps-generate-header #[(name contents) "\n#\fV;\n@\"\fW7\nA\n7\n@\"\\!)" [ps-output "/" name " [\n" ps-header-lines 0 1 count ps-generate-header-line "/h0" contents "/h1" "] def\n"] 5]) (defalias 'ps-output-boolean #[(name bool) " \f\fł #!" [ps-output format "/%s %s def\n" name bool "true" "false"] 5]) (defalias 'ps-begin-file #[nil " ! # # %& !!\"\"\"\"\"!!\"!#\"!%\"! (\"!*\"!,\"!-!/#!/#!/#!/#!!" [0 ps-showpage-count ps-output ps-adobe-tag "%%Title: " buffer-name "\n" "%%Creator: " user-full-name "%%CreationDate: " time-stamp-hh:mm:ss " " time-stamp-mon-dd-yyyy "%% DocumentFonts: Helvetica Helvetica-Bold " ps-font ps-font-bold ps-font-italic ps-font-bold-italic "%%Pages: (atend)\n" "%%EndComments\n\n" ps-output-boolean "Duplex" ps-spool-duplex "PrintHeader" ps-print-header "PrintHeaderFrame" ps-print-header-frame "ShowNofN" ps-show-n-of-n format "/LeftMargin %d def\n" ps-left-margin "/RightMargin %d def\n" ps-right-margin "/BottomMargin %d def\n" ps-bottom-margin "/TopMargin %d def\n" ps-top-margin ps-get-page-dimensions "/PrintWidth %d def\n" ps-print-width "/PrintHeight %d def\n" ps-print-height "/LineHeight %s def\n" ps-line-height ps-print-prologue "/f0 %d /%s Font\n" ps-font-size "/f1 %d /%s Font\n" "/f2 %d /%s Font\n" "/f3 %d /%s Font\n" "%%EndPrologue\n"] 10]) (defalias 'ps-header-dirpart #[nil "  ! ! )" [buffer-file-name fname buffer-name file-name-nondirectory file-name-directory ""] 4]) (defalias 'ps-get-buffer-name #[nil " ‡ " [buffer-name "ps-print.el" "Hey, Cool! It's ps-print.el!!!"] 2]) (defalias 'ps-begin-job #[nil "" [0 ps-page-count] 2]) (defalias 'ps-end-file #[nil "! \"\"" [ps-output "%%Trailer\n" "%%Pages: " format "%d\n" ps-showpage-count] 5]) (defalias 'ps-next-page #[nil " " [ps-end-page ps-flush-output ps-begin-page] 1]) (defalias 'ps-begin-page #[(&optional dummypage) "   \fZZ_Z\n\\Z \\  \\#\"! \"!! X\"\"\"!!!! !\"!" [ps-get-page-dimensions ps-print-width ps-width-remaining ps-print-height ps-height-remaining ps-print-header ps-header-title-line-height ps-header-line-height ps-header-lines 1 ps-header-pad ps-page-count ps-output "\n%%Page: " format "%d %d\n" ps-showpage-count "BeginDSCPage\n" "/PageNumber %d def\n" "/PageCount 0 def\n" ps-generate-header "HeaderLinesLeft" ps-left-header "HeaderLinesRight" ps-right-header "%d SetHeaderLines\n" "BeginPage\n" ps-set-font ps-current-font ps-set-bg ps-current-bg ps-set-color ps-current-color ps-set-underline ps-current-underline-p] 7]) (defalias 'ps-end-page #[nil "\\!!" [ps-showpage-count 1 ps-output "EndPage\n" "EndDSCPage\n"] 2]) (defalias 'ps-dummy-page #[nil "\\\"#" [ps-showpage-count 1 ps-output "%%Page: " format "- %d\n" "BeginDSCPage\n/PrintHeader false def\nBeginPage\nEndPage\nEndDSCPage\n"] 5]) (defalias 'ps-next-line #[nil " W  Z " [ps-height-remaining ps-line-height ps-next-page ps-print-width ps-width-remaining ps-hard-lf] 2]) (defalias 'ps-continue-line #[nil " W  Z " [ps-height-remaining ps-line-height ps-next-page ps-print-width ps-width-remaining ps-soft-lf] 2]) (defalias 'ps-hard-lf #[nil "!" [ps-output "HL\n"] 2]) (defalias 'ps-soft-lf #[nil "!" [ps-output "SL\n"] 2]) (defalias 'ps-find-wrappoint #[(from to char-width) " \n! \fZ W \n_B \f\\ B*" [truncate ps-width-remaining char-width to from todo avail] 3]) (defalias 'ps-basic-plot-string #[(from to &optional bg-color) " \n #@ \n{ !!\f+" [ps-find-wrappoint from to ps-avg-char-width wrappoint string ps-output-string ps-output " S\n"] 5]) (defalias 'ps-basic-plot-whitespace #[(from to &optional bg-color) " \n #@\n Z\"!\f*" [ps-find-wrappoint from to ps-space-width wrappoint ps-output format "%d W\n"] 6]) (defalias 'ps-plot #[(plotfunc from to &optional bg-color) " W)\n #@\fA Z W% + deZ\n`eZ \n̥ VH΂J  ZV~ \nWo _\nv \nӥ\")," [from to plotfunc bg-color wrappoint plotted-to plotted-width ps-width-remaining ps-continue-line ps-razzle-dazzle q-todo q-done 8 chunkfrac 1000 chunksize ps-razchunk nil foo 100 message "Formatting...%d%%"] 5]) (defalias 'ps-set-font #[(font) " \"!" [font ps-current-font ps-output format "/f%d F\n"] 4]) (byte-code "! B‡" [boundp ps-print-color-scale nil current-load-list] 2) (defalias 'ps-set-bg #[(color) "\f@A@8$\"!" [color ps-current-bg ps-output format ps-color-format 2 " true BG\n" "false BG\n"] 7]) (defalias 'ps-set-color #[(color) "\n @ A@ 8$\"" [color ps-current-color ps-default-fg ps-output format ps-color-format 2 " FG\n"] 7]) (defalias 'ps-set-underline #[(underline-p) " ‚\n\" " [ps-output underline-p "true" "false" " UL\n" ps-current-underline-p] 3]) (defalias 'ps-plot-region #[(from to font fg-color &optional bg-color underline-p) " \n! \f !!! \n. !\fb\f W #єfUy`)\f`Z$ui\\\f #\fi\\$)U\f`Z$ U\f`Z$ `\f)3\f $ \f5)" [font ps-current-font ps-set-font fg-color ps-current-color ps-set-color bg-color ps-current-bg ps-set-bg underline-p ps-current-underline-p ps-set-underline from to re-search-forward "[ \n\f]" t 0 match 9 linestart ps-plot ps-basic-plot-string 1 -1 "[ ]+" ps-basic-plot-whitespace 10 ps-next-line 12 ps-next-page] 6]) (defalias 'ps-color-value #[(x-color-value) " " [x-color-value ps-print-color-scale] 2]) (defalias 'ps-color-values #[(x-color) "!\n\n!!\n!!" [fboundp x-color-values x-color pixel-components error "No available function to determine X color values."] 2]) (defalias 'ps-face-attributes #[(face) " ! > \f> >\n !\n !)" [face-differs-from-default-p face differs ps-ref-bold-faces ps-ref-italic-faces ps-ref-underlined-faces face-foreground face-background] 6]) (defalias 'ps-face-attribute-list #[(face-or-list) " >*" [face-font face t face-defaults frame-font kind kind-list] 4]) (defalias 'ps-xemacs-face-kind-p #[(face kind kind-regex kind-list) " ! !\f ! & \"* \f>," [face-font face default frame-font kind x-font-properties kind-cons kind-spec t case-fold-search string-match kind-regex kind-list] 4]) (defalias 'ps-face-bold-p #[(face) "= $ $" [emacs-type fsf ps-fsf-face-kind-p face bold "-\\(bold\\|demibold\\)-" ps-bold-faces ps-xemacs-face-kind-p WEIGHT_NAME "bold\\|demibold"] 5]) (defalias 'ps-face-italic-p #[(face) "= $ $ $" [emacs-type fsf ps-fsf-face-kind-p face italic "-[io]-" ps-italic-faces ps-xemacs-face-kind-p ANGLE_NAME "i\\|o" SLANT] 5]) (defalias 'ps-face-underlined-p #[(face) " ! \n>" [face-underline-p face ps-underlined-faces] 2]) (byte-code "! \"" [fboundp face-list defalias list-faces] 3) (defalias 'ps-build-reference-face-lists #[nil "E \fA\f@ !$ B !. B !: B\fA*P \f ‰" [ps-auto-font-detect face-list nil the-face faces ps-ref-bold-faces ps-ref-italic-faces ps-ref-underlined-faces ps-face-italic-p ps-face-bold-p ps-face-underlined-p ps-bold-faces ps-italic-faces ps-underlined-faces ps-build-face-reference] 3]) (defalias 'ps-mapper #[(extent list) "\n!\nE\n!\nEDƇ" [list extent-start-position extent push extent-end-position pull nil] 5]) (defalias 'ps-sorter #[(a b) "@ @W" [a b] 2]) (defalias 'ps-extent-sorter #[(a b) " !\n!W" [extent-priority a b] 3]) (defalias 'ps-print-ensure-fontified #[(start end) "! !\f \" " [boundp lazy-lock-mode fboundp lazy-lock-fontify-region start end lazy-lock-fontify-buffer] 3]) (defalias 'ps-generate-postscript-with-faces #[(from to) " ! !@!\n \f}\f \f\"=B=BՉ \f%A\"@@A@A@ eYdX #=!B\"=\"\"@! Ar-= &' \fW'\fW \f#'&\fW* !\f^&'&^ \"=ՂF \"F !.//@00\"20\"30\"q63}26.V3Ղ26.,/A/U* # * \f#+" [ps-always-build-face-reference ps-build-face-reference message "Collecting face information..." ps-build-reference-face-lists ps-print-color-p float ps-color-values "white" 1.0 ps-print-color-scale from to default position face ps-print-ensure-fontified emacs-type lucid xemacs dummy nil extent-list extent type record a map-extents ps-mapper sort ps-sorter ps-plot-with-face push extent-face ps-extent-sorter pull delq fsf overlay-change property-change next-property-change next-overlay-change get-text-property invisible overlays-at -1 face-priority overlays overlay overlay-get overlay-face overlay-invisible priority 0 overlay-priority] 7]) (defalias 'ps-generate-postscript #[(from to) " \n$" [ps-plot-region from to 0 nil] 5]) (defalias 'ps-generate #[(buffer from to genfunc) " ^ ] }\nʼn\"q\n! ͉ю q d͓eb!!Pq] )q \" \"U  qdb#\"\",\n!+" [to from ps-razzle-dazzle message "Formatting...%d%%" 0 ps-razchunk buffer ps-source-buffer get-buffer-create ps-spool-buffer-name ps-spool-buffer ps-init-output-queue nil needs-begin-file completed-safely safe-marker ((byte-code " !\n q !d|" [markerp safe-marker completed-safely ps-spool-buffer marker-position] 2)) make-marker looking-at regexp-quote "%!PS-Adobe-1.0" t ps-begin-file ps-begin-job ps-begin-page genfunc ps-end-page ps-spool-duplex mod ps-page-count 2 1 ps-dummy-page ps-flush-output re-search-backward "^/PageCount 0 def$" replace-match format "/PageCount %d def" "Formatting...done"] 5]) (defalias 'ps-do-despool #[(filename) "!\n ! B#! q!ed#>\")gK! qed&)g! !" [boundp ps-spool-buffer message "No spooled PostScript to print" ps-end-file ps-flush-output filename ps-razzle-dazzle "Saving..." expand-file-name write-region "Wrote %s" "Printing..." apply call-process-region ps-lpr-command nil 0 ps-lpr-switches "Printing...done" kill-buffer] 9]) (defalias 'ps-kill-emacs-check #[nil " ! !! !1 !1!?1!)" [nil ps-buffer get-buffer ps-spool-buffer-name 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 "!\"\n!" [fboundp add-hook kill-emacs-hook ps-kill-emacs-check message "Won't override existing kill-emacs-hook"] 3) (defalias 'ps-prsc '(macro . #[nil "EF" [if eq emacs-type (quote fsf) [f22] (quote f22)] 4])) (defalias 'ps-c-prsc '(macro . #[nil "EF" [if eq emacs-type (quote fsf) [C-f22] (quote (control f22))] 4])) (defalias 'ps-s-prsc '(macro . #[nil "EF" [if eq emacs-type (quote fsf) [S-f22] (quote (shift f22))] 4])) (defalias 'ps-article-subject #[nil "eb!”•{)" [re-search-forward "^Subject:[ ]+\\(.*\\)$" 1 "Subject ???"] 2]) (defalias 'ps-article-author #[nil "eb!5”•{ \" ”•O1 \"0 ”•O1 )6)" [re-search-forward "^From:[ ]+\\(.*\\)$" 1 fromstring string-match ".*[ ]+(\\(.*\\))" "\\(.*\\)[ ]+<.*>" "From ???"] 3]) (defalias 'ps-gnus-article-prepare-hook #[nil "E" [3 ps-header-lines ps-article-subject ps-article-author gnus-newsgroup-name ps-left-header] 3]) (defalias 'ps-vm-mode-hook #[nil " = Â\f\"E " [local-set-key emacs-type fsf [f22] f22 ps-vm-print-message-from-summary 3 ps-header-lines ps-article-subject ps-article-author buffer-name ps-left-header] 3]) (defalias 'ps-gnus-print-article-from-summary #[nil "! q )" [get-buffer "*Article*" ps-spool-buffer-with-faces] 2 nil nil]) (defalias 'ps-vm-print-message-from-summary #[nil " q )" [vm-mail-buffer ps-spool-buffer-with-faces] 1 nil nil]) (defalias 'ps-gnus-summary-setup #[nil " = Â\f\"" [local-set-key emacs-type fsf [f22] f22 ps-gnus-print-article-from-summary] 3]) (defalias 'ps-info-file #[nil "eb!”•{)" [re-search-forward "File:[ ]+\\([^, \n]*\\)" 1 "File ???"] 2]) (defalias 'ps-info-node #[nil "eb!”•{)" [re-search-forward "Node:[ ]+\\([^, \n]*\\)" 1 "Node ???"] 2]) (defalias 'ps-info-mode-hook #[nil "D" [ps-info-node ps-info-file ps-left-header] 2]) (defalias 'ps-jts-ps-setup #[nil " = Â\f\" =Ƃ\" =)ɂ*\"\"\"\"\"\"܉" [global-set-key emacs-type fsf [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 ps-spool-duplex nil ps-print-color-p "lpr" ps-lpr-command ("-Jjct,duplex_long") ps-lpr-switches] 3]) (provide (quote ps-print))