Commit Graph

268 Commits

Author SHA1 Message Date
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 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
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 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
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 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
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
Alex Henrie 1afc433954 msvcrt: Don't include MSVC 8.0+ string 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-02 15:52:22 +01:00
Martin Storsjo ee32799d61 ucrtbase: Always return the full string length in __stdio_common_vs[w]printf for a NULL buffer.
If the target is a NULL buffer (with a zero length), we should
always return the full size the format would have needed, even if
UCRTBASE_PRINTF_STANDARD_SNPRINTF_BEHAVIOUR isn't specified.

Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-11-17 15:42:00 +01:00
Alexandre Julliard 7726157e19 msvcrt: Use WINAPIV calling convention for variadic functions.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-11-02 10:20:02 +01:00
Gijs Vermeulen 7f9c2dabc3 msvcrt: Add vf[w]printf_p & vf[w]printf_p_l.
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-16 15:26:32 +02:00
Alex Henrie 8b6eada458 ucrtbase: Add __stdio_common_vsprintf_p.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-14 01:01:02 +02:00
Alex Henrie 5074bb9a4b msvcrt: Note that __stdio_common functions are for ucrtbase.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-07 14:23:38 +02:00
Daniel Lehman 111637a3c6 ucrtbase: Add _iswblank_l.
Signed-off-by: Daniel Lehman <dlehman@esri.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-04 14:54:23 +02:00
Daniel Lehman bda232de94 msvcrt: Add _iswctype_l.
Signed-off-by: Daniel Lehman <dlehman@esri.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-04 14:54:09 +02:00
Lauri Kenttä 96a48efeea msvcrt: Fix space-only inputs in wcstoi64.
wcstoi64 sets endpos past the beginning only if some digits are found.

Signed-off-by: Lauri Kenttä <lauri.kentta@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-26 19:49:41 +01:00
Lauri Kenttä 5b6e1cf2de msvcrt: Make wcstoi64 support various Unicode digits.
Signed-off-by: Lauri Kenttä <lauri.kentta@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-26 19:49:31 +01:00
Lauri Kenttä bdd771dfa7 msvcrt: Move WCHAR-to-int conversion to a function.
Signed-off-by: Lauri Kenttä <lauri.kentta@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-26 19:48:50 +01:00
Nikolay Sivov ff49f86fa1 ucrtbase: Added __stdio_common_vswprintf_p().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-03 09:09:18 -05:00
Nikolay Sivov b6fd195279 ucrtbase: Added __stdio_common_vswprintf_s().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-02 09:08:28 -05:00
Nikolay Sivov 24291f2b6a ucrtbase: Added __stdio_common_vsnwprintf_s().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-01 05:30:17 -05:00
Piotr Caban c4ab42d88c msvcrt: Fix C locale handling in wcstombs.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-14 19:20:21 +09:00
Piotr Caban 4ee316a997 msvcr120: Add wcstof implementation.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-19 15:10:20 +09:00
Piotr Caban aff5d2c1f3 msvcrt: Don't use isdigit in places where only 0-9 digits are handled.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-19 15:10:20 +09:00
Rafał Harabień ad9ab7c40b msvcr120: Implement atoll, _atoll_l, _wtoll, _wtoll_l.
Signed-off-by: Rafał Harabień <rafalh1992@o2.pl>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-09 23:25:57 +09:00
Martin Storsjo b9d0f5d562 ucrtbase: Implement the new printf corner case behaviour.
Check the option flags whether the new or old legacy behaviours are
wanted.

For _MSVCR_VER < 140, don't check the option flags but hardcode them to
TRUE. (This avoids having to manually add all three flags into every
caller of pf_printf.) Mask out any other flags, to avoid other
out-of-range flags to be interpreted as the other flags (positional
params, invoke invalid param handler).

Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-04 19:19:12 +09:00
Martin Storsjo 1c8412d9e5 msvcrt: Refactor pf_printf to take options as flags instead of as BOOL parameter.
Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-04 19:18:56 +09:00
Martin Storsjo b09aadd202 ucrtbase: Handle the swprintf style termination and return values.
When neither the "legacy vsprintf null termination" nor the "standard
snprintf behaviour" flags are specified, the functions return -2 when
the output string didn't fit (similar to old style msvcrt _snprintf that
returned -1), but they are null terminated (similar to the C99 snprintf
style behaviour). This is the same way as the C99 swprintf function
behaves.

Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-04 19:18:42 +09:00
Martin Storsjo fcf9ec8080 ucrtbase: Add defines for the printf/scanf options constants.
Avoid using hardcoded magic numbers for these options.

Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-02 23:02:24 +09:00
Martin Storsjo 2a74c9a8ed ucrtbase: Fix the function name in a comment.
Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-02 23:02:23 +09:00
Martin Storsjo 255a7fe067 ucrtbase: Implement some printf functions.
Not all functions are implemented (yet not all variants are
implemented in the normal msvcrt either).

