This is the severalth time I've seen an attempt to hook up win32 Unix sockets to host Unix sockets. Which I think is reasonable in general, but I'm also not exactly thrilled about accepting this code without any tests whatsoever. Unfortunately, last time I tried to write tests for Unix sockets, I started triggering kernel panics in Windows. Maybe the situation has improved since then?
> Of particular note is the difficulty in handling `sun_path`. Most of the functions that allow for translating Windows paths to Unix paths are not accessible from ws2_32.
I'm not sure I understand. wine_nt_to_unix_file_name() should be accessible from either side.
Although it's not quite clear to me that ws2_32 is the right place to do that translation; we may want to do it in ntdll instead.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2786#note_32536
On Wed May 10 14:35:28 2023 +0000, Byeongsik Jeon wrote:
> I tested a simple test program with spy++. IMN_SETOPENSTATUS is caught
> in the default ime window and ime ui wndow, not in the application window.
> What is unusual is that the value of lparam is not zero, but has a
> different value each time it occurs. Also, in my tests, wparam ==
> IMN_SETOPENSTATUS | IMN_CHANGECANDIATE.
> My guess is that it's not caused by ImmSetOpenStatus, but somewhere else.
Sorry about that. I analysed the test results incorrectly.
While testing ImmNotifyIME: CPS_COMPLETE, I was not able to see IMN_SETOPENSTATUS in the application windproc, so I also looked at the default ime window and ime ui window. I made the silly mistake of analysing WM_IME_NOTIFY:wparam=0x11 as IMN_SETOPENSTATUS | IMN_CHANGECANDIATE.
It looks like ImmSetOpenStatus is not called on CPS_COMPLETE, CPS_CANCEL. I would be grateful if you could confirm.
I tested it on Japanese and Korean MS IME.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2769#note_32522
--
v2: gdi32/tests: Use win_skip() for missing APIs.
iphlpapi/tests: Use win_skip() for missing APIs.
sti/tests: Use win_skip() for missing APIs.
user32/tests: Use win_skip() for missing APIs.
ntdll/tests: Use win_skip() for missing APIs.
wtsapi32/tests: Use win_skip() for missing APIs.
msvcrt/tests: Use win_skip() for missing APIs.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2785
This fixes the behavior in notepad, with Japanese ibus-mozc IME, when typing "NIHONGO-SPACE-NO", or with Korean ibus-hangul when typing "GA-NA-DA". The latter still has an issue with the last character not appearing in the a composition but I believe it is unrelated to comctl32 and will be fixed by some future imm32 changes.
--
v4: user32/edit: Delegate composition string rendering to the IME UI.
user32/edit: Notify IME on position, format_rect and font changes.
comctl32/edit: Delegate composition string rendering to the IME UI.
comctl32/edit: Notify IME on caret position, format_rect and font changes.
imm32: Use DrawTextW to wrap IME composition string.
imm32: Update the IME composition window position after drawing.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2743