From 1e240a0ecdcf0eb4653ba57f8daa138ba2a2aab6 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Mon, 16 Dec 2019 17:43:30 +0200 Subject: [PATCH] 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) --- src/xdisp.c | 2 +- src/xfaces.c | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/src/xdisp.c b/src/xdisp.c index 4ddde1be717..08c6927052c 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -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) diff --git a/src/xfaces.c b/src/xfaces.c index 26fd3631f90..c5515e71512 100644 --- a/src/xfaces.c +++ b/src/xfaces.c @@ -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)) -- 2.39.2