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
Carlo Bramini
21a14e9612
msvcrt: SEEK_* macros from GLIBC should be replaced with safer MSVCRT_SEEK_* macros.
2015-08-19 08:39:02 +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
Iván Matellanes
ea2798f1ce
msvcrt: _setmode should check if file descriptor is valid.
2015-08-05 23:45:50 +09:00
Piotr Caban
2294d3ba45
msvcrt: Don't call DeleteCriticalSection on static critical section.
2015-07-16 21:21:07 +09:00
Piotr Caban
eb9e00857a
msvcrt: Write directly to the console in _putwch.
2015-06-15 14:49:04 +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
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
Piotr Caban
760b78813d
msvcrt: Don't ignore pmode attribute in _wsopen_s.
2015-04-17 14:53:53 +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
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
Piotr Caban
ba0d1586ff
msvcrt: Drop read buffer in _flsbuf.
2015-01-21 18:08:11 +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
Iván Matellanes
17fcef507f
msvcrt: Call the _nolock variant when the file is already locked.
2014-12-01 11:11:16 +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
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
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
Piotr Caban
60eb44d820
msvcrt: Don't touch _bufsiz value while initializing FILE structure.
2014-06-27 10:37:54 +02:00
Piotr Caban
fffbc8e570
msvcrt: Use file->_flag to check if file buffering is enabled.
2014-06-27 10:37:51 +02:00
Piotr Caban
18a416f7d5
msvcrt: Support NULL buffer in setvbuf.
2014-06-26 19:00:41 +02:00
Piotr Caban
1ae475dae8
msvcrt: Fix ungetc on files with empty buffer.
2014-06-26 19:00:41 +02:00
Piotr Caban
f91f24f6e7
msvcrt: Fix _flsbuf behavior on streams with MSVCRT__IONBF flag.
2014-06-26 19:00:40 +02:00
Grazvydas Ignotas
ad968be779
msvcrt: Implement bufsiz block flushing behavior.
2014-06-25 11:48:13 +02:00
Grazvydas Ignotas
c6a160691a
msvcrt: Clear _cnt on buffer flush.
2014-06-25 11:47:30 +02:00
Grazvydas Ignotas
40067dd011
msvcrt: Change internal buffer size to 4k.
2014-06-17 12:35:48 +02:00
Grazvydas Ignotas
9614283996
msvcrt: Free old buffer properly in setvbuf.
2014-06-17 12:35:22 +02:00
Piotr Caban
b0424313fd
msvcrt: Handle negative file->_cnt value in fwrite.
2014-06-11 19:15:26 +02:00
Piotr Caban
42e800fe79
msvcrt: Fix ioinfo structure size.
2014-05-07 10:27:46 +02:00
Victor Martinez Calvo
f6bb1a51a9
msvcrt: Avoid null dereference in TRACE in MSVCRT__wfreopen.
2014-04-30 18:33:00 +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
6ad441cd6b
msvcrt: Return error on invalid handle in _open_osfhandle.
2014-02-12 19:15:28 +01:00
Piotr Caban
5e3cadf834
msvcrt: Don't close handles returned by GetStdHandle function.
2014-01-28 10:53:21 +01:00
Piotr Caban
6f4a181709
msvcrt: Flush standard streams in flushall function.
2014-01-28 10:53:09 +01:00
Piotr Caban
e16059113c
msvcrt: Support _IOSTRG flag in _filbuf function.
2014-01-28 10:52:35 +01:00
Piotr Caban
ed2d53a36a
msvcrt: Don't write to buffer in ungetc if _IOSTRG flag is specified.
2013-12-30 19:44:08 +01:00
Piotr Caban
6122c2ba37
msvcrt: Convert data to multibyte encoding in ungetwc if needed.
2013-12-30 19:44:02 +01:00
Andrey Zhezherun
3bb2c11757
msvcrt: Implemented _chsize_s.
2013-11-05 20:38:20 +01:00
Piotr Caban
647817b018
msvcrt: Don't call invalid parameter handler on invalid mode flag.
2013-11-01 14:17:31 +01:00
Piotr Caban
afec0b00bd
msvcrt: Make the first call to fwrite buffered.
2013-10-21 21:06:15 +02:00
Piotr Caban
024ece50e8
msvcrt: Fix parameter validation in _stat64 function.
2013-08-26 15:01:37 +02:00
Vincent Povirk
5f2e48f737
msvcrt: _[w]access_s returns an error code.
2013-08-22 10:27:54 +02:00
Piotr Caban
089cc78182
msvcrt: Fix lookahead buffer usage on pipes.
2013-08-21 19:52:51 +02:00
Piotr Caban
f42c631d6e
msvcrt: Improve setting standard handles flags.
2013-08-21 19:52:37 +02:00
Piotr Caban
b6fc57ec84
msvcrt: Add _wmktemp_s implementation.
2013-07-24 14:35:12 -05:00
Piotr Caban
7d41f9b3e9
msvcrt: Add _mktemp_s implementation.
2013-07-24 14:35:11 -05:00
Piotr Caban
ce9d4b807e
msvcrt: Fix _mktemp implementation.
2013-07-24 14:35:11 -05:00
Piotr Caban
598ff4dd5a
msvcrt: Reuse FILE object in wfreopen function.
2013-06-04 14:59:20 +02:00
Piotr Caban
f99742a539
msvcrt: Move _fstat32 and _fstat64i32 functions to msvcrt.
2013-04-30 18:44:46 +02:00
Piotr Caban
280f8237b5
msvcrt: Move fread_s function to msvcrt.
2013-03-28 18:54:42 +01:00
Piotr Caban
6eeb000c90
msvcrt: Fixed fgetwc behavior on multibyte characters and Unicode files.
2013-03-25 16:24:13 +01:00
Piotr Caban
cde73251d8
msvcrt: Remove incorrect cast in fgetws function.
2013-03-25 16:24:01 +01:00
Piotr Caban
027d985210
msvcrt: Limit access to out buffer in fread function.
...
DVDFab HD Decrypter expects that unused part of output buffer is not
modified.
2013-03-14 14:56:10 +01:00
Piotr Caban
8e5bebe262
msvcrt: Rename msvcrt_alloc_fd_from to msvcrt_set_fd.
2013-03-05 12:43:36 +01:00
Piotr Caban
db92137f83
msvcrt: Reuse standard file descriptors after closing them.
2013-03-04 11:14:45 +01:00
Piotr Caban
f565e4a315
msvcrt: Don't duplicate standard handles during initialization.
2013-03-04 11:14:41 +01:00
Andrew Talbot
d8efcc9cb3
msvcrt: Avoid signed-unsigned integer comparisons.
2013-02-20 10:33:38 +01:00
Piotr Caban
a8df9b14ad
msvcrt: Use temporary buffers to speed up operations on stdout and stderr.
2013-01-30 13:05:29 +01:00
Piotr Caban
2ee5323a91
msvcrt: Don't make stdout and stderr bufferred when writing to console.
2013-01-30 13:05:29 +01:00
Francois Gouget
a5ff4b8088
Assorted spelling fixes.
2013-01-29 12:13:04 +01:00
Piotr Caban
7654d95462
msvcrt: Added N flag support to fopen.
2013-01-25 17:30:18 +01:00
Piotr Caban
ab4b4d34c3
msvcrt: Ignore S and R flags in fopen.
2013-01-25 17:30:10 +01:00
Marcus Meissner
a8b076d67f
msvcrt: read_utf8: free readbuf on return (Coverity).
2013-01-21 12:51:15 +01:00
Piotr Caban
7f4e1c65b1
msvcrt: Added support for commit flag in fopen.
2013-01-18 13:28:58 +01:00
Alexandre Julliard
afee133b65
msvcrt: Fix incorrect use of the system wctomb function.
2013-01-14 13:47:00 +01:00
Piotr Caban
5515170d13
msvcrt: Be less strict while parsing file open mode in fopen function.
2013-01-14 11:04:19 +01:00
Piotr Caban
c1792e1a8a
msvcrt: Fixed ftell behaviour when file is opened for writing in text mode.
2013-01-11 12:04:36 +01:00
Piotr Caban
1fae72e759
msvcrt: Don't add '\r' character in fputws function.
...
write is responsible for adding '\r' characters, don't do it twice.
2013-01-11 12:04:29 +01:00
Piotr Caban
a8c2ae1751
msvcrt: Use fputwc to output characters to file in fprintf functions.
2013-01-11 12:04:18 +01:00
Piotr Caban
ebfa653618
msvcrt: Make fputwc encoding aware.
2013-01-11 12:04:08 +01:00
Piotr Caban
d88aa37e59
msvcrt: Added UTF8 support to read function.
2013-01-10 12:29:13 +01:00
Piotr Caban
ac3cdc7ffa
msvcrt: Added UTF16 support to read function.
2013-01-10 12:29:07 +01:00
Piotr Caban
a0ef884542
msvcrt: Added unicode modes support _setmode function.
2013-01-10 12:28:53 +01:00
Piotr Caban
eeb7d0a649
msvcrt: Improved ftell implementation.
2013-01-10 12:28:47 +01:00
Piotr Caban
4ffa9364eb
msvcrt: Simplify fseek implementation.
2013-01-10 12:28:39 +01:00
Piotr Caban
568a3be869
msvcrt: Call ftell function in fgetpos.
2013-01-10 12:28:32 +01:00
Piotr Caban
6e011b8310
msvcrt: Fixed handling of '\r' when it's the last character in the buffer in read.
2013-01-10 12:28:24 +01:00
Piotr Caban
94e3647533
msvcrt: Added support for unicode mode in write function.
2013-01-10 12:27:48 +01:00
Piotr Caban
447f4fa51c
msvcrt: Call _wsopen_s function in _sopen_s.
2013-01-10 12:27:36 +01:00
Piotr Caban
424ce2d2f5
msvcrt: Added support for unicode text mode in open functions family.
2013-01-10 12:27:10 +01:00
Piotr Caban
96be6eb570
msvcrt: Added support for unicode open mode in msvcrt_get_flags function.
2013-01-10 12:26:53 +01:00
Piotr Caban
a6daa3519d
msvcrt: Don't duplicate wfsopen functionality in wfrepopen.
2013-01-10 12:23:49 +01:00
Piotr Caban
bcf4467b86
msvcrt: Return error in stat function when path is specified with trailing slash character.
2012-12-27 17:15:39 +01:00
Piotr Caban
bc33d39e23
msvcrt: Don't flush stream in fputs function.
2012-12-13 18:24:03 +01:00
Piotr Caban
3b41fab0e9
msvcrt: Added _fwprintf_l implementation.
2012-12-12 12:01:11 +01:00
Piotr Caban
48335be04e
msvcrt: Added _vfwprintf_l implementation.
2012-12-12 12:01:01 +01:00
Piotr Caban
d3ecfe0599
msvcrt: Fixed _localtime64 implementation.
2012-12-10 17:36:28 +01:00
Piotr Caban
ec26342c88
msvcrt: Allocate buffer in fwrite function.
2012-11-02 19:47:33 +01:00
Piotr Caban
39345a1b15
msvcrt: Fixed _ungetwc implementation.
2012-10-24 11:25:33 +02:00
Piotr Caban
c00702cd6e
msvcrt: Fixed tmpfile implementation.
2012-10-16 20:45:44 +02: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
André Hentschel
f09a40a215
msvcrt: Add tmpfile_s implementation.
2012-07-18 11:49:19 +02:00
Robert van Herk
516bb0ba64
msvcrt: Fix file mode T (temporary file).
2012-03-28 11:47:13 +02:00
Akihiro Sagawa
cf7479ca85
msvcrt: Add support for _flushall to clear all input buffer.
2012-03-14 12:59:11 +01:00
Akihiro Sagawa
58d6a9a331
msvcrt: Add a helper function to flush all buffers.
2012-03-14 12:59:10 +01:00
Akihiro Sagawa
1a01893c74
msvcrt: Add support for fflush to clear an input buffer.
2012-03-14 12:59:10 +01:00
Piotr Caban
c39793087d
msvcrt: Handle negative file->_cnt value in _flsbuf function.
2012-02-07 09:32:20 -06:00
Eric Pouech
f8b29a0685
msvcrt: Fix TRACE format modifier for wfreopen.
2012-02-06 10:19:32 -06:00
Daniel Lehman
85559848ff
msvcrt: Sync _wtempnam with _tempnam.
2012-01-09 12:52:16 +01:00
Piotr Caban
66520ea08a
msvcrt: Fix FILE critical section initialization.
2011-11-24 20:57:01 +01:00
Piotr Caban
3fe5e6ee8a
msvcrt: Keep FILE critical section initialized after closing file.
2011-11-23 14:14:39 +01:00
Francois Gouget
d78bfe1149
msvcrt: Statically initialize and name the MSVCRT_file_cs critical section.
2011-11-16 17:02:10 +01:00
Piotr Caban
764b85511c
msvcrt: Don't use fputc in flsbuf implementation.
2011-11-16 17:01:09 +01:00
Piotr Caban
e4ac347075
msvcrt: Don't hold FILE critical section in some functions.
2011-11-15 19:37:37 +01:00
André Hentschel
947d1bf588
msvcrt: Implement _wfreopen_s.
2011-11-15 11:48:38 +01:00
André Hentschel
ba5b0c34a8
msvcrt: Implement freopen_s.
2011-11-15 11:48:24 +01:00
Francois Gouget
f2043352d1
msvcrt: Give a name to the critical sections.
2011-11-14 20:15:33 +01:00
Piotr Caban
c867f3324e
msvcrt: Free fd entries with incorrect HANDLE value.
2011-10-06 16:46:40 -05:00