Commit Graph

1931 Commits

Author SHA1 Message Date
Martin Storsjo 1d17e85026 msvcrt: Ignore 'N' as format length modifier for pointers, just like 'F'.
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:07 +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 436eb3639c ucrtbase: Implement vsscanf.
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-29 21:20:09 +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
Martin Storsjo bf4493404c msvcrt: Remove a stray semicolon.
Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-15 23:35:29 +09:00
Nikolay Sivov d8623f8241 msvcrt/tests: Use matching type to get array element count (PVS-Studio).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-13 18:41:17 +09:00
Sebastian Lackner 4e941a9289 msvcrt: Pass cookie reference to msvcrt_local_unwind4 instead of value.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
2015-10-05 22:27:13 +09: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
Piotr Caban aa612612b7 msvcr60: Fix _mbscoll implementation.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
2015-10-02 15:38:35 +09:00
Piotr Caban 07762576c4 msvcrt: Add i386 __CxxExceptionFilter implementation.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
2015-10-01 16:32:34 +09:00
Piotr Caban f9bae3e5a2 msvcrt: Only create locale categories that have changed in setlocale function.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
2015-09-25 21:04:13 +02:00
Piotr Caban f075043273 msvcrt: Use create_locinfo helper in setlocale implementation.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
2015-09-25 21:04:12 +02:00
Piotr Caban ca8ef840ad msvcrt: Add create_locinfo helper function.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
2015-09-25 21:04:10 +02:00
Piotr Caban 905daf251a msvcrt: Pass pthreadlocinfo to set_lc_locale_name function.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
2015-09-25 21:04:04 +02:00
Piotr Caban d04c895b91 msvcrt: Pass pthreadlocinfo to update_threadlocinfo_category helper function.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
2015-09-25 21:04:00 +02:00
Piotr Caban ecac39c19b msvcrt: Add _wctime32_s implementation. 2015-09-15 17:02:11 +09:00
Piotr Caban 09a727c33c msvcr120: Add fmin implementation. 2015-09-14 16:47:52 +09:00
Piotr Caban b408b5a9a4 msvcrt/tests: Fix tolower test failures. 2015-09-14 16:47:52 +09:00
Andrey Gusev d3177504b1 Assorted spelling and typos fixes. 2015-08-31 20:18:46 +09:00
Martin Storsjo 8edbd9b381 msvcrt: Test that the normal strtod doesn't handle the "NAN" string. 2015-08-31 14:50:42 +09:00
Martin Storsjo a4d5bf99d4 ucrtbase: Add stub functions for narrow environment. 2015-08-28 13:15:06 +09:00
Martin Storsjo 9303c6eeed ucrtbase: Hook up _crt_atexit. 2015-08-27 17:10:08 +09:00
Daniel Lehman e26131fea3 msvcrt: Use msvcrt free instead of HeapFree on tls data. 2015-08-26 14:15:13 +09:00
Carlo Bramini 21a14e9612 msvcrt: SEEK_* macros from GLIBC should be replaced with safer MSVCRT_SEEK_* macros. 2015-08-19 08:39:02 +09:00
Andrey Gusev 5cdcd4493f Assorted spelling and typos fixes. 2015-08-18 15:00:13 +09:00
Carlo Bramini 13f34481b2 msvcrt: Use MSVCRT_xxx macros instead of the same ones from GLIBC. 2015-08-17 14:51:50 +09:00
Carlo Bramini 9b495caacf msvcrt: Call SetFilePointer() with correct parameters. 2015-08-17 14:51:46 +09:00
Francois Gouget f8a7d6ed74 Assorted spelling fixes. 2015-08-07 23:50:48 +09:00
Iván Matellanes ea2798f1ce msvcrt: _setmode should check if file descriptor is valid. 2015-08-05 23:45:50 +09:00
Daniel Lehman a7c7bc9180 msvcr110: Add Concurrency::details::_GetConcurrency. 2015-07-29 21:44:03 +02:00
Piotr Caban 2294d3ba45 msvcrt: Don't call DeleteCriticalSection on static critical section. 2015-07-16 21:21:07 +09:00
Piotr Caban cf20731447 msvcrt: Add _mbscat_s_l implementation. 2015-07-07 16:52:20 +09:00
Piotr Caban 0eb112aa6e msvcrt: Add ismbblead_l implementation. 2015-07-07 16:52:20 +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
Michael Müller ffcb4e0724 msvcrt/tests: Add additional tests for atof / strtod functions.
From: Michael Müller <michael@fds-team.de>
2015-06-29 19:07:50 +09:00
Piotr Caban e9eec98d5c msvcrt: Cache locale string to LCID conversion results. 2015-06-24 22:57:00 +09:00
Piotr Caban d940ac2412 msvcr110: Add __crtGetLocaleInfoEx implementation. 2015-06-22 20:58:31 +09:00
Piotr Caban f55192aabc msvcr120: Add ___lc_locale_name_func implementation. 2015-06-17 20:01:17 +09:00
Piotr Caban 27b7ff73e4 msvcrt: Add _ungetwch implementation. 2015-06-15 14:49:26 +09:00
Piotr Caban d4fab07110 msvcrt: Add _getwche implementation. 2015-06-15 14:49:21 +09:00
Piotr Caban 9a10a71638 msvcrt: Add _getwch implementation. 2015-06-15 14:49:16 +09:00
Piotr Caban de68efdb7d msvcrt: Fix return value of cputws. 2015-06-15 14:49:11 +09:00
Piotr Caban 9ed740377b msvcrt: Fix return value of _cputs. 2015-06-15 14:49:09 +09:00
Piotr Caban eb9e00857a msvcrt: Write directly to the console in _putwch. 2015-06-15 14:49:04 +09:00
Piotr Caban 3b5991cd80 msvcrt: Open console input handle with write permission so SetConsoleMode can work on it. 2015-06-15 14:45:10 +09:00
Piotr Caban 853d4343db msvcr: Add _ungetch_nolock implementation. 2015-06-12 21:22:41 +09:00
Piotr Caban 57754bdb29 msvcr: Add _getche_nolock implementation. 2015-06-12 21:22:41 +09:00
Piotr Caban 0a600ccde8 msvcr: Add _putch_nolock implementation. 2015-06-12 21:22:41 +09:00
Piotr Caban 3bd60974a9 msvcr: Add _getch_nolock implementation. 2015-06-12 21:22:41 +09:00
Piotr Caban 725e4733cf msvcrt: Remove no longer needed global lock from functions using fd critical sections. 2015-06-11 14:40:32 +09:00
Piotr Caban 6ed69c107f msvcrt: Avoid using global critical section while allocating new file descriptors. 2015-06-11 14:40:30 +09:00
Piotr Caban e7fc237088 msvcrt: Don't use MSVCRT_fdend in msvcrt_create_io_inherit_block. 2015-06-11 14:40:14 +09:00
Piotr Caban 417b605687 msvcrt: Fix possible deadlock in dup2 function. 2015-06-11 14:40:01 +09:00
Daniel Lehman 1a4db7cdf5 msvcrt: Add _W_GetMonths. 2015-06-10 15:26:11 +09:00
Daniel Lehman bc1eaf7a0f msvcrt: Add _W_Getdays. 2015-06-10 15:26:10 +09:00
Piotr Caban 0922865b37 msvcrt: Fix strtol implementation on strings not containing valid number. 2015-06-08 19:07:55 +09:00
Piotr Caban ba757eaec7 msvcrt: Use fd critical section in _write. 2015-06-04 19:02:31 +09:00
Piotr Caban eec7a565be msvcrt: Don't lock __badioinfo. 2015-06-04 19:02:29 +09:00
Piotr Caban f00b7f4058 msvcrt: Use fd critical section in _setmode. 2015-06-04 19:02:26 +09:00
Piotr Caban bd6eaf918c msvcrt: Get rid of msvcrt_is_valid_fd helper. 2015-06-03 22:52:04 +09:00
Piotr Caban 9ce2a8a60c msvcrt: Use fd critical section in msvcrt_create_io_inherit_block. 2015-06-03 22:52:02 +09:00
Piotr Caban 86baccc9ae msvcrt: Get rid of msvcrt_fdtoh helper. 2015-06-03 22:52:00 +09:00
Piotr Caban 9278190d46 msvcrt: Use fd critical section in _futime64. 2015-06-03 22:51:57 +09:00
Piotr Caban 16285f5700 msvcrt: Use fd critical section in read. 2015-06-03 22:51:55 +09:00
Piotr Caban b052afd4af msvcrt: Use fd critical section in msvcrt_free_fd. 2015-06-03 22:51:53 +09:00
Piotr Caban c7b0fb5154 msvcrt: Use fd critical section in dup2. 2015-06-03 22:51:50 +09:00
Daniel Lehman 65b8a3da47 msvcrt: Add __swprintf_l. 2015-06-01 14:43:54 +09:00
Daniel Lehman e89813fe3c msvcr120: Add erf functions. 2015-05-29 16:16:21 +09:00
Piotr Caban 530d269e01 msvcr120: Add _dsign implementation. 2015-05-26 22:44:52 +09:00
Piotr Caban ec2f02db0c msvcr120: Add fmax implementation. 2015-05-26 22:44:47 +09:00
Piotr Caban 70bff7377d msvcrt: Fix functions table reallocation in _onexit. 2015-05-18 14:06:40 +09:00
Hans Leidekker bbd0e56a58 msvcrt: Handle NULL arguments in _mbscmp. 2015-04-24 22:04:09 +09:00
Piotr Caban 760b78813d msvcrt: Don't ignore pmode attribute in _wsopen_s. 2015-04-17 14:53:53 +09:00
Piotr Caban ccea6c6059 msvcr120: Add some missing exports on i386 architecture. 2015-03-31 14:44:49 +09:00
Zheng Chen 829e893184 msvcrt: Fix _copysign bugs for NAN/INF. 2015-03-27 00:11:42 +09:00
Piotr Caban 248bd63b53 msvcrt/tests: Use NAN and INFINITY definitions from port.h in printf tests. 2015-03-25 22:40:09 +09:00
Piotr Caban 46db64ce1b msvcrt: Fix NAN handling in printf. 2015-03-25 22:40:06 +09:00
Piotr Caban 6de6e42a36 msvcrt/tests: Add atan, tanh and exp tests on invalid arguments. 2015-03-25 21:48:02 +09:00
Zheng Chen e95dbb3b74 msvcrt: Correct atan/exp/tanh errno setting. 2015-03-25 19:46:33 +09:00
Akihiro Sagawa cd5a76b182 msvcrt: Add _mbctokata implementation. 2015-03-17 00:20:00 +09:00
Akihiro Sagawa b6ab2b6268 msvcrt: Add _mbctohira implementation. 2015-03-17 00:19:58 +09:00
Akihiro Sagawa a2149ba7ba msvcrt: Fix _ismbckata() for Halfwidth Katakana characters. 2015-03-17 00:19:57 +09:00
Michael Stefaniuc 278b70bdd0 msvcrt: Clarify comparison of the diff of two unsigneds with 0 (PVS-Studio). 2015-03-06 20:32:02 +09:00
Alexandre Julliard b7f6362ddc msvcrt: Use the correct object type for __non_rtti_object exceptions. 2015-03-04 21:50:32 +09:00
Alexandre Julliard cdef3287db msvcrt: Undefine __thiscall before redefining it. 2015-03-04 21:50:32 +09:00
Michael Stefaniuc e67a65c59e msvcrt: Avoid identical if and else bodies (PVS-Studio). 2015-02-18 16:08:48 +09:00
Yifu Wang a11c8758b2 msvcr120: Fixed bugs in Concurrency::critical_section. 2015-02-13 18:51:21 +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 90b68f9964 msvcrt: Reset write direction after flush on read/write stream. 2015-01-26 11:22:58 +01:00
Piotr Caban 7880525f44 msvcrt: Handle read buffer flushing in msvcrt_flush_buffer helper. 2015-01-26 11:22:54 +01:00
Charles Davis 7ef720f184 msvcrt: Support 64-bit platforms that don't have finitef or isnanf. 2015-01-23 11:58:14 +01:00
Piotr Caban ba0d1586ff msvcrt: Drop read buffer in _flsbuf. 2015-01-21 18:08:11 +01:00
Piotr Caban bd1428ef50 msvcrt: Add _vscprintf_p implementation. 2015-01-20 16:08:49 +01:00
Hugh McMaster d999fd0d11 msvcrt/tests: Add more tests for _vsnwprintf. 2015-01-07 23:48:26 +01:00
Piotr Caban 1109672f13 msvcr120: Add _fdtest function implementation. 2015-01-07 23:48:21 +01:00
Piotr Caban 3af24fe1f4 msvcrt: Add _wcsset_s implementation. 2014-12-23 18:59:36 +01:00
Hugh McMaster 828a46898d msvcrt: Fix a spelling error. 2014-12-22 13:37:15 +01:00
Martin Storsjo 5f395ee8e6 msvcr120: Implement the _dclass/_fdclass/_ldclass functions. 2014-12-09 18:48:49 +01:00
Martin Storsjo 547ba7a10b msvcr120: Implement more C99 math functions. 2014-12-08 17:25:26 +01:00
Martin Storsjo 589f58d806 msvcr120: Implement the _vacopy function. 2014-12-08 17:08:51 +01:00
Piotr Caban 6c2d4f1092 msvcrt: Use fd critical section in _fstat64. 2014-12-05 20:48:02 +01:00
Piotr Caban f2f45d5fe6 msvcrt: Use fd critical section in _chsize_s. 2014-12-05 20:48:01 +01:00
Piotr Caban fa6de59770 msvcrt: Use fd critical section in _lseeki64. 2014-12-05 20:47:59 +01:00
Piotr Caban ffdd16cc0d msvcrt: Use fd critical section in _locking. 2014-12-05 20:47:57 +01:00
Piotr Caban 9a4cfbc3ed msvcrt: Use fd critical section in _eof. 2014-12-05 20:47:55 +01:00
Piotr Caban a4fcba60b9 msvcrt: Call CreateProcess with CREATE_UNICODE_ENVIRONMENT flag in exec functions family.
Based on a patch by Ron Yorston.
2014-12-04 14:03:34 +01:00
Yifu Wang 08d0508993 msvcr120: Added wchar_t* fields to struct MSVCRT_lconv. 2014-12-03 21:34:27 +01:00
Iván Matellanes 17fcef507f msvcrt: Call the _nolock variant when the file is already locked. 2014-12-01 11:11:16 +01:00
Michael Stefaniuc 42e6019c00 msvcrt/tests: Don't open code offsetof(). 2014-11-27 11:43:41 +01:00
Piotr Caban afc6962a24 msvcrt: Use fd critical section in _close. 2014-11-11 23:55:52 +09:00
Piotr Caban 4508e665c0 msvcrt: Use fd critical section in _commit. 2014-11-11 23:55:49 +09:00
Piotr Caban 1d791f5db2 msvcrt: Rename msvcrt_get_ioinfo function. 2014-11-11 23:55:43 +09:00
Piotr Caban 0c4cb6ce5d msvcrt: Initialize file descriptor critical section. 2014-11-11 23:55:34 +09:00
Iván Matellanes bcbd83d154 msvcrt: Added _fread_nolock_s implementation. 2014-11-10 19:25:15 +09:00
Iván Matellanes 4f807d9ae9 msvcrt: Added _ungetwc_nolock implementation. 2014-11-05 13:15:44 +09:00
Iván Matellanes 6f24dd9677 msvcrt: Added _ungetc_nolock implementation. 2014-11-05 13:15:20 +09:00
Iván Matellanes b536ff62ef msvcrt: Added _fputwc_nolock implementation. 2014-11-05 13:14:35 +09:00
Iván Matellanes 975a95a25b msvcrt: Added _fputc_nolock implementation. 2014-11-05 13:14:03 +09:00
Iván Matellanes 89d91168a0 msvcrt: Use correct type for fread and fwrite return values. 2014-11-04 13:31:33 +09:00
Iván Matellanes 20e0a6f20d msvcrt: Avoid locking the file in _fclose_nolock. 2014-11-04 13:31:29 +09:00
Iván Matellanes 156684ba91 msvcrt: Added _fgetwc_nolock implementation. 2014-10-31 15:35:36 +09:00
Iván Matellanes 878b4a9280 msvcrt: Added _fgetc_nolock implementation. 2014-10-31 15:35:24 +09:00
Iván Matellanes f896cd3dc9 msvcrt: _filbuf should not lock any file. 2014-10-31 15:35:19 +09: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
Vincent Povirk 5ba68bb966 msvcrt: Implement _strtoul_l. 2014-10-29 20:31:03 +09:00
Iván Matellanes 4bb80afedc msvcrt: Added _fflush_nolock implementation.
Thanks to Piotr Caban for the test.
2014-10-27 19:03:57 +09:00
Iván Matellanes c53e0384a5 msvcrt: Added _fseek_nolock implementation. 2014-10-16 13:02:24 +09:00
Iván Matellanes 5077d8c137 msvcrt: Added _fseeki64_nolock implementation. 2014-10-16 13:02:16 +09:00
Iván Matellanes 50574ccffa msvcrt: Added _ftell_nolock implementation. 2014-10-16 13:02:08 +09:00
Iván Matellanes 7cf0c877b3 msvcrt: Added _ftelli64_nolock implementation. 2014-10-16 13:01:59 +09:00
Iván Matellanes 25d7a1bbbf msvcrt: Added _fwrite_nolock() implementation. 2014-10-13 18:09:06 +09:00
Iván Matellanes 206ea48f20 msvcrt: Added _fread_nolock() implementation. 2014-10-13 18:08:54 +09:00
Iván Matellanes 9fda14a9d6 msvcrt: Added _fclose_nolock() implementation. 2014-10-08 14:47:46 +02:00
Francois Gouget f63fd82610 msvcrt: Prefix _set_output_format() with MSVCRT_ to avoid a collision with MinGW. 2014-09-15 10:12:24 +02:00
Nikolay Sivov 1228f0bba5 msvcrt: Added __dstbias() export. 2014-09-10 21:36:52 +02: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 43be238331 msvcr80: Throw bad_alloc exception when operator new fails. 2014-09-02 20:54:47 +02:00
Piotr Caban 53869e19eb msvcrt: Add _strnset_s implementation. 2014-09-02 15:07:27 +02:00
Nikolay Sivov 60de49770c msvcrt: Implement llabs(). 2014-08-29 20:38:42 +02:00
Piotr Caban d3a48ee342 msvcrt: Only check for flag presence in isatty function. 2014-08-04 16:18:10 +02:00
Piotr Caban a566569305 msvcrt: Always set fd to -1 in _sopen_s on failure. 2014-07-10 15:23:02 +02:00
Piotr Caban 0350b6c7fd msvcrt: Fix buffer allocation in setvbuf. 2014-06-30 22:04:52 +02:00
Frédéric Delanoy b9e306ee78 msvcrt: Avoid potential integer overflow when computing median position in bsearch. 2014-06-30 22:04:52 +02:00
Piotr Caban 60eb44d820 msvcrt: Don't touch _bufsiz value while initializing FILE structure. 2014-06-27 10:37:54 +02:00