Mercurial > emacs
comparison lisp/ps-print.el @ 90779:6ea6d3d1508d
Some code fix.
author | Vinicius Jose Latorre <viniciusjl@ig.com.br> |
---|---|
date | Fri, 02 Mar 2007 01:43:44 +0000 |
parents | dd7c098af727 |
children | e728b9402186 |
comparison
equal
deleted
inserted
replaced
90778:c5ab22abb1ec | 90779:6ea6d3d1508d |
---|---|
1448 | 1448 |
1449 (or (featurep 'lisp-float-type) | 1449 (or (featurep 'lisp-float-type) |
1450 (error "`ps-print' requires floating point support")) | 1450 (error "`ps-print' requires floating point support")) |
1451 | 1451 |
1452 | 1452 |
1453 (defvar ps-print-emacs-type | 1453 (let ((case-fold-search t)) |
1454 (let ((case-fold-search t)) | 1454 (cond ((string-match "XEmacs" emacs-version)) |
1455 (cond ((string-match "XEmacs" emacs-version) 'xemacs) | 1455 ((string-match "Lucid" emacs-version) |
1456 ((string-match "Lucid" emacs-version) | 1456 (error "`ps-print' doesn't support Lucid")) |
1457 (error "`ps-print' doesn't support Lucid")) | 1457 ((string-match "Epoch" emacs-version) |
1458 ((string-match "Epoch" emacs-version) | 1458 (error "`ps-print' doesn't support Epoch")) |
1459 (error "`ps-print' doesn't support Epoch")) | 1459 (t |
1460 (t | 1460 (unless (and (boundp 'emacs-major-version) |
1461 (unless (and (boundp 'emacs-major-version) | 1461 (>= emacs-major-version 22)) |
1462 (> emacs-major-version 22)) | 1462 (error "`ps-print' only supports Emacs 22 and higher"))))) |
1463 (error "`ps-print' only supports Emacs 23 and higher")) | |
1464 'emacs)))) | |
1465 | 1463 |
1466 | 1464 |
1467 (defconst ps-windows-system | 1465 (defconst ps-windows-system |
1468 (memq system-type '(emx win32 w32 mswindows ms-dos windows-nt))) | 1466 (memq system-type '(emx win32 w32 mswindows ms-dos windows-nt))) |
1469 (defconst ps-lp-system | 1467 (defconst ps-lp-system |
3274 :version "20" | 3272 :version "20" |
3275 :group 'ps-print-headers) | 3273 :group 'ps-print-headers) |
3276 | 3274 |
3277 (defcustom ps-postscript-code-directory | 3275 (defcustom ps-postscript-code-directory |
3278 (or (if (featurep 'xemacs) | 3276 (or (if (featurep 'xemacs) |
3279 (cond ((fboundp 'locate-data-directory) ; xemacs | 3277 (cond ((fboundp 'locate-data-directory) ; XEmacs |
3280 (funcall 'locate-data-directory "ps-print")) | 3278 (funcall 'locate-data-directory "ps-print")) |
3281 ((boundp 'data-directory) ; xemacs | 3279 ((boundp 'data-directory) ; XEmacs |
3282 (symbol-value 'data-directory)) | 3280 (symbol-value 'data-directory)) |
3283 (t ; don't know what to do | 3281 (t ; don't know what to do |
3284 nil)) | 3282 nil)) |
3285 data-directory) ; emacs | 3283 data-directory) ; Emacs |
3286 (error "`ps-postscript-code-directory' isn't set properly")) | 3284 (error "`ps-postscript-code-directory' isn't set properly")) |
3287 "*Directory where it's located the PostScript prologue file used by ps-print. | 3285 "*Directory where it's located the PostScript prologue file used by ps-print. |
3288 By default, this directory is the same as in the variable `data-directory'." | 3286 By default, this directory is the same as in the variable `data-directory'." |
3289 :type 'directory | 3287 :type 'directory |
3290 :version "20" | 3288 :version "20" |
3522 "Return the current PostScript-generation setup." | 3520 "Return the current PostScript-generation setup." |
3523 (let (ps-prefix-quote) | 3521 (let (ps-prefix-quote) |
3524 (mapconcat | 3522 (mapconcat |
3525 #'ps-print-quote | 3523 #'ps-print-quote |
3526 (list | 3524 (list |
3527 (concat "\n;;; ps-print version " ps-print-version "\n") | 3525 (concat "\n;;; (" (if (featurep 'xemacs) "XEmacs" "Emacs") |
3526 ") ps-print version " ps-print-version "\n") | |
3528 ";; internal vars" | 3527 ";; internal vars" |
3529 (ps-comment-string "emacs-version " emacs-version) | 3528 (ps-comment-string "emacs-version " emacs-version) |
3530 (ps-comment-string "ps-windows-system " ps-windows-system) | 3529 (ps-comment-string "ps-windows-system " ps-windows-system) |
3531 (ps-comment-string "ps-lp-system " ps-lp-system) | 3530 (ps-comment-string "ps-lp-system " ps-lp-system) |
3532 nil | 3531 nil |
3533 '(25 . ps-print-color-p) | 3532 '(25 . ps-print-color-p) |
3534 '(25 . ps-lpr-command) | 3533 '(25 . ps-lpr-command) |
3535 '(25 . ps-lpr-switches) | 3534 '(25 . ps-lpr-switches) |
3536 '(25 . ps-printer-name) | 3535 '(25 . ps-printer-name) |
3799 (buffer-string)) | 3798 (buffer-string)) |
3800 (error "ps-print PostScript prologue `%s' file was not found" | 3799 (error "ps-print PostScript prologue `%s' file was not found" |
3801 filename)))) | 3800 filename)))) |
3802 | 3801 |
3803 | 3802 |
3804 (defvar ps-mark-code-directory nil) | 3803 (defvar ps-mark-code-directory) |
3805 | 3804 |
3806 (defvar ps-print-prologue-0 "" | 3805 (defvar ps-print-prologue-0 "" |
3807 "ps-print PostScript error handler.") | 3806 "ps-print PostScript error handler.") |
3808 | 3807 |
3809 (defvar ps-print-prologue-1 "" | 3808 (defvar ps-print-prologue-1 "" |
3810 "ps-print PostScript prologue.") | 3809 "ps-print PostScript prologue.") |
3811 | 3810 |
3812 ;; Start Editing Here: | 3811 ;; Start Editing Here: |
3813 | 3812 |
3814 (defvar ps-source-buffer nil) | 3813 (defvar ps-source-buffer) |
3815 (defvar ps-spool-buffer-name "*PostScript*") | 3814 (defvar ps-spool-buffer-name "*PostScript*") |
3816 (defvar ps-spool-buffer nil) | 3815 (defvar ps-spool-buffer) |
3817 | 3816 |
3818 (defvar ps-output-head nil) | 3817 (defvar ps-output-head) |
3819 (defvar ps-output-tail nil) | 3818 (defvar ps-output-tail) |
3820 | 3819 |
3821 (defvar ps-page-postscript 0) ; page number | 3820 (defvar ps-page-postscript 0) ; page number |
3822 (defvar ps-page-order 0) ; PostScript page counter | 3821 (defvar ps-page-order 0) ; PostScript page counter |
3823 (defvar ps-page-sheet 0) ; sheet counter | 3822 (defvar ps-page-sheet 0) ; sheet counter |
3824 (defvar ps-page-column 0) ; column counter | 3823 (defvar ps-page-column 0) ; column counter |
3825 (defvar ps-page-printed 0) ; total pages printed | 3824 (defvar ps-page-printed 0) ; total pages printed |
3826 (defvar ps-page-n-up 0) ; n-up counter | 3825 (defvar ps-page-n-up 0) ; n-up counter |
3827 (defvar ps-lines-printed 0) ; total lines printed | 3826 (defvar ps-lines-printed 0) ; total lines printed |
3828 (defvar ps-showline-count 1) ; line number counter | 3827 (defvar ps-showline-count 1) ; line number counter |
3829 (defvar ps-first-page nil) | 3828 (defvar ps-first-page) |
3830 (defvar ps-last-page nil) | 3829 (defvar ps-last-page) |
3831 (defvar ps-print-page-p t) | 3830 (defvar ps-print-page-p t) |
3832 | 3831 |
3833 (defvar ps-control-or-escape-regexp nil) | 3832 (defvar ps-control-or-escape-regexp) |
3834 (defvar ps-n-up-on nil) | 3833 (defvar ps-n-up-on) |
3835 | 3834 |
3836 (defvar ps-background-pages nil) | 3835 (defvar ps-background-pages) |
3837 (defvar ps-background-all-pages nil) | 3836 (defvar ps-background-all-pages) |
3838 (defvar ps-background-text-count 0) | 3837 (defvar ps-background-text-count 0) |
3839 (defvar ps-background-image-count 0) | 3838 (defvar ps-background-image-count 0) |
3840 | 3839 |
3841 (defvar ps-current-font 0) | 3840 (defvar ps-current-font 0) |
3842 (defvar ps-default-foreground nil) | 3841 (defvar ps-default-foreground) |
3843 (defvar ps-default-background nil) | 3842 (defvar ps-default-background) |
3844 (defvar ps-default-color nil) | 3843 (defvar ps-default-color) |
3845 (defvar ps-current-color nil) | 3844 (defvar ps-current-color) |
3846 (defvar ps-current-bg nil) | 3845 (defvar ps-current-bg) |
3847 | 3846 |
3848 (defvar ps-zebra-stripe-full-p nil) | 3847 (defvar ps-zebra-stripe-full-p) |
3849 (defvar ps-razchunk 0) | 3848 (defvar ps-razchunk 0) |
3850 | 3849 |
3851 (defvar ps-color-p nil) | 3850 (defvar ps-color-p) |
3852 | 3851 |
3853 ;; These values determine how much print-height to deduct when headers/footers | 3852 ;; These values determine how much print-height to deduct when headers/footers |
3854 ;; are turned on. This is a pretty clumsy way of handling it, but it'll do for | 3853 ;; are turned on. This is a pretty clumsy way of handling it, but it'll do for |
3855 ;; now. | 3854 ;; now. |
3856 | 3855 |
3866 | 3865 |
3867 (defmacro ps-page-dimensions-get-width (dims) `(nth 0 ,dims)) | 3866 (defmacro ps-page-dimensions-get-width (dims) `(nth 0 ,dims)) |
3868 (defmacro ps-page-dimensions-get-height (dims) `(nth 1 ,dims)) | 3867 (defmacro ps-page-dimensions-get-height (dims) `(nth 1 ,dims)) |
3869 (defmacro ps-page-dimensions-get-media (dims) `(nth 2 ,dims)) | 3868 (defmacro ps-page-dimensions-get-media (dims) `(nth 2 ,dims)) |
3870 | 3869 |
3871 (defvar ps-landscape-page-height nil) | 3870 (defvar ps-landscape-page-height) |
3872 | 3871 |
3873 (defvar ps-print-width nil) | 3872 (defvar ps-print-width) |
3874 (defvar ps-print-height nil) | 3873 (defvar ps-print-height) |
3875 | 3874 |
3876 (defvar ps-height-remaining nil) | 3875 (defvar ps-height-remaining) |
3877 (defvar ps-width-remaining nil) | 3876 (defvar ps-width-remaining) |
3878 | 3877 |
3879 (defvar ps-font-size-internal nil) | 3878 (defvar ps-font-size-internal) |
3880 (defvar ps-header-font-size-internal nil) | 3879 (defvar ps-header-font-size-internal) |
3881 (defvar ps-header-title-font-size-internal nil) | 3880 (defvar ps-header-title-font-size-internal) |
3882 (defvar ps-footer-font-size-internal nil) | 3881 (defvar ps-footer-font-size-internal) |
3883 (defvar ps-line-spacing-internal nil) | 3882 (defvar ps-line-spacing-internal) |
3884 (defvar ps-paragraph-spacing-internal nil) | 3883 (defvar ps-paragraph-spacing-internal) |
3885 | 3884 |
3886 | 3885 |
3887 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | 3886 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
3888 ;; Internal Variables | 3887 ;; Internal Variables |
3889 | 3888 |
4076 (and (not (string= (buffer-name) "*Messages*")) | 4075 (and (not (string= (buffer-name) "*Messages*")) |
4077 (boundp 'message-log-max) | 4076 (boundp 'message-log-max) |
4078 message-log-max)) | 4077 message-log-max)) |
4079 | 4078 |
4080 | 4079 |
4081 (defvar ps-print-hook nil) | 4080 (defvar ps-print-hook) |
4082 (defvar ps-print-begin-sheet-hook nil) | 4081 (defvar ps-print-begin-sheet-hook) |
4083 (defvar ps-print-begin-page-hook nil) | 4082 (defvar ps-print-begin-page-hook) |
4084 (defvar ps-print-begin-column-hook nil) | 4083 (defvar ps-print-begin-column-hook) |
4085 | 4084 |
4086 | 4085 |
4087 (defun ps-print-without-faces (from to &optional filename region-p) | 4086 (defun ps-print-without-faces (from to &optional filename region-p) |
4088 (ps-spool-without-faces from to region-p) | 4087 (ps-spool-without-faces from to region-p) |
4089 (ps-do-despool filename)) | 4088 (ps-do-despool filename)) |
4634 (goto-char (point-max)) | 4633 (goto-char (point-max)) |
4635 (insert-file-contents fname))) | 4634 (insert-file-contents fname))) |
4636 | 4635 |
4637 ;; These functions insert the arrays that define the contents of the headers. | 4636 ;; These functions insert the arrays that define the contents of the headers. |
4638 | 4637 |
4639 (defvar ps-encode-header-string-function nil) | 4638 (defvar ps-encode-header-string-function) |
4640 | 4639 |
4641 (defun ps-generate-header-line (fonttag &optional content) | 4640 (defun ps-generate-header-line (fonttag &optional content) |
4642 (ps-output " [" fonttag " ") | 4641 (ps-output " [" fonttag " ") |
4643 (cond | 4642 (cond |
4644 ;; Literal strings should be output as is -- the string must contain its own | 4643 ;; Literal strings should be output as is -- the string must contain its own |
5907 (if (< q-todo 100) | 5906 (if (< q-todo 100) |
5908 (/ (* 100 q-done) q-todo) | 5907 (/ (* 100 q-done) q-todo) |
5909 (/ q-done (/ q-todo 100))) | 5908 (/ q-done (/ q-todo 100))) |
5910 )))))) | 5909 )))))) |
5911 | 5910 |
5912 (defvar ps-last-font nil) | 5911 (defvar ps-last-font) |
5913 | 5912 |
5914 (defun ps-set-font (font) | 5913 (defun ps-set-font (font) |
5915 (setq ps-last-font (format "f%d" (setq ps-current-font font))) | 5914 (setq ps-last-font (format "f%d" (setq ps-current-font font))) |
5916 (ps-output (format "/%s F\n" ps-last-font))) | 5915 (ps-output (format "/%s F\n" ps-last-font))) |
5917 | 5916 |