changeset 19686:a6ea17425718

(facemenu-get-face): Just warn when given an undefined color, no error, still return face.
author Richard M. Stallman <rms@gnu.org>
date Tue, 02 Sep 1997 19:59:11 +0000
parents 892072fc83d6
children c510bee23510
files lisp/facemenu.el
diffstat 1 files changed, 20 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/facemenu.el	Tue Sep 02 19:58:56 1997 +0000
+++ b/lisp/facemenu.el	Tue Sep 02 19:59:11 1997 +0000
@@ -597,24 +597,27 @@
 
 (defun facemenu-get-face (symbol)
   "Make sure FACE exists.
-If not, it is created.  If it is created and is of the form `fg:color', then
-set the foreground to that color. If of the form `bg:color', set the
-background.  In any case, add it to the appropriate menu.  Returns the face,
-or nil if given a bad color."
-  (if (or (internal-find-face symbol)
-	  (let* ((face (make-face symbol))
-		 (name (symbol-name symbol))
+If not, create it and add it to the appropriate menu.  Return the symbol.
+
+If a window system is in use, and this function creates a face named
+`fg:color', then it sets the foreground to that color.  Likewise, `bg:color'
+means to set the background.  In either case, if the color is undefined,
+no color is set and a warning is issued."
+  (let ((name (symbol-name symbol))
+	foreground)
+    (cond ((internal-find-face symbol))
+	  ((and window-system
+		(or (setq foreground (string-match "^fg:" name))
+		    (string-match "^bg:" name)))
+	   (let ((face (make-face symbol))
 		 (color (substring name 3)))
-	    (cond ((string-match "^fg:" name)
-		   (set-face-foreground face color)
-		   (and window-system
-			(x-color-defined-p color)))
-		  ((string-match "^bg:" name)
-		   (set-face-background face color)
-		   (and window-system
-			(x-color-defined-p color)))
-		  (t))))
-      symbol))
+	     (if (x-color-defined-p color)
+		 (if foreground
+		     (set-face-foreground face color)
+		   (set-face-background face color))
+	       (message "Color \"%s\" undefined" color))))
+	  (t (make-face symbol))))
+  symbol)
 
 (defun facemenu-add-new-face (face)
   "Add a FACE to the appropriate Face menu.