https://bugs.winehq.org/show_bug.cgi?id=56902
--- Comment #5 from mika margers.roked@inbox.lv --- (In reply to Eric Pouech from comment #3)
IIRC, there's a fix in Wine 9.11 that enhances support of diacritics for console (eg. on French keyboard, you need to key ^e to get ê).
Not really solved yet..
Upon your request I investigated this problem as much as it is possible from my perspective.
Windows api function in question (Pascal deceleration): function ReadConsoleInput(hConsoleInput: THandle; var lpBuffer: TInputRecord; nLength: DWORD; var lpNumberOfEventsRead: DWORD): BOOL; external 'kernel32' name 'ReadConsoleInputA';
Keyboard layout (Latvian (apostrophe) (third party driver)) Windows Vista output for input sequence: a'a keyDown 00000001 0001 keycode 0041 scancdoe 001E wchar 0061 keystate 00000000 61 a 00000000 0001 keycode 0041 scancdoe 001E wchar 0061 keystate 00000000 61 a 00000001 0001 keycode 00DE scancdoe 0028 wchar 0000 keystate 00000000 00 00000000 0001 keycode 00DE scancdoe 0000 wchar 0027 keystate 00000000 27 ' 00000000 0001 keycode 00DE scancdoe 0028 wchar 0027 keystate 00000000 27 ' 00000001 0001 keycode 0041 scancdoe 001E wchar 0161 keystate 00000000 61 a 00000000 0001 keycode 0041 scancdoe 001E wchar 0061 keystate 00000000 61 a
Keyboard layout in linux (Latvian (apostrophe)) Wine 9.12 output for input sequence: a'a keyDown 00000001 0001 keycode 0041 scancdoe 001E wchar 0061 keystate 00000020 61 a 00000000 0001 keycode 0041 scancdoe 001E wchar 0061 keystate 00000020 61 a 00000001 0001 keycode 00DE scancdoe 0060 wchar 0000 keystate 00000020 00 00000000 0001 keycode 00DE scancdoe 0060 wchar 0000 keystate 00000020 00 00000001 0001 keycode 0041 scancdoe 001E wchar 0161 keystate 00000020 61 a 00000000 0001 keycode 0041 scancdoe 001E wchar 0161 keystate 00000020 61 a
Keyboard layout (Latvian (tilde)) Wine 9.12 output for input sequence: a`a keyDown 00000001 0001 keycode 0041 scancdoe 001E wchar 0061 keystate 00000020 61 a 00000000 0001 keycode 0041 scancdoe 001E wchar 0061 keystate 00000020 61 a 00000001 0001 keycode 00C0 scancdoe 0060 wchar 0000 keystate 00000020 00 00000000 0001 keycode 00C0 scancdoe 0060 wchar 0000 keystate 00000020 00 00000001 0001 keycode 0041 scancdoe 001E wchar 0161 keystate 00000020 61 a 00000000 0001 keycode 0041 scancdoe 001E wchar 0161 keystate 00000020 61 a
Don't know where from scancode x60 is coming (for silent Apostrophe and Tilde the same), but that couses a problem. Why isn't kept scancode x28 for Apostrophe and x29 for Tilde? fp.exe converts windows style scnacodes to dos style scnacodes. Ctrl+F3 scancode in dos is x60. In fp there is function for Ctrl+F3 and silent key functionality is lost.