# HG changeset patch # User Vinicius Jose Latorre # Date 1046915657 0 # Node ID c919f0375a3ec35efd92de85e2f20b340b9370d9 # Parent 495a8fcebe802803e63dc7bc102d8fcb41c1b339 Check if background and foreground color are the same. diff -r 495a8fcebe80 -r c919f0375a3e lisp/ps-print.el --- a/lisp/ps-print.el Wed Mar 05 20:51:33 2003 +0000 +++ b/lisp/ps-print.el Thu Mar 06 01:54:17 2003 +0000 @@ -5,24 +5,24 @@ ;; Author: Jim Thompson (was ) ;; Jacques Duthen (was ) -;; Vinicius Jose Latorre +;; Vinicius Jose Latorre ;; Kenichi Handa (multi-byte characters) ;; Maintainer: Kenichi Handa (multi-byte characters) -;; Vinicius Jose Latorre +;; Vinicius Jose Latorre ;; Keywords: wp, print, PostScript -;; Time-stamp: <2003/02/12 14:05:44 vinicius> -;; Version: 6.5.9 +;; Time-stamp: <2003/03/05 21:54:55 vinicius> +;; Version: 6.6 ;; X-URL: http://www.cpqd.com.br/~vinicius/emacs/ -(defconst ps-print-version "6.5.9" - "ps-print.el, v 6.5.9 <2003/02/12 vinicius> +(defconst ps-print-version "6.6" + "ps-print.el, v 6.6 <2003/03/05 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 Jose Latorre .") ;; This file is part of GNU Emacs. @@ -1075,7 +1075,7 @@ ;; (face...) list of faces whose background color will be used. ;; ;; Any other value will be treated as t. -;; The default value is t. +;; The default value is nil. ;; ;; ;; How Ps-Print Deals With Color @@ -1211,7 +1211,7 @@ ;; New since version 2.8 ;; --------------------- ;; -;; [vinicius] Vinicius Jose Latorre +;; [vinicius] Vinicius Jose Latorre ;; ;; 20010619 ;; `ps-time-stamp-locale-default' @@ -1263,7 +1263,7 @@ ;; ;; `ps-print-region-function' ;; -;; [vinicius] Vinicius Jose Latorre +;; [vinicius] Vinicius Jose Latorre ;; ;; 19990301 ;; PostScript tumble and setpagedevice. @@ -1276,7 +1276,7 @@ ;; ;; Multi-byte buffer handling. ;; -;; [vinicius] Vinicius Jose Latorre +;; [vinicius] Vinicius Jose Latorre ;; ;; 19980306 ;; Skip invisible text. @@ -1708,7 +1708,7 @@ requirements and set %%LanguageLevel: to 2, do: (setq ps-print-prologue-header - \"%%+ numcopies(3) jog\\n%%LanguageLevel: 2\\n\") + \"%%+ numcopies(3) jog\\n%%LanguageLevel: 2\\n\") The duplex requirement is inserted by ps-print (see `ps-spool-duplex'). @@ -1906,7 +1906,7 @@ If a list, the lists 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 less than one or if FROM is greater than TO. +integer lesser than one or if FROM is greater than TO. Otherwise, it's treated as nil. @@ -2918,7 +2918,33 @@ :group 'ps-print-color) (defcustom ps-default-fg '(0.0 0.0 0.0) ; black - "*RGB values of the default foreground color. Defaults to black." + "*RGB values of the default foreground color. Defaults to black. + +The `ps-default-fg' variable contains the default foreground color used by +ps-print, that is, if there is a face in a text that doesn't have a foreground +color, the `ps-default-fg' color should be used. + +Valid values are: + + t The foreground color of Emacs session will be used. + + NUMBER It's a real value between 0.0 (black) and 1.0 (white) that + indicate the gray color. + + COLOR-NAME It's a string wich contains the color name. For example: + \"yellow\". + + LIST It's a list of RGB values, that is a list of three real values + of the form: + + (RED, GREEN, BLUE) + + Where RED, GREEN and BLUE are reals between 0.0 (no color) and + 1.0 (full color). + +Any other value is ignored and it's used the black color. + +It's used only when `ps-print-color-p' is non-nil." :type '(choice :menu-tag "Default Foreground Gray/Color" :tag "Default Foreground Gray/Color" (const :tag "Session Foreground" t) @@ -2931,7 +2957,35 @@ :group 'ps-print-color) (defcustom ps-default-bg '(1.0 1.0 1.0) ; white - "*RGB values of the default background color. Defaults to white." + "*RGB values of the default background color. Defaults to white. + +The `ps-default-bg' variable contains the default background color used by +ps-print, that is, if there is a face in a text that doesn't have a background +color, the `ps-default-bg' color should be used. + +Valid values are: + + t The background color of Emacs session will be used. + + NUMBER It's a real value between 0.0 (black) and 1.0 (white) that + indicate the gray color. + + COLOR-NAME It's a string wich contains the color name. For example: + \"yellow\". + + LIST It's a list of RGB values, that is a list of three real values + of the form: + + (RED, GREEN, BLUE) + + Where RED, GREEN and BLUE are reals between 0.0 (no color) and + 1.0 (full color). + +Any other value is ignored and it's used the white color. + +It's used only when `ps-print-color-p' is non-nil. + +See also `ps-use-face-background'." :type '(choice :menu-tag "Default Background Gray/Color" :tag "Default Background Gray/Color" (const :tag "Session Background" t) @@ -3817,6 +3871,7 @@ (defvar ps-current-font 0) (defvar ps-default-foreground nil) +(defvar ps-default-background nil) (defvar ps-default-color nil) (defvar ps-current-color nil) (defvar ps-current-bg nil) @@ -5385,11 +5440,7 @@ "/ZebraColor " (ps-format-color ps-zebra-color 0.95) "def\n/BackgroundColor " - (ps-format-color - (if (eq ps-default-bg t) - (ps-face-background-name 'default) - ps-default-bg) - 1.0) + (ps-format-color ps-default-background 1.0) "def\n/UseSetpagedevice " (if (eq ps-spool-config 'setpagedevice) "/setpagedevice where{pop languagelevel 2 eq}{false}ifelse" @@ -5573,10 +5624,19 @@ (ps-get-size (symbol-value font-sym) "font size" font-sym)) -(defsubst ps-rgb-color (color default) - (cond ((and color (listp color)) color) +(defun ps-rgb-color (color default) + (cond ((and color (listp color) (= (length color) 3) + (let ((cl color) + (ok t) e) + (while (and ok cl) + (setq e (car cl) + cl (cdr cl) + ok (and (floatp e) (<= 0.0 e) (<= e 1.0)))) + ok)) + color) + ((and (floatp color) (<= 0.0 color) (<= color 1.0)) + (list color color color)) ((stringp color) (ps-color-scale color)) - ((numberp color) (list color color color)) (t (list default default default)) )) @@ -5650,6 +5710,11 @@ ((eq ps-print-control-characters 'control) "[\000-\037\177]") (t "[\t\n\f]")) + ps-default-background (ps-rgb-color + (if (eq ps-default-bg t) + (ps-face-background-name 'default) + ps-default-bg) + 1.0) ps-default-foreground (ps-rgb-color (if (eq ps-default-fg t) (ps-face-foreground-name 'default) @@ -5665,7 +5730,14 @@ (float (car (ps-color-values "white"))) 1.0)) ;; initialize page dimensions - (ps-get-page-dimensions)) + (ps-get-page-dimensions) + ;; final check + (and ps-color-p + (equal ps-default-background ps-default-foreground) + (error + (concat + "`ps-default-fg' and `ps-default-bg' have the same color.\n" + "Text won't appear on page. Please, check these variables.")))) (defun ps-page-number ()