]> git.eshelyaron.com Git - emacs.git/commitdiff
(face-try-color-list): Don't rely on errors from using
authorRichard M. Stallman <rms@gnu.org>
Tue, 15 Feb 1994 22:38:00 +0000 (22:38 +0000)
committerRichard M. Stallman <rms@gnu.org>
Tue, 15 Feb 1994 22:38:00 +0000 (22:38 +0000)
a color that the server can't really support.

lisp/faces.el

index 178a07ea3c228250b6640ff8eadad0bd16cc8ca7..0bc1ed0a777ee59aa30e7e8d6986de246c57b9a4 100644 (file)
@@ -862,26 +862,34 @@ selected frame."
 ;; 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.