changeset 5955:459bb5807c0b

(face-try-color-list): Don't rely on errors from using a color that the server can't really support.
author Richard M. Stallman <rms@gnu.org>
date Tue, 15 Feb 1994 22:38:00 +0000
parents 02f406110e4b
children 586a37656a31
files lisp/faces.el
diffstat 1 files changed, 24 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/faces.el	Tue Feb 15 16:22:49 1994 +0000
+++ b/lisp/faces.el	Tue Feb 15 22:38:00 1994 +0000
@@ -862,26 +862,34 @@
 ;; That can't fail, so any subsequent elements after the t are ignored.
 (defun face-try-color-list (function face colors frame)
   (if (stringp colors)
-      (funcall function face colors frame)
+      (if (or (and (not (x-display-color-p)) (not (string= colors "gray")))
+	      (= (x-display-planes) 1))
+	  nil
+	(funcall function face colors frame))
     (if (eq colors t)
 	(invert-face face frame)
       (let (done)
 	(while (and colors (not done))
-	  (if (cdr colors)
-	      ;; If there are more colors to try, catch errors
-	      ;; and set `done' if we succeed.
-	      (condition-case nil
-		  (progn
-		    (if (eq (car colors) t)
-			(invert-face face frame)
-		      (funcall function face (car colors) frame))
-		    (setq done t))
-		(error nil))
-	    ;; If this is the last color, let the error get out if it fails.
-	    ;; If it succeeds, we will exit anyway after this iteration.
-	    (if (eq (car colors) t)
-		(invert-face face frame)
-	      (funcall function face (car colors) frame)))
+	  (if (and (stringp (car colors))
+		   (or (and (not (x-display-color-p))
+			    (not (string= (car colors) "gray")))
+		       (= (x-display-planes) 1)))
+	      nil
+	    (if (cdr colors)
+		;; If there are more colors to try, catch errors
+		;; and set `done' if we succeed.
+		(condition-case nil
+		    (progn
+		      (if (eq (car colors) t)
+			  (invert-face face frame)
+			(funcall function face (car colors) frame))
+		      (setq done t))
+		  (error nil))
+	      ;; If this is the last color, let the error get out if it fails.
+	      ;; If it succeeds, we will exit anyway after this iteration.
+	      (if (eq (car colors) t)
+		  (invert-face face frame)
+		(funcall function face (car colors) frame))))
 	  (setq colors (cdr colors)))))))
 
 ;; If we are already using x-window frames, initialize faces for them.