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