[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Need help to debug bugs(#22989, #23412)
From: |
Eli Zaretskii |
Subject: |
Re: Need help to debug bugs(#22989, #23412) |
Date: |
Sun, 27 Oct 2019 07:43:04 +0200 |
> From: HaiJun Zhang <address@hidden>
> Date: Sun, 27 Oct 2019 03:10:56 +0000
>
> They are related with the Chinese or Japanese input method on macOS. The bug
> appeared after this
> commit:
> http://git.savannah.gnu.org/cgit/emacs.git/commit/?h=emacs-25.1&id=9e77c1b7bcfd0807be7fe67daf73c2320e864309.
>
>
> The workaround is setting `redisplay-dont-pause’ to nil. But this variable is
> obsolete since 24.5.
If your analysis is correct, then maybe input methods (or their users,
if you mean a non-Emacs input method) should set redisplay-dont-pause
nil, and we should un-obsolete that variable.
But the question is: do both events you mention arrive with any time
interval between them, or do they arrive together? IOW, the issue is
about timing, not about the number of events.
> I think the cause may be like this:
> On every char inputting, the input method triggers two events to emacs. The
> first event causes emacs to
> redisplay the window with cursor at the original position. The second event
> causes emacs to redisplay the
> window with cursor at the new position. The two redisplay make the cursor
> flicker. The problem is the first
> redisplay which is not wanted.
>
> If `redisplay-dont-pause’ is t, the first redisplay may be cancelled or
> merged with the second one?
>
> How to debug this problem? I want to first print the value of the variable
> `c’ in read_char() in keybord.c. Its type
> is Lisp_Object. How to print its value?
You mean, print in C? You can use the safe_debug_print function.