Fix face merging for display strings broken by a recent commit
* src/xfaces.c (face_at_string_position): Revert the last change, as it cannot possibly solve bug#38563. * src/xdisp.c (face_at_pos): Fix a typo made during last change here, which broke face merging for display strings. (Bug#38633)
This commit is contained in:
@@ -4243,7 +4243,7 @@ face_at_pos (const struct it *it, enum lface_attribute_index attr_filter)
|
||||
the display string do. This sounds like a design bug,
|
||||
but Emacs always did that since v21.1, so changing that
|
||||
might be a big deal. */
|
||||
base_face_id = it->string_from_display_prop_p
|
||||
base_face_id = it->string_from_prefix_prop_p
|
||||
? (!NILP (Vface_remapping_alist)
|
||||
? lookup_basic_face (it->w, it->f, DEFAULT_FACE_ID)
|
||||
: DEFAULT_FACE_ID)
|
||||
|
||||
@@ -6446,10 +6446,6 @@ face_at_string_position (struct window *w, Lisp_Object string,
|
||||
|
||||
/* Begin with attributes from the base face. */
|
||||
memcpy (attrs, base_face->lface, sizeof attrs);
|
||||
/* Reset the attribute of the base face used as the filter, because
|
||||
otherwise there's no way for faces to be merged to countermand that. */
|
||||
if (EQ (attrs[attr_filter], Qt))
|
||||
attrs[attr_filter] = Qnil;
|
||||
|
||||
/* Merge in attributes specified via text properties. */
|
||||
if (!NILP (prop))
|
||||
|
||||
Reference in New Issue
Block a user