Commit Graph

2408 Commits

Author SHA1 Message Date
Alexandre Julliard ee4db2005e include: Define thiscall assembly wrappers globally.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-15 20:11:19 +02:00
Alexandre Julliard d5a372abbb include: Move inline assembly definitions to a new wine/asm.h header.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-14 13:45:07 +02:00
Martin Storsjo 869e0a6360 msvcrt: Hook up _setjmpex for arm64 as well.
Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-13 12:44:28 +02:00
Martin Storsjo 8582615894 msvcrt: Hook up the unprefixed logb/logbf/logbl functions for msvcr120/ucrtbase.
Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-25 17:39:59 +02:00
Martin Storsjo fc1107382b msvcrt: Fix the fallback implementation of asinh for large negative values.
Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-25 17:39:46 +02:00
Alexandre Julliard 52bff1fdfe msvcrt: Don't export the __p__* functions on 64-bit.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-25 17:28:10 +02:00
Alexandre Julliard d4ef782db7 makefiles: Build all tests with msvcrt.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-24 12:10:51 +02:00
Martin Storsjo de8be4a09c msvcrt: Implement the remquo family of functions.
Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-11 19:29:41 +02:00
Martin Storsjo f20be3b00c msvcrt: Implement _get_environ and _get_wenviron.
Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-11 19:29:41 +02:00
Alexandre Julliard 7b83b6b9de msvcrt/tests: Add a function pointer to bypass builtin printf().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-11 19:29:41 +02:00
Alexandre Julliard 9a4b596ed9 msvcrt/tests: Add some function pointers to bypass gcc builtin functions.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-10 21:01:46 +02:00
Alexandre Julliard 2e01a48440 msvcrt/tests: Use existing function pointers to call functions.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-10 21:01:46 +02:00
Alexandre Julliard b5408ff58c msvcrt: Don't set invalid std handles with kernel32.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-09 14:07:10 +02:00
Alexandre Julliard 9a364c1a66 msvcrt: Don't export _matherr().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-05 22:16:30 +02:00
Gijs Vermeulen 92ba9e7b6d msvcrt: Implement _wcsnset_s.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46902
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-02 19:21:57 +02:00
Gijs Vermeulen e49a937ae3 msvcrt/tests: Add missing return value check.
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-02 19:21:45 +02:00
Alexandre Julliard b360bf81cb msvcrt: Export an import symbol for __acrt_iob_func() for compatibility with Mingw.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-02 17:15:02 +02:00
Alexandre Julliard ac38c175b5 msvcrt: Add MSVCRT_ prefix to the spawn() functions.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-02 11:51:56 +02:00
Piotr Caban b353ad7db8 msvcr110: Fix __crtGetShowWindowMode implementation.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46928
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-01 21:54:32 +02:00
Alexandre Julliard 1f7489d493 crtdll: Share source with msvcrt.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-29 21:13:43 +01:00
Alexandre Julliard 4a5bff8368 msvcrt: Only add the onexit functions to the import library of msvcrt itself.
This partially reverts 0673ddf3a5.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-29 11:48:29 +01:00
Alexandre Julliard 62fd803e52 msvcrt: Only add __acrt_iob_func() to the import library of msvcrt itself.
This partially reverts ca50117418.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-29 11:41:39 +01:00
Alexandre Julliard ca50117418 msvcrt: Export the __acrt_iob_func function from the import library.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-26 20:24:01 +01:00
Alexandre Julliard 0673ddf3a5 msvcrt: Export the onexit functions from the import library.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-26 20:24:01 +01:00
Piotr Caban f48ea29726 msvcrt: Use _strnicmp instead of strncasecmp.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-26 13:50:36 +01:00
Piotr Caban 462caf8fbd msvcrt: Use _stricmp instead of strcasecmp.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-26 13:50:34 +01:00
Piotr Caban 3f675c1a9d msvcrt: Use internal toupper implementation.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-26 13:50:32 +01:00
Piotr Caban 834134f284 msvcrt: Use internal tolower implementation.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-26 13:50:30 +01:00
Gijs Vermeulen 3229074824 msvcr120: Add [to]wctrans.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46848
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-21 22:57:51 +01:00
Ken Thomases d22058d1cb msvcrt: Fix vtable alignment on macOS and certain non-x86 architectures.
On some platforms and architectures, the .align <n> directive aligns to 2^n
bytes, not n bytes.  The .balign <n> directive always aligns to n bytes.

Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-18 21:41:57 +01:00
Piotr Caban b633777ed4 msvcrt: Use correct locale when comparing strings in getenv.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-18 10:12:16 +01:00
Piotr Caban 513eb41f9a msvcrt: Correctly set _stat64.st_dev fields in _wstat64.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-18 10:12:07 +01:00
Piotr Caban 8c1684a50a msvcrt: Don't detect overflow in atol implementation.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46845
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-18 10:10:44 +01:00
Piotr Caban 58140f73a2 msvcrt: Fix long limits in _atol_l.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-18 10:10:36 +01:00
Nikolay Sivov 8c8d8e80f5 ucrtbase: Add ilogb* functions.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-28 21:37:30 +01:00
Michael Stefaniuc cc12c0af71 msvcrt: Remove redundant not-NULL check (coccinellery).
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-28 21:37:29 +01:00
Piotr Caban 79188582f0 msvcrt: Fix buffer overflow in _get_tzname.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46481
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-27 20:19:19 +01:00
Zebediah Figura 28e74af742 msvcr120: Add nexttoward implementation.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45631
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-25 17:48:02 +01:00
Piotr Caban 35e570eb09 msvcrt: Change __getmainargs signature.
It was changed in newer versions of msvcrt/msvcrXX dlls.

Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-15 15:07:03 +01:00
Nikolay Sivov cebb947027 msvcrt: Add _ismbcl2().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-15 15:06:54 +01:00
Nikolay Sivov c166dfec00 msvcrt: Add _ismbcl2_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>
2019-02-15 15:06:51 +01:00
Piotr Caban 7d383d573d msvcrt: Use correct locale when validating character in _ismbcl0_l and _ismbcl1_l.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-15 15:06:44 +01:00
Piotr Caban a808235e45 msvcrt: Use mbtowc/wctomb for string conversion in printf.
This changes printf behaviour for C locale.

Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-15 15:06:28 +01:00
Nikolay Sivov 698b26a432 msvcrt: Add _ismbcl1().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46644
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-14 17:57:09 +01:00
Nikolay Sivov 1b86a06ff8 msvcrt: Add _ismbcl1_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>
2019-02-14 17:57:09 +01:00
Nikolay Sivov 2d89bccfc3 msvcrt: Add _ismbcl0_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>
2019-02-14 17:57:09 +01:00
Piotr Caban 622c218cb2 msvcrt: Validate character in _ismbcl0.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-14 17:57:09 +01:00
Piotr Caban 64453ea28b msvcrt: Add _ismbclegal_l implementation.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-14 17:57:09 +01:00
Piotr Caban 790f97cb30 msvcrt: Add _ismbbtrail_l implementation.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-14 17:57:09 +01:00
Daniel Lehman 2c308c9fa2 msvcrt: _towupper_l only uppercase a-z in C locale.
Signed-off-by: Daniel Lehman <dlehman25@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-28 18:35:46 +01:00
Daniel Lehman 6a71e7c9ee msvcrt: _towlower_l only lowercase A-Z in C locale.
Signed-off-by: Daniel Lehman <dlehman25@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-28 18:35:46 +01:00
Piotr Caban 6886717631 msvcrt: Optimize toupper function when locale was never changed.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-23 17:41:54 +01:00
Piotr Caban e867af3bfe msvcrt: Optimize tolower function when locale was never changed.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-23 17:41:52 +01:00
Piotr Caban 2efc73b968 msvcrt: Use GetDaylightFlag() to set dstflag value in _ftime64.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-21 14:01:14 +01:00
Piotr Caban b8bafa2c58 msvcrt: Use _timezone in _ftime64.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-21 14:01:12 +01:00
Alexandre Julliard dd016c031a msvcrt: Add some more MSVCRT prefixes to avoid conflicts with recent Mingw.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-14 18:24:46 +01:00
Alexandre Julliard e4d34098a6 msvcrt: Fix __p__fmode() prototype.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-14 18:24:46 +01:00
Alexandre Julliard 32bac73463 msvcrt: Export onexit functions for compatibility with Mingw.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-14 18:24:46 +01:00
Daniel Lehman 6d7a03d2fa msvcrt/tests: Add tests for C locale.
Signed-off-by: Daniel Lehman <dlehman25@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-14 18:24:46 +01:00
Piotr Caban 381e549b81 msvcrt: Add _vscprintf_l implementation.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-19 22:42:41 +01:00
Nikolay Sivov 311a132090 msvcrt: Add _iswxdigit_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>
2018-11-16 16:33:34 +01:00
Nikolay Sivov e29fbaeca8 msvcrt: Add _iswprint_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>
2018-11-16 16:33:31 +01:00
Nikolay Sivov 07d5635d98 msvcrt: Add _iswcntrl_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>
2018-11-16 16:33:28 +01:00
Nikolay Sivov 3c5862102f msvcrt: Add _iswalnum_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>
2018-11-16 16:33:25 +01:00
Nikolay Sivov b71f1ea1c9 msvcrt: Add _iswgraph_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>
2018-11-16 16:33:22 +01:00
Nikolay Sivov 2d0e30f96f msvcrt: Add _iswupper_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>
2018-11-15 18:10:50 +01:00
Nikolay Sivov 3eab7798ad msvcrt: Add _iswlower_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>
2018-11-15 18:10:47 +01:00
Daniel Lehman ed712a96a4 msvcrt/tests: Remove unused todo field.
Signed-off-by: Daniel Lehman <dlehman25@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-12 19:24:08 +01:00
Nikolay Sivov 60c06980cf msvcrt: Implement __strncnt().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-30 18:04:48 +01:00
Piotr Caban c99d14d04d msvcrt: Don't forward strpbrk to ntdll.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-17 17:32:14 +02:00
Piotr Caban f43ae5e803 msvcrt: Don't forward strcspn to ntdll.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-17 17:32:11 +02:00
Piotr Caban 48dbb17861 msvcrt: Don't forward wcstol to ntdll.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-17 17:32:08 +02:00
Piotr Caban c69de2c27c msvcrt: Don't forward wcsrchr to ntdll.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-17 17:32:06 +02:00
Piotr Caban 66b38682eb msvcrt: Don't forward wcscmp to ntdll.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-17 17:32:03 +02:00
Piotr Caban 98eb7171e1 msvcrt: Don't forward atol to ntdll.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-17 17:32:00 +02:00
Piotr Caban 32b94e6b2d msvcrt: Don't forward _wcsupr to ntdll.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-17 17:31:56 +02:00
Piotr Caban 4d0a008e5d msvcrt: Don't forward _atoi64 to ntdll.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45922
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-17 17:31:42 +02:00
Jacek Caban 055ca5e4d9 msvcrt: Use memmove to copy memory in memcpy_s.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-05 10:48:19 -05:00
Jacek Caban be56a83fd0 msvcrt: Use memmove to copy memory in wmemcpy_s.
Fixes memory corruption in Outlook 2016.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-05 10:48:16 -05:00
Piotr Caban c3445197b2 msvcr100: Added _Scoped_lock::_NonReentrantPPLLock class.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-03 16:25:04 -05:00
Piotr Caban 83a0c2085f msvcr120: Added creal implementation.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-01 19:12:29 -07:00
Piotr Caban 84f5d8a619 msvcr120: Added _Cbuild implementation.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-01 19:12:29 -07:00
Alex Henrie 48f108345a msvcrt: Use isnan instead of isnanf.
This resolves several warnings when compiling with MinGW because isnanf
is not in MinGW's math.h (it's not a standard C function). On the other
hand, isnan is a widely available C99 macro designed for both floats and
doubles. We also have an isnan implementation in libs/port/isnan.c for
pre-C99 compilers.

Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-27 11:03:41 +02:00
Jason Edmeades 0dcfc97fcb msvcrt: Do not put cmd.exe special environment variables into the environ.
All the special environment variables from the command shell which
track directory use are stripped out from the C runtime
environ/wenviron.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45320
Signed-off-by: Jason Edmeades <us@edmeades.me.uk>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-25 12:58:19 +02:00
Alex Henrie b917cc66f4 msvcrt: Add DECLSPEC_HOTPATCH to functions patched by libtcmalloc.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45199
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-19 18:20:08 +02:00
Alex Henrie b6774e38e6 msvcrt: Don't report an underflow for ldexp(0, x) or _scalb(0, x).
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: piotr@codeweavers.com
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-11 17:34:41 +02:00
Gijs Vermeulen 58e3ac93ac msvcr100: Add Concurrency::wait stub.
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-09-10 16:44:47 +02:00
Daniel Lehman 3467d71c27 msvcrt/tests: Add tests for _strnicoll/_wcsnicoll.
Signed-off-by: Daniel Lehman <dlehman@esri.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-19 17:47:56 +02:00
Daniel Lehman eb37e2e482 msvcrt: Don't read past end of string in _strnicoll/_wcsnicoll.
Signed-off-by: Daniel Lehman <dlehman@esri.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-19 17:47:53 +02:00
Daniel Lehman 9aa7a42a9f msvcrt/tests: Add tests for _strncoll/_wcsncoll.
Signed-off-by: Daniel Lehman <dlehman@esri.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-19 17:47:49 +02:00
Daniel Lehman 368e9f39b4 msvcrt: Don't read past end of string in _strncoll/_wcsncoll.
Signed-off-by: Daniel Lehman <dlehman@esri.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-19 17:47:44 +02:00
Michael Stefaniuc af4821ca81 msvcrt: Use the ARRAY_SIZE() macro.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-15 21:01:09 +02:00
Daniel Lehman 05f9db7b95 msvcr110: Create current scheduler in _CurrentScheduler::_Id.
Signed-off-by: Daniel Lehman <dlehman@esri.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-19 16:54:01 +02:00
Daniel Lehman 16f9a9e122 msvcr110: Create current scheduler in _CurrentScheduler::_GetNumberOfVirtualProcessors.
Signed-off-by: Daniel Lehman <dlehman@esri.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-18 14:12:23 +02:00
Piotr Caban 6b268e77bb msvcr80: Add gets_s implementation.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45393
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-16 21:28:45 +02:00
Piotr Caban c5cb5e24a3 ucrtbase: Don't fail if path ends with '\' character in stat functions family.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45292
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-13 17:20:44 +02:00
Fabian Maurer 89b8f3d712 ucrtbase: Implement quick_exit and _crt_at_quick_exit.
Signed-off-by: Fabian Maurer <dark.shadow4@web.de>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-09 22:20:25 +02:00
Fabian Maurer 224f3312f8 ucrtbase: Add quick_exit.
Signed-off-by: Fabian Maurer <dark.shadow4@web.de>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-09 22:20:21 +02:00
Fabian Maurer a63c8cab27 ucrtbase: Add _crt_at_quick_exit stub.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45295
Signed-off-by: Fabian Maurer <dark.shadow4@web.de>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-09 22:20:16 +02:00
Fabian Maurer 1bc84577ff msvcrt: Use cdecl calling convention for atexit callback.
Signed-off-by: Fabian Maurer <dark.shadow4@web.de>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-09 22:20:11 +02:00
Michał Janiszewski 08d98f0ff8 msvcrt: Update size checks for secure scanf versions.
Signed-off-by: Michał Janiszewski <janisozaur@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-09 18:04:17 +02:00
Michael Müller 0dde2b8a2f msvcr120: Add stub for _SetWinRTOutOfMemoryExceptionCallback.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-09 13:52:12 +02:00
Michał Janiszewski 32e65acc00 msvcrt: Don't forget to free the buffer in scanf.
Signed-off-by: Michał Janiszewski <janisozaur@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-09 13:51:53 +02:00
Fabian Maurer 83f8b22694 msvcrt: Use already existent oneexit_table functions for _onexit and _c_exit.
Signed-off-by: Fabian Maurer <dark.shadow4@web.de>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-25 11:57:48 +02:00
Michael Stefaniuc 3624b7c60c msvcrt/tests: Use the available ARRAY_SIZE() macro.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-21 14:20:57 +02:00
Michael Stefaniuc ee8acc381d msvcrt: Rename a macro to ARRAY_SIZE().
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-21 14:20:57 +02:00
Piotr Caban b22faf3d0b msvcr100: Fix lldiv implementation.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-13 22:13:27 +02:00
Zebediah Figura 88f273b77c msvcrt: Don't reimplement call_unwind_func().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-12 23:48:47 +02:00
Zebediah Figura 77e92cf72c msvcrt: Avoid using inline assembly in call_unwind_func().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-12 23:48:47 +02:00
Zebediah Figura 9867d10e28 msvcrt: Avoid using inline assembly in call_filter().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-11 18:28:37 +02:00
Zebediah Figura f96a3b735b msvcrt: Avoid using inline assembly in call_finally_block().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-11 18:27:07 +02:00
Zebediah Figura 701e1b6f81 msvcrt: Avoid using inline assembly in continue_after_catch().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-11 18:26:46 +02:00
Zebediah Figura 0c216b8ca8 msvcrt: Avoid using inline assembly in __ExceptionPtrCopyException() and copy_exception().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-01 19:49:29 +02:00
Zebediah Figura 6f819b49c1 msvcrt: Avoid using inline assembly in __ExceptionPtrDestroy().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-01 19:44:44 +02:00
Piotr Caban 7122c9d41d msvcr110: Try SNAME when matching locale.
Based on patch by Daniel Lehman.

Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-09 19:47:28 +02:00
Alex Henrie 9ccc0b1320 msvcrt: Omit pointer coding functions from SOs for newer MSVC versions.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-09 19:26:54 +02:00
Daniel Lehman 642e0917d5 msvcrt/tests: Add setlocale test.
Signed-off-by: Daniel Lehman <dlehman@esri.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-02 20:02:13 +02:00
Piotr Caban 7a50abd894 ucrtbase: Add _timespec{32,64}_get implementation.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-18 21:25:49 +02:00
Piotr Caban 8905bd92aa msvcrt: Support "China" country name in setlocale function.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-09 09:58:23 +02:00
Piotr Caban 19bb93ec10 msvcr110: Add __crtCapturePreviousContext implementation.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-09 09:58:18 +02:00
André Hentschel 807d47d448 msvcrt: Don't increment variables both in the loop header and body (clang).
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-09 09:52:13 +02:00
André Hentschel 4e5e56c822 msvcrt: Accept Czechia as locale name.
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-28 19:37:27 +02:00
Hua Meng e1c7a1f7ce msvcrt: Implement _atoi64_l.
Signed-off-by: Hua Meng <161220092@smail.nju.edu.cn>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-26 22:56:31 +02:00
Hua Meng 2f9dd7f6cb msvcrt: Implement _atol_l.
Signed-off-by: Hua Meng <161220092@smail.nju.edu.cn>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-26 22:56:23 +02:00
Piotr Caban 9a7cb34d0f msvcrt/tests: Add _strupr tests.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-22 20:15:35 +01:00
Piotr Caban 52415cabb0 msvcrt: Optimize _strupr implementation in C locale.
Don't write to input buffer when there's nothing to change.

Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-22 20:15:15 +01:00
Piotr Caban 36a88ac2e1 msvcrt: Fix __uncaught_exception implementation.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-20 23:20:01 +01:00
Piotr Caban 9999c59c48 ucrtbase: Add __processing_throw implementation.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-20 23:19:59 +01:00
Piotr Caban f82af4d2bb ucrtbase: Add __current_exception_context() implementation.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-20 23:19:50 +01:00
Piotr Caban ae5d0b2229 ucrtbase: Add __current_exception() implementation.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-19 23:54:59 +01:00
Akihiro Sagawa f4ddd3190a ucrtbase: Asctime() uses space-padding for day of month as seen in C89.
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-13 13:24:27 +01:00
James Woodcock 91c72ce7de msvcrt: Gets() should handle EOF on stdin gracefully.
Signed-off-by: James Woodcock <james_woodcock@yahoo.co.uk>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-07 08:47:44 -06:00
Alex Henrie acd2f1e59b msvcrt: Compile but show an error if Bessel functions aren't available.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-05 06:59:19 -06:00
Piotr Caban a44794af67 msvcrt: Fix misleading indentation in gets.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-01 19:25:57 +01:00
Kirill Erofeev e0f7fbfa59 msvcrt/tests: Add tests for _searchenv, _searchenv_s, _wsearchenv, _wsearchenv_s.
Signed-off-by: Kirill Erofeev <erofeev.info@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-19 16:57:54 +01:00
Kirill Erofeev 83470d449d msvcrt: Fix _searchenv, _searchenv_s, _wsearchenv, _wsearchenv_s.
Signed-off-by: Kirill Erofeev <erofeev.info@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-19 16:57:54 +01:00
Piotr Caban 19ef182c81 msvcr100: Add _ReentrantPPLLock::_Scoped_lock class implementation.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-06 19:39:12 +01:00
Piotr Caban 475fa2c749 msvcr110: Add Concurrency::_Trace_agents function stub.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-06 19:38:31 +01:00
Piotr Caban 7419eff0c2 msvcr100: Add _ReentrantPPLLock class implementation.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-02 16:56:49 +01:00
Piotr Caban 8d105ac7c2 msvcr100: Add _NonReentrantPPLLock class implementation.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-02 16:56:45 +01:00
Piotr Caban f042c4ea4a msvcr100: Use scoped_lock internal buffer when locking critical_section.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-02 16:56:42 +01:00
Piotr Caban a672732476 msvcr100: Add _NonReentrantPPLLock@details class stub.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-02 16:56:27 +01:00
Michael Stefaniuc caf0d0f5fd msvcrt: Use the global HeapAlloc() wrappers.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-02 14:42:37 +01:00
Martin Storsjo 85635db0ea msvcrt: Optimize the aarch64 setjmp/longjmp using stp/ldp.
stp/ldp don't require any more alignment than the normal str/ldr.

Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-26 19:11:42 +01:00
Alex Henrie f0e74961e1 msvcrt: Fix mistakes in comments.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-10 18:49:24 +01:00
Alex Henrie 6defbd1b50 msvcrt: Don't include MSVC 8.0+ function _CRT_RTC_INITW in SOs for older DLLs.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-10 18:49:15 +01:00
Alex Henrie 6a76d027f2 msvcrt: Don't include MSVC 11.0+ function _wcreate_locale in SOs for older DLLs.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-10 18:49:05 +01:00
Alex Henrie b6ec8980c5 msvcrt: Don't include MSVC 8.0+ exit functions in SOs for older DLLs.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-10 18:49:01 +01:00
Alex Henrie 9be95285c3 msvcrt: Don't include MSVC 7.0+ exception functions in SOs for older DLLs.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-10 18:48:56 +01:00
Alex Henrie 6413d96b6b msvcrt: Don't include MSVC 7.0+ miscellaneous functions in SOs for older DLLs.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-08 22:47:23 +01:00