Subject: Re: bug#20410: 24.5.50; cursor not updated after yank of non-ASCII string from the clipboard

From: YAMAMOTO Mitsuharu <[email-masked]>
Date: Sat, 25 Apr 2015 18:49:56 +0900

>>>>> On Fri, 24 Apr 2015 09:58:28 +0300, Eli Zaretskii <[email-masked]> said:

>> > What does "C-x =" report before and after step 5?
>> 
>> It says
>> 
>> Char: C-j (10, #o12, #xa) point=191 of 192 (99%) column=0
>> 
>> So, the cursor is actually moved internally, but display is not
>> updated accordingly.

> You show only one result of "C-x =", so it's hard to interpret it,
> especially since you didn't show what was displayed after the paste.

I thought it was clear from the screenshot attached in the first mail.
The point value in the output of "C-x =" indicates that the cursor is
between the initial message of the *scratch* buffer and the yanked
text.

(length ";; This buffer is for notes you don't want to save, and for Lisp evaluation.
;; If you want to create a file, visit that file with C-x C-f,
;; then enter the text in that file's own buffer.
")
=> 190

> Does the cursor move to the correct place if you type C-l or invoke
> redraw-display, after performing the recipe?

The cursor appears.  But the cursor at the old position is not
cleared.  See the attached screenshot.

> In any case, cursor motion and display are unrelated to pasting from
> the clipboard, so I wonder whether you could reproduce this without
> the paste, just by typing that character.  I also wonder what does all
> this have to do with expose events, as mentioned in your original
> report.  Anything that I could reproduce here and debug it would be
> helpful.

I could reproduce it without yank.

1. Create a file named a.el with the following contents:

  (global-set-key "a" (string #x3042))	; HIRAGANA LETTER A

2. $ emacs -Q -D -l a.el &
3. Type "a" to insert a Japanese character.
4. Type "C-p" to move the cursor upward.

Display is updated correctly until Step 3.  But Step 4 does not change
the display from the previous one.

As for expose events, I suspect the current matrices get corrupted,
because the result of git bisect implies that it has something to do
with adjustment of glyph matrices triggered by font loading.

				     YAMAMOTO Mitsuharu
				[email-masked]