The new functions are more generalized and are C99 compliant.
They take an options parameter that e.g. for the snprintf
family of functions indicate whether the truncation and return
value should be handled as before or in the standards compliant
way.

Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-28 22:31:24 +09:00
Daniel Lehman 65b8a3da47 msvcrt: Add __swprintf_l. 2015-06-01 14:43:54 +09:00
Orion Poplawski 8bf1732962 msvcrt: Bump MSVCRT_MB_LEN_MAX to 5 and use it in MSVCRT__wctomb_l for default buffer lengthSet MB_LEN_MAX to 5 to match MSVCRT_MB_LEN_MAX. 2015-02-03 14:38:40 +09:00
Piotr Caban ccaf87b2ea msvcrt: Add _iswpunct_l implementation. 2015-01-26 11:23:12 +01:00
Piotr Caban ef69ad9f97 msvcrt: Add _iswspace_l implementation. 2015-01-26 11:23:08 +01:00
Piotr Caban bd1428ef50 msvcrt: Add _vscprintf_p implementation. 2015-01-20 16:08:49 +01:00
Piotr Caban 3af24fe1f4 msvcrt: Add _wcsset_s implementation. 2014-12-23 18:59:36 +01:00
Hans Leidekker ed79b3f9a5 msvcrt: Implement _snprintf_l. 2014-10-31 10:49:06 +09:00
Vincent Povirk 1860efaa9e msvcrt: Implement _wcsnicmp_l. 2014-10-29 20:31:04 +09:00
Piotr Caban b540277cc7 msvcrt: Add _wcsxfrm_l implementation. 2014-06-12 18:25:27 +02:00
Piotr Caban 28830b4b36 msvcrt: Return string in _wcslwr and _wcslwr_l. 2014-06-11 13:02:52 +02:00
Piotr Caban 31c76cae7c msvcrt: Add _wcslwr_s_l implementation. 2014-05-24 11:01:28 +09:00
Piotr Caban 277eb98739 msvcrt: Add _wcsupr_l implementation. 2014-04-29 16:07:44 +02:00
Alexandre Julliard 0c496f0280 msvcrt: Update comments for non-exported functions. 2014-04-21 14:32:40 +02:00
Piotr Caban beeea28a53 msvcr100: Move functions implementation to msvcrt. 2014-04-16 18:00:15 +02:00
Piotr Caban e70bf5f8c6 msvcrt: Fix compilation errors on Mingw. 2014-04-16 18:00:01 +02:00
Piotr Caban 965d3acc6d msvcrt: Fix wcs*coll functions behavior in C locale. 2014-01-27 14:13:27 +01:00
Alexandre Bique 33199860f1 msvcrt: Implement missing sprintf functions. 2013-12-10 13:01:22 +01:00
Alexandre Bique 09bfea117d msvcrt: Implement _vsprintf_l. 2013-12-10 13:01:22 +01:00
Frédéric Delanoy 508365a2c1 msvcrt: Use BOOL type where appropriate. 2013-10-31 09:58:43 +01:00
Piotr Caban 26721c25f6 msvcrt: Don't forward wcsncmp to ntdll. 2013-10-01 13:10:21 +02:00
Piotr Caban 3868bf06b2 msvcrt: Add _wtoi64_l implementation. 2013-10-01 13:10:21 +02:00
Piotr Caban b50833389e msvcrt: Improve error handling in wcsrtombs function. 2013-09-24 18:54:37 +02:00
Piotr Caban dadb2fdfa9 msvcrt: Add _snwprintf_s_l implementation. 2013-09-19 19:49:11 +02:00
Piotr Caban 1f1624612e msvcrt: Don't use CDECL calling convention in MSVCRT_wcsrtombs_l (internal function). 2013-09-18 13:11:10 +02:00
Piotr Caban 882761f15d msvcrt: Don't forward wcsstr to ntdll. 2013-09-17 16:25:54 +02:00
Piotr Caban a89f726355 msvcrt: Don't forward wcslen to ntdll. 2013-09-17 16:25:48 +02:00
Piotr Caban 300c012372 msvcrt: Don't forward wcschr to ntdll. 2013-09-17 16:25:43 +02:00
Piotr Caban 2734ae0786 msvcrt: Don't forward _wcsnicmp to ntdll. 2013-09-12 12:59:02 +02:00
Daniel Lehman a0d8d1e223 msvcrt: Invoke invalid_handler in _wcscpy_s. 2013-08-16 11:55:23 +02:00
Piotr Caban a51ffcd442 msvcrt: Added _swprintf_s_l implementation. 2013-08-01 16:28:39 +02:00
Piotr Caban 679542419a msvcrt: Add _wcstol_l implementation. 2013-07-29 15:00:26 +02:00
Piotr Caban 6457163bb2 msvcrt: Add _wctomb_s_l implementation. 2013-07-27 11:50:56 -05:00
Piotr Caban c66d94bfd9 msvcrt: Added _wcsicmp_l implementation. 2013-06-25 18:12:12 +02:00
Jactry Zeng 5af20ef180 msvcrt: Added _wcsnicoll_l implementation. 2013-04-01 14:41:03 +02:00
Jactry Zeng d2763e43d1 msvcrt: Added _wcsicoll_l implementation. 2013-04-01 14:40:49 +02:00
Jactry Zeng dafa7611e9 msvcrt: Added _wcscoll_l implementation. 2013-04-01 14:40:21 +02:00
Jactry Zeng 2f425fb832 msvcrt: Added _wcsncoll and _wcsncoll_l implementation. 2013-03-29 17:52:19 +01:00
Piotr Caban 12b8c9671e msvcrt: Update spec file with functions added in newer version of the dll. 2013-03-28 18:54:26 +01:00
Piotr Caban 8f9b0abf72 msvcrt: Added _wcstoul_l implementation. 2013-03-27 20:12:29 +01:00
Piotr Caban 9e32259457 msvcrt: Don't forward wcsncpy to ntdll. 2013-03-27 20:12:29 +01:00
Piotr Caban 975801cceb msvcrt: Don't forward towupper and towlower to ntdll. 2013-03-27 20:12:29 +01:00
Piotr Caban 06c6773844 msvcrt: Added _wtol_l implementation. 2013-03-27 20:12:29 +01:00
Piotr Caban 5c03a35f7a msvcrt: Don't forward _wtoi to ntdll. 2013-03-27 20:12:29 +01:00
Piotr Caban 0ffc970aa4 msvcrt: Don't forward _wcsicmp to ntdll. 2013-03-27 20:12:29 +01:00
Akihiro Sagawa 0010ee021a msvcrt: Fix incorrect casts in _wcstoi64_l and _wcstoui64_l. 2013-03-11 10:41:09 +01:00
Piotr Caban 1f784a1001 msvcrt: Use CompareString in wcscoll functions. 2012-12-18 12:38:48 +01:00
Andrew Talbot 4c191378e9 msvcrt: Indentation fix. 2012-12-18 12:35:14 +01:00
Piotr Caban 3acb238f15 msvcrt: Added _wtoi_l implementation. 2012-12-12 12:00:41 +01:00
Piotr Caban c0ce611ebd msvcrt: Added wcrtomb implementation. 2012-11-30 11:43:03 +01:00
Piotr Caban 505e5a162f msvcrt: Improved _wcstod_l precision. 2012-11-06 16:02:35 +01:00
Michael Stefaniuc 0409b9895c msvcrt: Aoid TRUE:FALSE conditional expressions. 2012-08-13 17:29:40 +02:00
Alexandre Julliard 06989a0483 msvcrt: Make sure that errno is always set when calling the invalid parameter handler. 2012-07-26 11:05:32 +02:00
Piotr Caban dc830aa640 msvcrt: Rework wcsncpy_s to work on overlapping pointers. 2012-04-24 19:12:51 +02:00
Piotr Caban a80aec4c56 msvcrt: Added support for _TRUNCATE flag in wcsncpy_s. 2012-04-12 20:39:15 +02:00
Daniel Lehman 08aa6ae52d msvcrt: Add _snwprintf_l. 2012-01-09 12:52:17 +01:00
Akihiro Sagawa 13aff6dc56 msvcrt: Fix wctob in C locale. 2011-12-01 14:16:30 +01:00
Piotr Caban 45b4b4205a msvcrt: Added _iswdigit_l implementation. 2011-10-06 16:46:40 -05:00
Piotr Caban 8df606fea4 msvcrt: Fix wcsncpy_s implementation. 2011-10-04 16:54:04 -05:00
Piotr Caban af6fd252ef msvcr90: Fix _vswprintf_p implementation. 2011-09-20 16:21:40 +02:00