Alexandre Julliard
6482ce7666
msvcrt: Enable multi-thread locking by default.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-19 21:23:21 +01:00
Piotr Caban
216b9cb080
msvcrt: Lock global locale in _get_current_locale.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-18 22:27:51 +01:00
Chip Davis
df2b13fa77
msvcrt: Increment refcounts for all locale data in _get_current_locale().
...
Signed-off-by: Chip Davis <cdavis@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-18 22:27:51 +01:00
Piotr Caban
16598c2af6
msvcrt: Simplify category checks in create_locinfo.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-18 22:27:51 +01:00
Chip Davis
f248221870
msvcrt: Swap the threadlocinfo pointers in setlocale().
...
Do this instead of swapping their contents. This way, the result of
_get_current_locale(), which references the current threadlocinfo, won't
change after a setlocale() call.
Signed-off-by: Chip Davis <cdavis@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-18 22:27:51 +01:00
Chip Davis
5d07f809a0
ucrtbase: Sync __lc_time_data definitions.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-18 22:27:51 +01:00
Chip Davis
898abfc18f
msvcrt: Share __lc_time_data between threadlocinfo instances.
...
My testing shows that unk[1] is some sort of refcount.
Signed-off-by: Chip Davis <cdavis@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-18 22:27:51 +01:00
Chip Davis
10cac0a08f
msvcrt: Share lconv data between threadlocinfo instances.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-18 22:27:50 +01:00
Chip Davis
5ec7cb5a7f
msvcrt: Share ctype tables between threadlocinfo instances.
...
Signed-off-by: Chip Davis <cdavis@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-18 22:27:50 +01:00
Chip Davis
3e3f6396d2
msvcrt: Copy LC_COLLATE codepage between threadlocinfo instances.
...
Signed-off-by: Chip Davis <cdavis@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-18 22:27:50 +01:00
Chip Davis
9cb112ca25
msvcrt: Share locale names between threadlocinfo instances.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-18 22:27:50 +01:00
Piotr Caban
8455926662
msvcrt: locinfo->lc_name should be guarded by lc_category->wrefcount.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-18 22:27:48 +01:00
Piotr Caban
3ecede0c61
msvcrt: Call set_lc_locale_name in update_threadlocinfo_category.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-18 20:29:32 +01:00
Charles Davis
db55e07016
msvcrt: Make locale name string refcounted for C locale.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-18 20:29:24 +01:00
Piotr Caban
b0622bb49a
msvcrt: Mark old_locinfo as const in create_locinfo.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-18 20:29:09 +01:00
Paul Gofman
3acd68b241
msvcrt: Save and restore rounding mode in fegetenv() / fesetenv().
...
Fixes Serious Sam 4 flickering in Vulkan mode.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-18 20:28:14 +01:00
Alexandre Julliard
c72e1b096d
msvcrt: Move math functions to a new Unix library.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-18 20:28:05 +01:00
Alexandre Julliard
2fb08bed46
msvcrt: Use the msvcrt string functions internally.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-18 20:28:05 +01:00
Alexandre Julliard
f48648aeec
msvcrt: Use the msvcrt atoi() function internally.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-18 20:28:05 +01:00
Alexandre Julliard
b7fe06d0fa
msvcrt: Use the msvcrt ctype functions internally.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-18 20:28:05 +01:00
Alexandre Julliard
871d9863bc
msvcrt: Use the msvcrt allocation functions internally.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-18 20:28:05 +01:00
Alexandre Julliard
1be5e83859
msvcrt: Use the msvcrt math functions internally.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-18 20:28:05 +01:00
Alexandre Julliard
1f27361894
msvcrt: Avoid long double type in $I10_OUTPUT().
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-17 13:46:26 +01:00
Alexandre Julliard
b9002cc8c7
msvcrt: Add floating point classification macros.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-17 13:46:26 +01:00
Alexandre Julliard
9fa7b779f8
msvcrt: Use the global musl copyright notice.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-17 13:46:26 +01:00
Alexandre Julliard
48028c64ea
msvcrt: Import ilogb() from musl.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-17 09:59:54 +01:00
Alexandre Julliard
44e122e04e
msvcrt: Import fabs() from musl.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-17 09:58:19 +01:00
Alexandre Julliard
b1bc99f025
msvcrt: Import _copysign() from musl.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-17 09:57:52 +01:00
Alexandre Julliard
dbda71f74d
msvcrt: Reimplement _chgsign().
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-16 17:51:30 +01:00
Alexandre Julliard
4619140b1c
msvcrt: Reimplement _dsign().
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-16 17:51:30 +01:00
Alexandre Julliard
d6476e0097
msvcrt: Reimplement _isnan().
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-16 17:51:30 +01:00
Alexandre Julliard
9f088d019b
msvcrt: Reimplement _finite().
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-16 17:51:30 +01:00
Alexandre Julliard
fd51f229f6
msvcrt: Reimplement _fpclass().
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-16 17:51:30 +01:00
Alexandre Julliard
23008a0f27
msvcrt: Reimplement _dclass() using musl code.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-16 17:51:30 +01:00
Piotr Caban
e460b37a25
ucrtbase: Add support for utf8 codepage in setlocale.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-11 21:14:58 +01:00
Rémi Bernon
35886486d4
msvcrt: Pass temporary locale to MSVCRT__towupper_l.
...
When not provided, instead of calling get_locinfo on every character.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-10 17:19:44 +01:00
Rémi Bernon
0a2635611a
msvcrt: Pass temporary locale to MSVCRT__towlower_l.
...
When not provided, instead of calling get_locinfo on every character.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-10 17:19:44 +01:00
Rémi Bernon
faf92fdedb
msvcrt: Introduce noalloc current locale lookup helpers.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-10 17:19:44 +01:00
Rémi Bernon
a24ad51e3f
msvcrt: Make locale and thread helper functions CDECL.
...
This prevent callers from having to save SSE registers to the stack.
It is for instance the case in MSVCRT__towlower_l, which is called on
every character by MSVCRT__wcsicmp_l.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-10 17:19:44 +01:00
Daniel Lehman
a29f606e08
msvcr110: Add _Context::_CurrentContext.
...
Signed-off-by: Daniel Lehman <dlehman25@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-03 14:53:34 +01:00
Will Mainio
e0812be876
msvcrt/tests: Add scanf tests for dashes in scanset.
...
Signed-off-by: Will Mainio <will.mainio@fastmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-02 22:06:52 +01:00
Will Mainio
c38102b9b4
msvcrt: Fix scanf with dashes in scanset.
...
Signed-off-by: Will Mainio <will.mainio@fastmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-02 22:06:52 +01:00
Piotr Caban
5fcc377168
ucrtbase: Support UTF8 codepage in wctomb.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-19 22:19:04 +02:00
Piotr Caban
69b701a4a0
ucrtbase: Support UTF8 codepage in _wctomb_s_l.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-19 22:18:59 +02:00
Piotr Caban
6180c2fc83
ucrtbase: Support UTF8 codepage in _wcstombs_l.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50025
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-19 22:18:52 +02:00
Nikolay Sivov
d29f424416
msvcrt: Correct spec entries for _wcstod_l().
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-06 21:47:56 +02:00
Piotr Caban
8468a3ed77
msvcrt: Terminate on noexcept function trying to propagate exception (x86_64).
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-05 10:55:13 +02:00
Piotr Caban
26c1f8fb07
msvcrt: Terminate on noexcept function trying to propagate exception (i386).
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-05 10:55:08 +02:00
Martin Storsjo
0e66993507
msvcrt: Hook up __C_specific_handler for arm64.
...
Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-29 12:02:57 +02:00
Paul Gofman
ebe3fe536c
msvcrt: Implement _mbbtype_l().
...
Fixes Midnight Castle Succubus.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-24 17:44:51 +02:00