diff options
author | Richard M. Stallman <rms@gnu.org> | 1997-09-02 19:59:11 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 1997-09-02 19:59:11 +0000 |
commit | 0351bce7c113e57bc817c8f99cb06e4f86a490cc (patch) | |
tree | a4a88f8b70febd212e7c4477000717ce9a647e9d /lisp/facemenu.el | |
parent | 83e94c97e061d8c794b1475908342be2c4c13425 (diff) | |
download | emacs-0351bce7c113e57bc817c8f99cb06e4f86a490cc.tar.gz |
(facemenu-get-face): Just warn when given an
undefined color, no error, still return face.
Diffstat (limited to 'lisp/facemenu.el')
-rw-r--r-- | lisp/facemenu.el | 37 |
1 files changed, 20 insertions, 17 deletions
diff --git a/lisp/facemenu.el b/lisp/facemenu.el index 35b7bb5a6fa..ba395e12930 100644 --- a/lisp/facemenu.el +++ b/lisp/facemenu.el @@ -597,24 +597,27 @@ use the selected frame. If t, then the global, non-frame faces are used." (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. |