]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix face merging for display strings broken by a recent commit
authorEli Zaretskii <eliz@gnu.org>
Mon, 16 Dec 2019 15:43:30 +0000 (17:43 +0200)
committerEli Zaretskii <eliz@gnu.org>
Mon, 16 Dec 2019 15:43:30 +0000 (17:43 +0200)
* 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
src/xfaces.c

index 4ddde1be717ca967d104c792d1108d965bef5758..08c6927052cd775b864ce416e4186583bb74bda6 100644 (file)
@@ -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)
index 26fd3631f90543023ff11f54b599ede14f7829ff..c5515e71512db47a61c428936e942be4c35c3383 100644 (file)
@@ -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))