aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGerd Moellmann1999-08-06 21:08:08 +0000
committerGerd Moellmann1999-08-06 21:08:08 +0000
commit286bcbc9718086ce5bac060f5724238954177bad (patch)
tree0336e31dd22ab5e8d1a05276451b74b311249f6f /src
parent74fa21200af7dcbf95c894c0cd1a4c2c166824a9 (diff)
downloademacs-286bcbc9718086ce5bac060f5724238954177bad.tar.gz
emacs-286bcbc9718086ce5bac060f5724238954177bad.zip
(set_iterator_to_next): After delivering a character
from a display vector, restore face and charset to what they were before the display vector was processed.
Diffstat (limited to 'src')
-rw-r--r--src/xdisp.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/xdisp.c b/src/xdisp.c
index 4dc594955c5..28a6299836a 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -3459,8 +3459,16 @@ set_iterator_to_next (it)
3459 Advance in the display table definition. Reset it to null if 3459 Advance in the display table definition. Reset it to null if
3460 end reached, and continue with characters from buffers/ 3460 end reached, and continue with characters from buffers/
3461 strings. */ 3461 strings. */
3462 struct face *face;
3463
3462 ++it->current.dpvec_index; 3464 ++it->current.dpvec_index;
3465
3466 /* Restore face and charset of the iterator to what they were
3467 before the display vector entry (these entries may contain
3468 faces, and of course characters of different charsets). */
3463 it->face_id = it->saved_face_id; 3469 it->face_id = it->saved_face_id;
3470 it->charset = FACE_FROM_ID (it->f, it->face_id)->charset;
3471
3464 if (it->dpvec + it->current.dpvec_index == it->dpend) 3472 if (it->dpvec + it->current.dpvec_index == it->dpend)
3465 { 3473 {
3466 if (it->s) 3474 if (it->s)