]> git.eshelyaron.com Git - emacs.git/commitdiff
Avoid losing composition state in handle_stop_backwards
authorPip Cet <pipcet@gmail.com>
Sun, 31 May 2020 16:58:19 +0000 (16:58 +0000)
committerPip Cet <pipcet@gmail.com>
Tue, 2 Jun 2020 22:33:48 +0000 (22:33 +0000)
* src/xdisp.c (handle_stop_backwards): Save composition iterator state
across our forward scan.  (Bug#41626)

src/xdisp.c

index 0f06a38d4058bc4ba453282f4eb2fe8ba65d2ac3..f65c3ebcd2f05bc607a1ac7fead5bb56e78e7fec 100644 (file)
@@ -8692,6 +8692,7 @@ handle_stop_backwards (struct it *it, ptrdiff_t charpos)
   ptrdiff_t where_we_are = (bufp ? IT_CHARPOS (*it) : IT_STRING_CHARPOS (*it));
   struct display_pos save_current = it->current;
   struct text_pos save_position = it->position;
+  struct composition_it save_cmp_it = it->cmp_it;
   struct text_pos pos1;
   ptrdiff_t next_stop;
 
@@ -8719,6 +8720,7 @@ handle_stop_backwards (struct it *it, ptrdiff_t charpos)
   it->bidi_p = true;
   it->current = save_current;
   it->position = save_position;
+  it->cmp_it = save_cmp_it;
   next_stop = it->stop_charpos;
   it->stop_charpos = it->prev_stop;
   handle_stop (it);