changeset 59457:fae5995f1816

(get_next_display_element, next_element_from_display_vector): Don't lookup lface_id from display table glyphs here; instead use merge_faces to merge the lisp face id into current face.
author Kim F. Storm <storm@cua.dk>
date Mon, 10 Jan 2005 13:34:53 +0000
parents 08a75ace96a6
children df565ffe7247
files src/xdisp.c
diffstat 1 files changed, 11 insertions(+), 21 deletions(-) [+]
line wrap: on
line diff
--- a/src/xdisp.c	Mon Jan 10 13:30:46 2005 +0000
+++ b/src/xdisp.c	Mon Jan 10 13:34:53 2005 +0000
@@ -4978,18 +4978,15 @@
 		      if (lface_id)
 			{
 			  g = FAST_GLYPH_CHAR (g);
-			  /* The function returns -1 if lface_id is invalid.  */
-			  face_id = ascii_face_of_lisp_face (it->f, lface_id);
-			  if (face_id >= 0)
-			    face_id = merge_into_realized_face (it->f, Qnil,
-								face_id, it->face_id);
+			  face_id = merge_faces (it->f, Qt, lface_id,
+						 it->face_id);
 			}
 		    }
 		  else
 		    {
 		      /* Merge the escape-glyph face into the current face.  */
-		      face_id = merge_into_realized_face (it->f, Qescape_glyph,
-							  0, it->face_id);
+		      face_id = merge_faces (it->f, Qescape_glyph, 0,
+					     it->face_id);
 		      g = '^';
 		    }
 
@@ -5009,18 +5006,15 @@
 		  if (lface_id)
 		    {
 		      escape_glyph = FAST_GLYPH_CHAR (escape_glyph);
-		      /* The function returns -1 if lface_id is invalid.  */
-		      face_id = ascii_face_of_lisp_face (it->f, lface_id);
-		      if (face_id >= 0)
-			face_id = merge_into_realized_face (it->f, Qnil,
-							    face_id, it->face_id);
+		      face_id = merge_faces (it->f, Qt, lface_id,
+					     it->face_id);
 		    }
 		}
 	      else
 		{
 		  /* Merge the escape-glyph face into the current face.  */
-		  face_id = merge_into_realized_face (it->f, Qescape_glyph,
-						      0, it->face_id);
+		  face_id = merge_faces (it->f, Qescape_glyph, 0,
+					 it->face_id);
 		  escape_glyph = '\\';
 		}
 
@@ -5309,13 +5303,9 @@
       else
 	{
 	  int lface_id = FAST_GLYPH_FACE (g);
-	  if (lface_id)
-	    {
-	      /* The function returns -1 if lface_id is invalid.  */
-	      int face_id = ascii_face_of_lisp_face (it->f, lface_id);
-	      if (face_id >= 0)
-		it->face_id = face_id;
-	    }
+	  if (lface_id > 0)
+	    it->face_id = merge_faces (it->f, Qt, lface_id,
+				       it->saved_face_id);
 	}
     }
   else