# HG changeset patch # User Kim F. Storm # Date 1151063436 0 # Node ID ee60680fee73bad14e89027e192c978cddd38136 # Parent 47574cbb5eb680d29ff35c46139ab89e4ab8f49a (handle_composition_prop): Push iterator on stack. (set_iterator_to_next): Pop iterator at end of composition. diff -r 47574cbb5eb6 -r ee60680fee73 src/xdisp.c --- a/src/xdisp.c Fri Jun 23 11:50:08 2006 +0000 +++ b/src/xdisp.c Fri Jun 23 11:50:36 2006 +0000 @@ -4487,6 +4487,8 @@ } return HANDLED_RECOMPUTE_PROPS; } + + push_it (it); it->method = GET_FROM_COMPOSITION; it->cmp_id = id; it->cmp_len = COMPOSITION_LENGTH (prop); @@ -5791,19 +5793,19 @@ case GET_FROM_COMPOSITION: xassert (it->cmp_id >= 0 && it->cmp_id < n_compositions); - if (STRINGP (it->string)) + xassert (it->sp > 0); + pop_it (it); + if (it->method == GET_FROM_STRING) { IT_STRING_BYTEPOS (*it) += it->len; IT_STRING_CHARPOS (*it) += it->cmp_len; - it->method = GET_FROM_STRING; it->object = it->string; goto consider_string_end; } - else + else if (it->method == GET_FROM_BUFFER) { IT_BYTEPOS (*it) += it->len; IT_CHARPOS (*it) += it->cmp_len; - it->method = GET_FROM_BUFFER; it->object = it->w->buffer; } break;