Daniel Lehman
ee65859b7f
msvcrt: Treat large exponent as overflow in strtod.
...
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-07-17 00:04:13 +02:00
Daniel Lehman
0945ba00fb
msvcrt: Set errno in strtod.
...
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-07-17 00:04:13 +02:00
Piotr Caban
ec148864d6
msvcrt: Move big numbers implementation to new file.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-13 21:22:11 +02:00
Piotr Caban
bfa1e3ef8f
msvcrt: Use internal sprintf implementation.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-08 21:01:33 +02:00
Francois Gouget
10bfa512df
msvcrt: Fix a couple of spelling errors in comments.
...
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-18 11:52:37 +02:00
Piotr Caban
ab5e48f4fc
msvcrt: Fix 0 parsing in parse_double helper.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-04 12:39:09 +02:00
Piotr Caban
65642f4bb7
msvcrt: Avoid depending on signed variable overflow in parse_double.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-01 21:51:31 +02:00
Piotr Caban
ed07d07bed
msvcrt: Improve string to double conversion accuracy.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-28 22:01:33 +02:00
Piotr Caban
405c99ef52
msvcrt: Fix overflow checks in parse_double.
...
Old check is optimized out in gcc 9.3.0 when -O2 optimization is
enabled.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-28 22:01:00 +02:00
Piotr Caban
471425c16d
msvcrt: Optimize _strnicmp_l implementation.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48723
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-09 22:16:30 +01:00
Alexandre Julliard
4e2da207d7
msvcrt: Use unsigned comparisons in strcmp and strncmp.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48454
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-16 12:21:11 +01:00
Piotr Caban
3fc3d24c3c
ucrtbase: Fix end pointer setting in parse_double on partial nan/infinity match.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-07 22:26:08 +01:00
Piotr Caban
1d91c196e7
ucrtbase: Fix 0 parsing in parse_double.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-03 21:40:59 +01:00
Erich E. Hoover
f99d307a3e
msvcrt: Use parse_double for scanf floats.
...
Signed-off-by: Erich E. Hoover <erich.e.hoover@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-02 19:16:02 +01:00
Erich E. Hoover
b12d6d405a
msvcrt: Rework strtod_helper to be reusable.
...
Signed-off-by: Erich E. Hoover <erich.e.hoover@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-02 17:43:12 +01:00
Piotr Caban
5034d109e0
msvcrt: Improve strtod precision.
...
This fixes strtod precision regression. It also removes floating
point operations.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-30 21:11:45 +01:00
Erich E. Hoover
27b9a420ea
msvcrt: Fix [str|wcs]tod result being compared against FLT_MAX.
...
Also a more straightforward way of fixing the tests on i386 Linux.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48324
Signed-off-by: Erich E. Hoover <erich.e.hoover@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-23 20:13:23 +01:00
Erich E. Hoover
c22af971c2
msvcrt: Implement strtod without using 'long double'.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48160
Signed-off-by: Erich E. Hoover <erich.e.hoover@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-19 16:20:39 +01:00
Gijs Vermeulen
e44d935cc6
msvcrt: Optimize _strlwr implementation in C locale.
...
Tests by Ambrož Bizjak.
Signed-off-by: Gijs Vermeulen <gijsvrm@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-04 16:44:06 +01:00
Piotr Caban
c953c36d11
ucrtbase: Fix hexadecimal floats parsing in strtod.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-22 18:02:59 +01:00
Piotr Caban
e2423823fc
msvcrt: Use isspace_l in string to number conversion functions.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-22 18:02:51 +01:00
Alexandre Julliard
97425bd963
msvcrt: Reimplement strcmp/strncmp to get consistent return values.
...
The system functions may not always return -1 or 1.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-31 09:56:03 +01:00
Piotr Caban
df60573653
msvcrt: Don't use strstr from C-library.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-28 19:19:33 +01:00
Piotr Caban
69ea905674
msvcrt: Don't use strcspn from C-library.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-28 19:19:33 +01: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
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
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
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
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
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
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
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
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
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
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
Nikolay Sivov
d045a5ea29
msvcrt: Implement _memicmp_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>
2017-11-08 20:21:10 +01:00
Piotr Caban
395a65bdc6
msvcrt: Fix strcpy implementation so it works on overlapping buffers.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-06 10:34:11 +09:00
Bernhard Übelacker
4fa616c37c
msvcrt: Fix strtok_s and _mbstok_s for empty strings.
...
Signed-off-by: Bernhard Übelacker <bernhardu@mailbox.org>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-18 20:38:15 +09:00
Bernhard Übelacker
78716aebf8
msvcr120: Implement strtof and _strtof_l.
...
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
Piotr Caban
5e10634a5a
msvcrt: Add _strtol_l implementation.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-21 18:19:54 +01:00
Martin Storsjo
8578702e06
ucrtbase: Make the strtod implementation C99 compatible.
...
Add a test for ucrtbase that verifies these aspects of the C99
behaviour of strtod.
Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
2015-10-02 20:50:10 +09:00
Sebastian Lackner
abbb361733
msvcrt: Set *end to NULL when strtod is called with NULL pointer string.
2015-06-29 19:07:50 +09:00
Piotr Caban
0922865b37
msvcrt: Fix strtol implementation on strings not containing valid number.
2015-06-08 19:07:55 +09:00
Vincent Povirk
5ba68bb966
msvcrt: Implement _strtoul_l.
2014-10-29 20:31:03 +09:00
Piotr Caban
7cf23a7957
msvcrt: Fix _stricmp behavior on characters that doesn't fit into signed char.
2014-09-03 16:31:01 +02:00
Piotr Caban
53869e19eb
msvcrt: Add _strnset_s implementation.
2014-09-02 15:07:27 +02:00
Piotr Caban
00bce25143
msvcrt: Add _strxfrm_l implementation.
2014-06-12 18:25:23 +02:00
Piotr Caban
49e503c55a
msvcrt: Remove no longer needed exports.
2014-04-21 14:31:48 +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
619944cf58
msvcrt: Fix str*coll functions behavior in C locale.
2014-01-27 14:13:27 +01:00
Piotr Caban
f906be9ef4
msvcrt: Don't validate parameters in _itoa function.
2013-10-15 16:36:25 +02:00
Piotr Caban
d99090aff8
msvcrt: Don't forward _itoa to ntdll.
2013-10-01 13:10:21 +02:00
Frédéric Delanoy
cb7546eaf7
msvcrt: Use BOOL type where appropriate.
2013-09-27 10:44:55 +02:00
Piotr Caban
a449b2d57b
msvcrt: Call MSVCRT_strtoi64_l in strtoul implementation.
2013-09-25 19:30:32 +02:00
Piotr Caban
c3c44544ff
msvcrt: Call MSVCRT_strtoi64_l in strtol implementation.
2013-09-25 19:30:30 +02:00
Piotr Caban
019c34ca1e
msvcrt: Don't forward strstr to ntdll.
2013-09-17 16:25:28 +02:00
Piotr Caban
138df7da33
msvcrt: Don't forward strrchr to ntdll.
2013-09-17 16:25:23 +02:00
Piotr Caban
31d92b926e
msvcrt: Don't forward strncat to ntdll.
2013-09-17 16:25:04 +02:00
Piotr Caban
f0ec9b134a
msvcrt: Don't forward strlen to ntdll.
2013-09-17 16:24:58 +02:00
Piotr Caban
1803016c08
msvcrt: Don't forward strcmp to ntdll.
2013-09-17 16:24:53 +02:00
Piotr Caban
5b1f7f8549
msvcrt: Don't forward memmove to ntdll.
2013-09-17 16:24:46 +02:00
Piotr Caban
4fbf246298
msvcrt: Don't forward memcmp to ntdll.
2013-09-17 16:24:39 +02:00
Álvaro Nieto
e3e1284557
msvrct: Fix strncpy to fill the buffer.
2013-08-16 20:49:36 +02:00
Piotr Caban
bba1db0905
msvcrt: Don't forward memchr to ntdll.
2013-06-21 16:23:35 +02:00
Piotr Caban
f3eb64ec73
msvcrt: Don't detect overflow in atoi implementation.
2013-06-04 21:01:13 +02:00
Jactry Zeng
7cd91b6452
msvcrt: Fixed typo of _strncoll and _strncoll_l.
2013-04-29 20:30:55 +02:00
Piotr Caban
b626556272
msvcrt: Don't forward strncpy to ntdll.
2013-03-27 20:12:29 +01:00
Piotr Caban
e66e950459
msvcrt: Don't forward strncmp to ntdll.
2013-03-27 20:12:29 +01:00
Piotr Caban
bf237452ef
msvcrt: Don't forward strchr to ntdll.
2013-03-27 20:12:29 +01:00
Piotr Caban
1278080901
msvcrt: Don't forward memset to ntdll.
2013-03-27 20:12:29 +01:00
Piotr Caban
15b40e7b9c
msvcrt: Don't forward atoi to ntdll.
2013-03-27 20:12:29 +01:00
Piotr Caban
737bb1bb18
msvcrt: Fixed copied buffer size in _ui64tow_s.
2013-03-25 16:28:07 +01:00
Piotr Caban
6382bc5219
msvcrt: Don't call invalid parameter handler in str{n,i}cmp functions.
2013-01-28 14:06:09 +01:00
Piotr Caban
eaa1b70603
msvcrt: Added _strnicmp_l implementation.
2012-12-26 18:23:05 +01:00
Piotr Caban
dbec250635
msvcrt: Added _stricmp_l implementation.
2012-12-24 13:34:04 +01:00
Piotr Caban
0c91daee8b
msvcrt: Use LC_COLLATE category in strcoll functions.
2012-12-18 12:38:39 +01:00
Piotr Caban
3b5ab1b48f
msvcrt: Added _atodbl_l implementation.
2012-12-17 20:31:25 +01:00
Piotr Caban
38bf8ac44b
msvcrt: Don't duplicate floating-point number parsing code in MSVCRT__atoflt_l.
2012-12-17 20:31:24 +01:00
Austin English
c8e71e9a3e
msvcrt: Implement memcpy in msvcrt instead of forwarding to ntdll.
2012-12-14 12:15:05 +01:00
Piotr Caban
b5cf3057e9
msvcrt: Added _atoi_l implementation.
2012-12-12 12:00:46 +01:00
Piotr Caban
cbb94b1fcc
msvcrt: Improved strtod_l precision.
2012-11-06 16:02:36 +01:00
Piotr Caban
a3035679d5
msvcrt: Improved _atoflt_l precision.
2012-11-06 16:02:35 +01: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
Francois Gouget
d817bbd6f4
msvcrt: Use the CSTR_XXX macros instead of numeric literals.
2012-06-21 08:33:36 +02:00
Eric Pouech
d7bc2eff2f
msvcrt: Implemented _ultow_s.
2011-11-29 13:23:47 +01:00
Francois Gouget
7da4305aec
msvcrt: Fix printing NULL strings.
2011-09-20 16:21:39 +02:00
Piotr Caban
e398b93900
msvcrt: Improved tolower_l and toupper_l implementation.
2011-06-03 17:44:06 +02:00
Piotr Caban
f9de4eef75
msvcrt: Fix mingw compilation issues.
2011-06-03 17:44:06 +02:00
Piotr Caban
6991ac0331
msvcrt: Use get_locinfo instead of get_locale.
2011-05-25 11:45:42 +02:00
Piotr Caban
c43176b094
msvcrt: Fix return values in strlwr and strupr functions.
2011-05-16 16:36:01 +02:00
Piotr Caban
b5d1d8e2b5
msvcrt: Added _strnicoll_l implementation.
2011-05-12 14:28:12 +02:00