If you're (at least under Windows, other OSes not tested) use a US International keyboard setting in openMSX 0.10.1 and type: PRINT"HI"<enter>, you also simply get that typed in the MSX.
But after commit 7bd9111ba394ac0942cec6ca6925edcc8a1bcdc8 (RTScheduler), this doesn't work properly anymore, you get:
PRINT""OI"" (and cursor is on the same line still)</enter>
In other words, as of that commit, the compose suppression (type "a to get ä) is not working anymore.
Originally reported on IRC:
* Guest438976 (4daae7ae@gateway/web/freenode/ip.77.170.231.174) has joined #openmsx
<Guest438976> Hi, i have a problem with keyboard in openmsx 0.11.0... if i type a " (Shift + ' ) ... the next caracter i type will allso be a " ... very strange
<Guest438976> This problem does not happen in openmsx 0.10.1 ... i think it is a keyboard setting thing
<Quibus> which machine are you emulating?
<grauw> sounds like an IME issue
<Guest438976> nms 8250 Philips
<Quibus> on which OS?
<Guest438976> it happens in windows 7 .. allso in windows 8 ... in verion 0.10.1 is works normal on same machine ?
<Quibus> Are you sure? Sounds like you set your input to US International in Windows
<Quibus> Whcih keyboard setting in Windows are you using?
<Guest438976> Nederlands (nederlands) - Verenigde staten (internationaal )
<Quibus> Yes, so it's US International
<Guest438976> yes
<grauw> try changing it and see if the problem persists
<Quibus> The thing is with US International that it's doing weird stuff when you type " and e to get an ë
<Guest438976> strange thing that it works OK in version 0.10.1 and not in 0.11.0
<Quibus> I really doubt that, this problem is known for a very long time
<grauw> you may have unknowingly switched from Dutch to US International (alt-shift does that I believe) and attributed the difference to the openMSX upgrade you may have done at the same time
<grauw> have you tried installing 10.1 again and does the problem disappear?
<Guest438976> installed 0.10.1 again .. problem is gone :S
<Quibus> keyboard settings in Windows are the same?
<Guest438976> yes did not change it
And indeed, it's easily reproducible and I could find the revision that broke it with bisecting. (On Windows XP.)
Diff:
From that patch, this is the exact change that breaks it, after incrementally applying it:
We have no clue why this would break this particular behaviour...
I've been testing to see what happens with the simplest test: typing "a. This gives "a in openMSX before it broke and "ä after it broke (of course with the US-International layout only, it works fine (as "a) with US-English).
This is the logging of kbd_trace_keypresses and the SDL_KEYUP and SDL_KEYDOWN conversions in InputEventGenerator::handle (mixed), for US-English, AFTER it broke:
and this for the US-International layout:
Notice the difference in unicode output, with the same unicode input!
This is the same test with the version where I reverted that patch from last post:
US-English:
US-International:
So, without the patch, all logging looks like US-English...
In OS-X, openMSX-0.11.0 support for US-International keeps as broken as it was (no pun/offense intended).
The same dead key problem reported on bug #192 way back into 2005 (on Linux back then) still happens.
The worst part is that when I type the [print "hi"] example, some keys get stuck in the emulator side and keep being repeated until I press them again (sometime multiple times).
The result here for typing the test in lowercase was:
print""Hih"hhhhhhhhhhhhhhhhhhhhhhhhhhh"hhhhhhhhhhhhhhhhhhhhhhhhh
Please note that the h's that come after the i letter are produced by the h key being stuck. The uppercase H was also produced by the bug getting confused by the SHIFT state.
Last edit: SD Snatcher 2015-01-03