On Fri, Mar 8, 2019 at 7:36 AM Rin Okuyama <rokuyama.rk%gmail.com@localhost <mailto:rokuyama.rk%gmail.com@localhost>> wrote:
On 2019/03/08 22:53, Martin Husemann wrote:
> On Fri, Mar 08, 2019 at 10:41:51PM +0900, Rin Okuyama wrote:
>
>> I've found that this is because curses uses a global variable "state":
>> https://nxr.netbsd.org/xref/src/lib/libcurses/getch.c#50
>> https://nxr.netbsd.org/xref/src/lib/libcurses/get_wch.c#52
>
> Can both variants of inkey() co-exist?
> I would just make both decalarations static.
Hmm, I could not find a description in SUSv4 on what happens if both
single- and wide-character interfaces are used in the same terminal.
I suppose that it is not a best practice, but the question is
whether there are applications depending on the current behavior.
"state" was turned into global when wide curses was merged:
http://cvsweb.netbsd.org/bsdweb.cgi/src/lib/libcurses/getch.c#rev1.48
Brett, Ruibiao, do you remember why?
Thanks,
rin
I can't remember if we had discussed the situation in which we have both single- and wide-characters in the same terminal.
If we are certain that it won't happen, I agree that we can go ahead with removing the references of "state" in the wide-character code, and making it static in getch.c