This comes from behavioral study of Windows, which doesn't seem to check if the
lock is actually exclusively held, and just simply decrement the value stored
in the lock.
This fixes a dead lock which prevents WeCom from starting up.
--
v2: ntdll: Handle invalid locks in ReleaseSRWLockExclusive.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3504
OPEN_MAX is 10240, which is usually lower than the kern.maxfilesperproc sysctl
value. Said value from sysctl works on Mojave to Monterey (and most likely
earlier Mac OS versions, but I can't test). Since Big Sur we can successfully
set the reported rlim_max value.
--
v2: ntdll: Try to raise the file limit above OPEN_MAX on MacOS.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3503
This comes from behavioral study of Windows, which doesn't seem to check if the
lock is actually exclusively held, and just simply decrement the value stored
in the lock.
This fixes a dead lock which prevents WeCom from starting up.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3504
OPEN_MAX is 10240, which is usually lower than the kern.maxfilesperproc sysctl
value. Said value from sysctl works on Mojave to Monterey (and most likely
earlier Mac OS versions, but I can't test). Since Big Sur we can successfully
set the reported rlim_max value.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3503
On Thu Aug 3 07:27:22 2023 +0000, Hans Leidekker wrote:
> Can you give an example where wprintf() doesn't do the right thing?
Printing a non-english username.
`wprintf()` by default doesn't print non-english letters at all (I remember testing various system LC_ALL variants, like `C.UTF-8`, `en_US.UTF-8`, `ru_RU.UTF-8`, and none of that took an effect).
With `setlocale(LC_ALL, something)` it does print the letters, but
1. Only of a language that is set, so I presume it chooses something like a `cp1251` equivalent (an 8-bit language-specific encoding?).
2. It isn't used in any of other wine programs, while that `ConsoleWriteW()` hack is used at least in present whoami and xcopy implementations (probably more).
This implementation, in turn, behaves exactly like the Windows whoami.
Also when testing the `klist` I noticed that on Windows it was printing `?` signs instead of `Server` string (somehow hooked up a translation?), so `ConsoleWriteW()` seems to be necessary for any translatable console programs if one wants to avoid `setlocale()`.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3473#note_41167