diff options
| author | Kim F. Storm | 2005-01-10 13:34:53 +0000 |
|---|---|---|
| committer | Kim F. Storm | 2005-01-10 13:34:53 +0000 |
| commit | 539f1217675895e849df3cee5c95a9ea4e36071e (patch) | |
| tree | 6393cd9bbc3651a538312dafe0ac9c8432517bbe | |
| parent | a2858aae1cac104ee18fe557089a03c2a0003337 (diff) | |
| download | emacs-539f1217675895e849df3cee5c95a9ea4e36071e.tar.gz emacs-539f1217675895e849df3cee5c95a9ea4e36071e.zip | |
(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.
| -rw-r--r-- | src/xdisp.c | 32 |
1 files changed, 11 insertions, 21 deletions
diff --git a/src/xdisp.c b/src/xdisp.c index 77f12166088..600e01a13e1 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -4978,18 +4978,15 @@ get_next_display_element (it) | |||
| 4978 | if (lface_id) | 4978 | if (lface_id) |
| 4979 | { | 4979 | { |
| 4980 | g = FAST_GLYPH_CHAR (g); | 4980 | g = FAST_GLYPH_CHAR (g); |
| 4981 | /* The function returns -1 if lface_id is invalid. */ | 4981 | face_id = merge_faces (it->f, Qt, lface_id, |
| 4982 | face_id = ascii_face_of_lisp_face (it->f, lface_id); | 4982 | it->face_id); |
| 4983 | if (face_id >= 0) | ||
| 4984 | face_id = merge_into_realized_face (it->f, Qnil, | ||
| 4985 | face_id, it->face_id); | ||
| 4986 | } | 4983 | } |
| 4987 | } | 4984 | } |
| 4988 | else | 4985 | else |
| 4989 | { | 4986 | { |
| 4990 | /* Merge the escape-glyph face into the current face. */ | 4987 | /* Merge the escape-glyph face into the current face. */ |
| 4991 | face_id = merge_into_realized_face (it->f, Qescape_glyph, | 4988 | face_id = merge_faces (it->f, Qescape_glyph, 0, |
| 4992 | 0, it->face_id); | 4989 | it->face_id); |
| 4993 | g = '^'; | 4990 | g = '^'; |
| 4994 | } | 4991 | } |
| 4995 | 4992 | ||
| @@ -5009,18 +5006,15 @@ get_next_display_element (it) | |||
| 5009 | if (lface_id) | 5006 | if (lface_id) |
| 5010 | { | 5007 | { |
| 5011 | escape_glyph = FAST_GLYPH_CHAR (escape_glyph); | 5008 | escape_glyph = FAST_GLYPH_CHAR (escape_glyph); |
| 5012 | /* The function returns -1 if lface_id is invalid. */ | 5009 | face_id = merge_faces (it->f, Qt, lface_id, |
| 5013 | face_id = ascii_face_of_lisp_face (it->f, lface_id); | 5010 | it->face_id); |
| 5014 | if (face_id >= 0) | ||
| 5015 | face_id = merge_into_realized_face (it->f, Qnil, | ||
| 5016 | face_id, it->face_id); | ||
| 5017 | } | 5011 | } |
| 5018 | } | 5012 | } |
| 5019 | else | 5013 | else |
| 5020 | { | 5014 | { |
| 5021 | /* Merge the escape-glyph face into the current face. */ | 5015 | /* Merge the escape-glyph face into the current face. */ |
| 5022 | face_id = merge_into_realized_face (it->f, Qescape_glyph, | 5016 | face_id = merge_faces (it->f, Qescape_glyph, 0, |
| 5023 | 0, it->face_id); | 5017 | it->face_id); |
| 5024 | escape_glyph = '\\'; | 5018 | escape_glyph = '\\'; |
| 5025 | } | 5019 | } |
| 5026 | 5020 | ||
| @@ -5309,13 +5303,9 @@ next_element_from_display_vector (it) | |||
| 5309 | else | 5303 | else |
| 5310 | { | 5304 | { |
| 5311 | int lface_id = FAST_GLYPH_FACE (g); | 5305 | int lface_id = FAST_GLYPH_FACE (g); |
| 5312 | if (lface_id) | 5306 | if (lface_id > 0) |
| 5313 | { | 5307 | it->face_id = merge_faces (it->f, Qt, lface_id, |
| 5314 | /* The function returns -1 if lface_id is invalid. */ | 5308 | it->saved_face_id); |
| 5315 | int face_id = ascii_face_of_lisp_face (it->f, lface_id); | ||
| 5316 | if (face_id >= 0) | ||
| 5317 | it->face_id = face_id; | ||
| 5318 | } | ||
| 5319 | } | 5309 | } |
| 5320 | } | 5310 | } |
| 5321 | else | 5311 | else |