From: Stefan Kangas Date: Sun, 31 Jul 2022 16:15:55 +0000 (+0200) Subject: Move some definitions from ps-def.el to ps-print.el X-Git-Tag: emacs-29.0.90~1447^2~602 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=97b80912e9fb74d8a7881b74f1cd556a03f5fae8;p=emacs.git Move some definitions from ps-def.el to ps-print.el * lisp/ps-def.el (ps-face-bold-p, ps-face-italic-p) (ps-face-strikeout-p, ps-face-overline-p, ps-face-box-p) (ps-color-format, ps-float-format) (ps-generate-postscript-with-faces1): Move from here... * lisp/ps-print.el (ps-face-bold-p, ps-face-italic-p) (ps-face-strikeout-p, ps-face-overline-p, ps-face-box-p) (ps-color-format, ps-float-format) (ps-generate-postscript-with-faces1): ...to here. --- diff --git a/lisp/ps-def.el b/lisp/ps-def.el index 8235d6c7f31..ed4cd7b2487 100644 --- a/lisp/ps-def.el +++ b/lisp/ps-def.el @@ -29,12 +29,6 @@ ;;; Code: -(declare-function ps-plot-with-face "ps-print" (from to face)) -(declare-function ps-plot-string "ps-print" (string)) - -(defvar ps-bold-faces) ; in ps-print.el -(defvar ps-italic-faces) - ;; Emacs Definitions @@ -54,67 +48,6 @@ (define-obsolete-function-alias 'ps-color-device #'display-color-p "29.1") (define-obsolete-function-alias 'ps-color-values #'color-values "28.1") -(defun ps-face-bold-p (face) - (or (face-bold-p face) - (memq face ps-bold-faces))) - - -(defun ps-face-italic-p (face) - (or (face-italic-p face) - (memq face ps-italic-faces))) - - -(defun ps-face-strikeout-p (face) - (eq (face-attribute face :strike-through) t)) - - -(defun ps-face-overline-p (face) - (eq (face-attribute face :overline) t)) - - -(defun ps-face-box-p (face) - (not (memq (face-attribute face :box) '(nil unspecified)))) - - -;; Emacs understands the %f format; we'll use it to limit color RGB values -;; to three decimals to cut down some on the size of the PostScript output. -(defvar ps-color-format "%0.3f %0.3f %0.3f") -(defvar ps-float-format "%0.3f ") - - -(defun ps-generate-postscript-with-faces1 (from to) - ;; Generate some PostScript. - (let ((face 'default) - (position to) - ;; Emacs - (property-change from) - (overlay-change from) - before-string after-string) - (while (< from to) - (and (< property-change to) ; Don't search for property change - ; unless previous search succeeded. - (setq property-change (next-property-change from nil to))) - (and (< overlay-change to) ; Don't search for overlay change - ; unless previous search succeeded. - (setq overlay-change (min (next-overlay-change from) - to))) - (setq position (min property-change overlay-change) - before-string nil - after-string nil) - (setq face - (cond ((invisible-p from) - 'emacs--invisible--face) - ((get-char-property from 'face)) - (t 'default))) - ;; Plot up to this record. - (and before-string - (ps-plot-string before-string)) - (ps-plot-with-face from position face) - (and after-string - (ps-plot-string after-string)) - (setq from position)) - (ps-plot-with-face from to face))) - (provide 'ps-def) ;;; ps-def.el ends here diff --git a/lisp/ps-print.el b/lisp/ps-print.el index fe60fcc288e..4a7e5bbd3d1 100644 --- a/lisp/ps-print.el +++ b/lisp/ps-print.el @@ -4733,6 +4733,10 @@ page-height == ((floor print-height ((th + ls) * zh)) * ((th + ls) * zh)) - th (defun ps-output-boolean (name bool) (ps-output (format "/%s %s def\n" name (if bool "true" "false")))) +;; Limit color RGB values to three decimals to cut down some on the +;; size of the PostScript output. +(defvar ps-color-format "%0.3f %0.3f %0.3f") +(defvar ps-float-format "%0.3f ") (defun ps-output-frame-properties (name alist) (ps-output "/" name " [" @@ -6312,6 +6316,22 @@ If FACE is not a valid face name, use default face." (setq ps-print-face-alist (cons face-map ps-print-face-alist))) face-map)) +(defun ps-face-bold-p (face) + (or (face-bold-p face) + (memq face ps-bold-faces))) + +(defun ps-face-italic-p (face) + (or (face-italic-p face) + (memq face ps-italic-faces))) + +(defun ps-face-strikeout-p (face) + (eq (face-attribute face :strike-through) t)) + +(defun ps-face-overline-p (face) + (eq (face-attribute face :overline) t)) + +(defun ps-face-box-p (face) + (not (memq (face-attribute face :box) '(nil unspecified)))) (defun ps-screen-to-bit-face (face) (cons face @@ -6325,6 +6345,38 @@ If FACE is not a valid face name, use default face." (face-background face nil t)))) +(defun ps-generate-postscript-with-faces1 (from to) + ;; Generate some PostScript. + (let ((face 'default) + (position to) + (property-change from) + (overlay-change from) + before-string after-string) + (while (< from to) + (and (< property-change to) ; Don't search for property change + ; unless previous search succeeded. + (setq property-change (next-property-change from nil to))) + (and (< overlay-change to) ; Don't search for overlay change + ; unless previous search succeeded. + (setq overlay-change (min (next-overlay-change from) + to))) + (setq position (min property-change overlay-change) + before-string nil + after-string nil) + (setq face + (cond ((invisible-p from) + 'emacs--invisible--face) + ((get-char-property from 'face)) + (t 'default))) + ;; Plot up to this record. + (and before-string + (ps-plot-string before-string)) + (ps-plot-with-face from position face) + (and after-string + (ps-plot-string after-string)) + (setq from position)) + (ps-plot-with-face from to face))) + (defun ps-generate-postscript-with-faces (from to) ;; Some initialization... (setq ps-current-effect 0)