Mercurial > emacs
changeset 31519:5a14247e8e26
(Finternal_set_lisp_face_attribute): Minor thinko.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Sat, 09 Sep 2000 00:18:25 +0000 |
parents | 1594b23da757 |
children | f9d2d484e1e2 |
files | src/xfaces.c |
diffstat | 1 files changed, 10 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/src/xfaces.c Fri Sep 08 22:17:17 2000 +0000 +++ b/src/xfaces.c Sat Sep 09 00:18:25 2000 +0000 @@ -3681,12 +3681,11 @@ { if (!UNSPECIFIEDP (value)) { - Lisp_Object test = Qnil; - - if (!EQ (face, Qdefault)) - /* The default face must have an absolute size, otherwise, we do - a test merge with a random height to see if VALUE's ok. */ - test = merge_face_heights (value, make_number(10), Qnil, Qnil); + Lisp_Object test = + (EQ (face, Qdefault) ? value : + /* The default face must have an absolute size, otherwise, we do + a test merge with a random height to see if VALUE's ok. */ + merge_face_heights (value, make_number(10), Qnil, Qnil)); if (!INTEGERP(test) || XINT(test) <= 0) signal_error ("Invalid face height", value); @@ -4571,13 +4570,16 @@ Lisp_Object global_lface, local_lface, *gvec, *lvec; CHECK_LIVE_FRAME (frame, 1); - global_lface = lface_from_face_name (NULL, face, 1); local_lface = lface_from_face_name (XFRAME (frame), face, 0); if (NILP (local_lface)) local_lface = Finternal_make_lisp_face (face, frame); - /* Make every specified global attribute override the local one. */ + /* Make every specified global attribute override the local one. + BEWARE!! This is only used from `face-set-after-frame-default' where + the local frame is defined from default specs in `face-defface-spec' + and those should be overridden by global settings. Hence the strange + "global before local" priority. */ lvec = XVECTOR (local_lface)->contents; gvec = XVECTOR (global_lface)->contents; for (i = 1; i < LFACE_VECTOR_SIZE; ++i)