X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/1c0199050bfa594287f3975aca56fc2a57ba0f66..9569916d94c6c448862d02919e52fc3bfb9b9c8d:/src/xfaces.c diff --git a/src/xfaces.c b/src/xfaces.c index 97a5ae01e3..0a1315d6f0 100644 --- a/src/xfaces.c +++ b/src/xfaces.c @@ -1552,9 +1552,7 @@ the WIDTH times as wide as FACE on FRAME. */) /* This is of limited utility since it works with character widths. Keep it for compatibility. --gerd. */ int face_id = lookup_named_face (f, face, false); - struct face *width_face = (face_id < 0 - ? NULL - : FACE_FROM_ID (f, face_id)); + struct face *width_face = FACE_FROM_ID_OR_NULL (f, face_id); if (width_face && width_face->font) { @@ -3694,7 +3692,7 @@ Default face attributes override any local face attributes. */) if (EQ (face, Qdefault)) { struct face_cache *c = FRAME_FACE_CACHE (f); - struct face *newface, *oldface = FACE_OPT_FROM_ID (f, DEFAULT_FACE_ID); + struct face *newface, *oldface = FACE_FROM_ID_OR_NULL (f, DEFAULT_FACE_ID); Lisp_Object attrs[LFACE_VECTOR_SIZE]; /* This can be NULL (e.g., in batch mode). */ @@ -3777,7 +3775,7 @@ return the font name used for CHARACTER. */) { struct frame *f = decode_live_frame (frame); int face_id = lookup_named_face (f, face, true); - struct face *fface = FACE_OPT_FROM_ID (f, face_id); + struct face *fface = FACE_FROM_ID_OR_NULL (f, face_id); if (! fface) return Qnil; @@ -3786,9 +3784,9 @@ return the font name used for CHARACTER. */) { CHECK_CHARACTER (character); face_id = FACE_FOR_CHAR (f, fface, XINT (character), -1, Qnil); - fface = FACE_FROM_ID (f, face_id); + fface = FACE_FROM_ID_OR_NULL (f, face_id); } - return (fface->font + return ((fface && fface->font) ? fface->font->props[FONT_NAME_INDEX] : Qnil); #else /* !HAVE_WINDOW_SYSTEM */ @@ -4376,7 +4374,7 @@ lookup_face (struct frame *f, Lisp_Object *attr) face = realize_face (cache, attr, -1); #ifdef GLYPH_DEBUG - eassert (face == FACE_FROM_ID (f, face->id)); + eassert (face == FACE_FROM_ID_OR_NULL (f, face->id)); #endif /* GLYPH_DEBUG */ return face->id; @@ -4429,7 +4427,7 @@ lookup_named_face (struct frame *f, Lisp_Object symbol, bool signal_p) { Lisp_Object attrs[LFACE_VECTOR_SIZE]; Lisp_Object symbol_attrs[LFACE_VECTOR_SIZE]; - struct face *default_face = FACE_OPT_FROM_ID (f, DEFAULT_FACE_ID); + struct face *default_face = FACE_FROM_ID_OR_NULL (f, DEFAULT_FACE_ID); if (default_face == NULL) { @@ -4596,11 +4594,12 @@ lookup_derived_face (struct frame *f, Lisp_Object symbol, int face_id, { Lisp_Object attrs[LFACE_VECTOR_SIZE]; Lisp_Object symbol_attrs[LFACE_VECTOR_SIZE]; - struct face *default_face = FACE_FROM_ID (f, face_id); + struct face *default_face; if (!get_lface_attributes (f, symbol, symbol_attrs, signal_p, 0)) return -1; + default_face = FACE_FROM_ID (f, face_id); memcpy (attrs, default_face->lface, sizeof attrs); merge_face_vectors (f, symbol_attrs, attrs, 0); return lookup_face (f, attrs); @@ -4701,7 +4700,7 @@ x_supports_face_attributes_p (struct frame *f, merge_face_vectors (f, attrs, merged_attrs, 0); face_id = lookup_face (f, merged_attrs); - face = FACE_OPT_FROM_ID (f, face_id); + face = FACE_FROM_ID_OR_NULL (f, face_id); if (! face) error ("Cannot make face"); @@ -4971,7 +4970,7 @@ face for italic. */) attrs[i] = Qunspecified; merge_face_ref (f, attributes, attrs, true, 0); - def_face = FACE_OPT_FROM_ID (f, DEFAULT_FACE_ID); + def_face = FACE_FROM_ID_OR_NULL (f, DEFAULT_FACE_ID); if (def_face == NULL) { if (! realize_basic_faces (f)) @@ -5445,7 +5444,7 @@ realize_x_face (struct face_cache *cache, Lisp_Object attrs[LFACE_VECTOR_SIZE]) /* Determine the font to use. Most of the time, the font will be the same as the font of the default face, so try that first. */ - default_face = FACE_OPT_FROM_ID (f, DEFAULT_FACE_ID); + default_face = FACE_FROM_ID_OR_NULL (f, DEFAULT_FACE_ID); if (default_face && lface_same_font_attributes_p (default_face->lface, attrs)) { @@ -6131,7 +6130,7 @@ merge_faces (struct frame *f, Lisp_Object face_name, int face_id, Lisp_Object attrs[LFACE_VECTOR_SIZE]; struct face *base_face; - base_face = FACE_OPT_FROM_ID (f, base_face_id); + base_face = FACE_FROM_ID_OR_NULL (f, base_face_id); if (!base_face) return base_face_id; @@ -6159,7 +6158,7 @@ merge_faces (struct frame *f, Lisp_Object face_name, int face_id, struct face *face; if (face_id < 0) return base_face_id; - face = FACE_OPT_FROM_ID (f, face_id); + face = FACE_FROM_ID_OR_NULL (f, face_id); if (!face) return base_face_id; merge_face_vectors (f, face->lface, attrs, 0); @@ -6279,7 +6278,7 @@ DEFUN ("dump-face", Fdump_face, Sdump_face, 0, 1, 0, doc: /* */) { struct face *face; CHECK_NUMBER (n); - face = FACE_OPT_FROM_ID (SELECTED_FRAME (), XINT (n)); + face = FACE_FROM_ID_OR_NULL (SELECTED_FRAME (), XINT (n)); if (face == NULL) error ("Not a valid face"); dump_realized_face (face);