Commit Graph

289 Commits

Author SHA1 Message Date
Piotr Caban 64cf208040 msvcrt: Don't pass NULL as __ms_va_list in printf implementation. 2011-05-11 17:49:16 +02:00
Piotr Caban 2a3484a22d msvcrt: Added _wtmpnam implementation. 2011-05-03 19:34:26 +02:00
Francois Gouget 4df46f69bf msvcrt: Fix compilation on systems that don't support nameless unions. 2011-04-28 17:59:06 +02:00
Piotr Caban b9e456aa79 msvcrt: Use callback based printf in fprintf functions family. 2011-04-25 14:36:31 +02:00
Eric Pouech a42bf0134c msvcrt: ungetc must create a buffer, even if _IONBF has been set with setvbuf. 2011-04-25 11:39:57 +02:00
Andrew Nguyen 6329d0d47d msvcrt: Avoid the use of SetFilePointerEx in _lseeki64. 2011-04-20 16:33:31 +02:00
Nikolay Sivov 8d09b40835 msvcrt: Implement _wsopen_s. 2011-01-27 14:14:41 +01:00
Nikolay Sivov 2a6060f4c4 msvcrt: Implemented _sopen_s. 2011-01-26 15:00:13 +01:00
Austin English 6374205eb4 msvcrt: Fix a compiler warning on PowerPC. 2010-12-03 11:04:03 +01:00
Eryk Wieliczko 91bc6c5201 msvcrt: Implement fprintf_s and fwprintf_s. 2010-11-25 11:55:31 +01:00
Eryk Wieliczko 133a38fcfb msvcrt: Implement printf_s and wprintf_s. 2010-11-25 11:55:20 +01:00
Eryk Wieliczko 6296d95b9e msvcrt: Implement vprintf_s and vwprintf_s. 2010-11-25 11:55:05 +01:00
Eryk Wieliczko 8bf437d827 msvcrt: Implement vfprintf_s and vfwprintf_s. 2010-11-25 11:53:07 +01:00
Eryk Wieliczko c9bd269db1 msvcrt: Fixed (_w)fopen_s with test. 2010-11-11 14:19:38 +01:00
Eric Pouech 4d86e49173 msvcrt: Correctly manage va_list:s in vf(w)printf ny using auto-grow buffer in prinf engine. 2010-11-08 18:12:58 +01:00
Eryk Wieliczko a3927b5e09 msvcrt: Implement _ftelli64. 2010-11-03 14:45:17 +01:00
Eric Pouech cff575fbb3 msvcrt: Implemented _(w)access_s. 2010-11-03 11:08:55 +01:00
Eric Pouech d36cfcf48a msvcrt: Implemented _putwch. 2010-11-03 11:08:55 +01:00
Eryk Wieliczko e81a929e6b msvcrt: Implement _fseeki64. 2010-11-02 11:19:56 +01:00
Eryk Wieliczko 38d1ea2a5b msvcrt: Add stub functions _lock_file and _unlock_file. 2010-11-02 11:19:15 +01:00
Eric Pouech 00f07046c0 msvcrt: Use the new parameter checking macros for f(w)open_s functions. 2010-11-01 12:34:40 +01:00
Piotr Caban 2ff04b9d57 msvcrt: Added _wfopen_s implementation. 2010-04-21 11:07:45 +02:00
Piotr Caban 1b4bacea8c msvcrt: Added fopen_s implementation. 2010-04-19 15:12:10 +02:00
Piotr Caban d1fa8b64e4 msvcrt: Use per thread locale in many functions. 2010-04-15 16:51:47 +02:00
Piotr Caban b90320652d msvcrt: Rename functions conflicting with mingw headers. 2010-03-29 15:50:19 +02:00
Uwe Bonnes 0d16965832 msvcrt: read_i should pull in LF after CR only in unbuffered mode. 2010-01-28 15:30:26 +01:00
Uwe Bonnes 92ac665d37 msvcrt: Check for EOF before correcting CR/LF. 2010-01-28 15:30:26 +01:00
Uwe Bonnes e6f1ae029e msvcrt: Handle CR at buffer boundary and test case. 2010-01-18 15:32:53 +01:00
Uwe Bonnes d95c857a4f msvcrt: xxopen() accepts spaces in the mode string. 2010-01-18 14:36:43 +01:00
Jeff Zaroyko c2459deeff msvcrt: Check if argument passed to _dup2 is positive. 2010-01-14 09:41:43 -06:00
Alexandre Julliard ded81aebc7 msvcrt: Add validity checks on the size of the handle inheritance block. 2009-09-10 15:29:04 +02:00
Michael Stefaniuc 5f0fb8350f msvcrt: Replace size_t with MSVCRT_size_t. 2009-05-27 15:39:57 +02:00
Alexandre Julliard 82f175e9b5 msvcrt: Replace long by MSVCRT_long. 2009-05-23 11:57:39 +02:00
Alexandre Julliard ac760a47f3 msvcrt: Fix the stat and finddata structures for 64-bit. 2009-05-23 11:57:12 +02:00
Alexandre Julliard 4a7b3460ef msvcrt: Add explicit 32- and 64-bit versions of the utime functions. 2009-05-23 11:12:17 +02:00
Alexandre Julliard 1c91d54503 msvcrt: Don't try to duplicate invalid handles. Don't reset std handles if we didn't set them. 2009-02-18 14:44:17 +01:00
Michael Stefaniuc 9d4c9a0cdd msvcrt: Remove superfluous pointer casts. 2009-01-29 14:06:15 +01:00
Dan Kegel 7f3c70c52f msvcrt: Remove CRs earlier in ascii mode in fseek, too. 2009-01-29 12:21:11 +01:00
Dan Kegel 5bf1ae82f1 msvcrt: _flsbuf zeroes _cnt. 2009-01-29 12:20:44 +01:00
Hans Leidekker d2a383b658 msvcrt: Forward ANSI open functions to their Unicode counterparts instead of the other way around. Implement _wfreopen. 2009-01-19 14:22:57 +01:00
Dan Kegel ebe4a9e321 msvcrt: Remove CRs earlier in ascii mode. 2009-01-19 13:36:26 +01:00
Alexandre Julliard dd34f924be msvcrt: Convert the open functions to use MS ABI varargs. 2009-01-03 11:38:25 +01:00
Alexandre Julliard 07ca8f4f8f msvcrt: Convert all the printf functions to use MS ABI varargs. 2009-01-03 11:38:25 +01:00
Dan Kegel 72ffe1da67 msvcrt: fread: Exhaust buffered data before using unbuffered data in ascii mode. 2008-12-16 14:23:40 +01:00
Alexandre Julliard b19913ac70 msvcrt: Add a few more *_func functions to replace the __p_* ones. 2008-12-15 16:03:32 +01:00
Alexandre Julliard 4305e6d119 msvcrt: Use iob_func instead of p__iob on non-x86. 2008-12-12 10:19:55 +01:00
Alexandre Julliard d8ab5a14aa msvcrt: Use intptr_t or size_t instead of long where appropriate. 2008-12-12 10:19:55 +01:00
Francois Gouget e766985b20 msvcrt: Fix the permissions returned by fstat*() (with test). 2008-12-10 10:47:34 +01:00
Andrew Talbot 4c3d27dfee msvcrt: Sign-compare warnings fix. 2008-10-22 13:54:53 +02:00
Michael Karcher 5f2159e806 msvcrt/file: stdio should clamp characters to 8 bits. 2008-08-19 13:04:44 +02:00
Alexandre Julliard 9c29dbd987 Avoid exporting common symbols since that's broken on Mac OS X. 2008-07-21 14:47:55 +02:00
Alexandre Julliard b43fd31287 msvcrt: Rename a few functions to avoid conflicts with Windows headers. 2008-04-29 20:18:19 +02:00
Erik de Castro Lopo 60501aa93e msvcrt: Clear end-of-file flag on fseek. 2008-04-09 11:43:35 +02:00
Andrew Talbot 32d7a9e668 msvcrt: Assign to structs instead of using memcpy. 2008-03-07 11:01:07 +01:00
James Hawkins eedfacdfe7 janitorial: Remove links to any microsoft site. 2008-03-01 12:04:03 +01:00
Dan Kegel 316869b273 msvcrt: Fix EOF behavior on read from pipe or console.
The canonical way to detect EOF on read is when you request more than
zero bytes, but zero bytes come back.  Switching to this method seems
to handle a few problem cases better.  Also handle ERROR_BROKEN_PIPE
properly just in case.
2008-02-12 22:35:20 +01:00
Andrew Talbot edaa0fbc13 msvcrt: Remove unneeded cast. 2007-12-24 13:30:20 +01:00
Dan Kegel 56eb6f6730 msvcrt: Fix ^Z handling in text mode. 2007-10-09 11:39:57 +02:00
Dan Kegel 4cd3a16f18 msvcrt: Improve CR CR LF handling. 2007-10-05 10:33:27 +02:00
Hans Leidekker 1efae756c3 msvcrt: Implement _wspawnv{, e, p, pe}. 2007-09-24 14:38:53 +02:00
Tijl Coosemans 6bbd3cacb8 msvcrt: Resolve symbols clashes with FreeBSD libc. 2007-09-19 15:01:33 +02:00
Michael Stefaniuc d7d40b7dd3 msvcrt: Remove superfluous casts of void pointers to other pointer types. 2007-07-04 12:06:58 +02:00
Michael Stefaniuc ec4936a6a3 msvcrt: Do not use wide character constants. 2007-06-25 11:43:58 +02:00
Francois Gouget cf218621fd msvcrt: When operating on a closed pipe, read() should return 0, not -1.
Add tests to make sure read() and fread() work right on closed pipes.
2007-05-22 12:01:35 +02:00
Andrew Talbot 9069577cd0 msvcrt: Exclude unused headers. 2007-05-15 12:19:12 +02:00
Jan Zerebecki 3b32ae2a54 msvcrt: Add DebugInfo to critical sections. 2007-03-12 13:38:22 +01:00
Damjan Jovanovic 2705d78876 msvcrt: Fix fstat's handling of pipes and char devices.
For pipes/char devices, st_dev and st_rdev should be the fd, st_nlink
is always 1, and st_mode is S_IFIFO and S_IFCHR respectively.
Added tests to prove the new behaviour right.
2007-02-16 13:13:37 +01:00
Damjan Jovanovic 7ecc283bd9 msvcrt: Implemented stat64, wstat64 and fstat64.
Change all other variations of stat use the stat64 family, since it is
the most general.
2007-02-14 12:31:14 +01:00
Alexandre Julliard 2851b31f4c msvcrt: Implement fopen/wfopen on top of fsopen/wfsopen instead of the other way around. 2007-02-07 13:25:29 +01:00
Eric Pouech 8333cf88d8 msvcrt: Fix the internal flag computation for _open_osfhandle. 2007-01-23 13:05:52 +01:00
Francois Gouget aab5e5856e Don't put single quotes around '%s' when using the debugstr_*() functions. 2007-01-18 12:55:50 +01:00
Andrew Talbot 55f25b712d msvcrt: Cast-qual warnings fix. 2006-11-06 15:39:55 +01:00
Louis. Lenders 32ffc7cb8a msvcrt: Add stub for _setmaxstdio + tiny test. 2006-10-31 11:46:20 +01:00
Duane Clark b4c1c67ea4 msvcrt: Fix fread on large buffers in ascii mode. 2006-10-27 12:30:24 +02:00
Louis. Lenders a5e6c89dcf msvcrt: Add stub for _getmaxstdio. 2006-10-18 12:35:40 +02:00
Markus Amsler 9ae995f674 msvcrt: Fix fread eof handling. 2006-10-13 11:20:40 +02:00
Markus Amsler fdd61a7a35 msvcrt: fread: Fill buffer on small reads. 2006-10-13 11:20:35 +02:00
Michael Stefaniuc 6520ee04c8 msvcrt: Win64 printf format warning fixes. 2006-10-04 09:58:47 +02:00
Duane Clark 9a71b483d3 msvcrt: fgetc needs to use unsigned parameters.
Spotted by and adapted from test written by Tobias Ringström.
2006-09-26 11:41:25 +02:00
Andrew Talbot c5df5717e9 msvcrt: Cast-qual warnings fix. 2006-09-20 12:23:32 +02:00
Duane Clark 4d3952f3dc msvcrt: In text mode a ctrl-z signals EOF.
Spotted by David Hagood with test suggested by Dan Kegel.
2006-08-09 17:33:23 +02:00
Michael Stefaniuc 243a3e4107 msvcrt: Remove redundant NULL checks before MSVCRT_free. 2006-08-09 11:21:07 +02:00
Duane Clark bc194793a7 msvcrt: Fix fgetwc/s in binary mode. 2006-07-31 21:44:17 +02:00
Duane Clark 5c4b18a931 msvcrt: Remove read_i loop and fix fread. 2006-07-31 21:43:01 +02:00
Duane Clark 88aeeb9fd8 msvcrt: Fix _getw. 2006-07-31 11:15:21 +02:00
Duane Clark b44ea8084d msvcrt: Fix fread. 2006-07-31 11:15:21 +02:00
Duane Clark b37b967add msvcrt: Fix _read and fgetc. 2006-07-31 11:15:21 +02:00
Alexandre Julliard 24beabfd4e msvcrt: Explicitly specify CDECL calling convention on exported functions. 2006-06-13 11:40:23 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
qingdoa daoo 4f7adfb04a msvcrt: Don't duplicate handle in _get_osfhandle. 2006-05-08 17:40:09 +02:00
Eric Pouech 819565be21 msvcrt: IO init.
Make sure, when copying handles from std ones (when no io info is
inherited from parent) to create inheritable handles (spotted by
qingdao daoo).
2006-04-11 12:38:23 +02:00
Alexandre Julliard 19a088202a msvcrt: Fix fflush() of files opened for read.
Some apps, for no particular reason, call fflush() on files opened for
read.  This keeps them from tripping over their shoelaces.
2006-03-27 11:30:50 +02:00
Peter Beutner 72017cc9ab msvcrt: Correctly set EOF flag in fread().
Setting the EOF flag only if _read() returns zero is not enough as we
could also read something AND hit the end of file.
_read() already sets another internal EOF flag, so just use this too.
Removing todo_wine from the test case.
2006-02-17 17:38:03 +01:00
Peter Beutner 58d3f14514 msvcrt: Fix use of uninitialized variable. 2006-02-17 17:37:14 +01:00
Uwe Bonnes b53ed5866d msvcrt: In _mktemp sixth generated charater always starts with 'a'. 2006-02-10 15:52:47 +01:00
Alexandre Julliard a17b2c1cd2 msvcrt: Use the msvcrt version of printf everywhere. 2006-01-24 12:21:58 +01:00
Sasha Slijepcevic 736cd60340 msvcrt: In _tempnam, if TMP is set, it has a precedence over the
parameter dir.
2006-01-18 14:22:27 +01:00
Saulius Krasuckas 5a10c37dba Fix _fcloseall() return value.
Improve some trace messages.
Add tests for fopen(), fclose(), _fcloseall().
Stricten some checks of _unlink().
2005-11-16 11:47:51 +00:00
Vitaliy Margolen a6a5fb7a70 Fix initial position for files opened with O_APPEND flag. 2005-10-07 15:01:15 +00:00
Francois Gouget c63b85b866 Make it clear the empty body sections are not accidental. 2005-09-26 09:54:47 +00:00
Mike McCormack 6dc69f5f54 Fix gcc 4.0 warnings. 2005-09-02 12:26:21 +00:00
Felix Nawothnig 30e248ff90 Allow reading 0 bytes in fread. 2005-07-10 17:46:08 +00:00
Paul Rupe 45f1b06b94 Make ungetc(EOF) a no-op. 2005-06-25 17:58:19 +00:00
Uwe Bonnes dc920056b1 Correct return value of fsetpos. 2005-05-16 08:50:28 +00:00
894c1364d4 Flush output buffers from _close() rather than MSVCRT_fclose(). 2005-05-12 09:55:02 +00:00
759263042e Return ENOENT rather than EBADF from MSVCRT_fopen() when file doesn't
exist.
2005-05-05 16:48:28 +00:00
Hans Leidekker a19bf290f0 Implement and test _chsize. 2005-03-31 19:06:10 +00:00
Jason Edmeades 9b527d4953 Make msvcrt printf use the internal routines which understand %S and
%C.
2005-03-07 11:00:46 +00:00
Francois Gouget fbb3343547 Assorted spelling fixes. 2005-03-02 13:53:50 +00:00
Bill Medland 1953a1ed2d Only report the unsupported flags.
Keep quiet about hints.
2005-01-10 14:28:21 +00:00
Lionel Ulmer 66725349d5 Handle buffering in fgetpos / fsetpos. 2005-01-04 20:37:54 +00:00
Juan Lang 9b6c0eff37 - make file functions (mostly) thread-safe
- update a couple traces
2004-12-14 11:59:43 +00:00
Rein Klazes 03d9cf286e - implement __pioinfo, __badioinfo and _adjust_fdiv
- remove all stubs of data item from the spec file, those actually may
  hide problems.
2004-12-10 15:28:25 +00:00
Juan Lang 1e23777ae5 - implement _dup, _dup2, and _pipe
- make max file descriptors 2048 to match MS
- increase max file streams to match
2004-12-09 16:51:26 +00:00
Juan Lang b100339e2f Flush file in fputc when character is '\n'. 2004-12-07 17:05:08 +00:00
Juan Lang 4120647ae7 Set st_mode bits in _fstati64. 2004-12-06 16:14:09 +00:00
Tony Lambregts 2dec525020 Fix up init_fp test for freopen. 2004-11-03 22:17:05 +00:00
Hans Leidekker 9ec800fd6d Prefix _fsopen with MSVCRT_ to avoid collision with MinGW header.
Typo fix.
2004-10-14 00:26:39 +00:00
Hans Leidekker fe442b21f7 Fix signed/unsigned comparison warnings. 2004-09-08 01:23:57 +00:00
Eric Pouech 0bfb1cbc6b - msvcrt: the file descriptors are now inherited between parent/child
processes
- kernel32.CreateProcess: make use of the *reserved2 fields for
  C-RunTime data inheritance
2004-09-03 01:05:30 +00:00
Dimitrie O. Paun 0377462460 Split the MSVCRT implementation headers from the public headers.
Fix some naming conventions aberrations.
Add tests to ensure consistency between the two sets of symbols.
2004-06-25 01:19:15 +00:00
Uwe Bonnes f7e9e5b788 Fixed typo. 2004-05-27 20:01:34 +00:00
Alexandre Julliard adc86dccaa Fixed copy/paste bug in previous change. 2004-05-13 00:23:25 +00:00
Eric Pouech bcc2a5c540 - rewrote the file code so that streams manage low level file desc
(the code was written the other way around)
- reworked the flag handling code (now the stream._flag is closer to
  what MS does)
- simplified temp files handling by using FILE_FLAG_DELETE_ON_CLOSE in
  CreateFile
- fixed a couple of bugs
2004-05-12 00:12:26 +00:00
Hans Leidekker 821f4775a3 - Prefix many more functions, types, structs, etc. with MSVCRT_.
- Correct prototypes for _memccpy()/_memicmp().
- "define before use" reordering in file.c.
- Use the new math.h/float.h.
2004-03-16 19:17:11 +00:00
Alexandre Julliard c042e13ef6 Fixed varargs handling in the scanf functions (spotted by Eric
Pouech).
2004-02-19 01:13:12 +00:00
Alfons Hoogervorst bfc4044511 Fix infinite loop in _flushall. 2004-02-09 20:49:34 +00:00
Alexandre Julliard dec198afe0 Implemented the remaining 64-bit file functions, and added a few other
functions and exported variables.
Removed the almost empty lconv.c file.
2004-01-13 05:45:05 +00:00
Francois Gouget 640cc3f3e1 Assorted spelling fixes. 2004-01-06 22:08:33 +00:00
Ulrich Czekalla 736d96b5b3 Duplicate stdin/stdout handles to avoid closing them when library is
unloaded.
2003-10-31 04:17:45 +00:00
Pavel Roskin 6d6d06a8dc Make MSVCRT__sopen() complain louder about unknown oflags, but not
about _O_WRONLY.
MSVCRT_fopen() should pass third argument to _open() because it may
set _O_CREAT.
2003-10-24 04:21:09 +00:00
Pavel Roskin 9661d05b4e MSVCRT_tmpnam(): complete rewrite. Use the same names as the native
version.  Use the caller-supplied buffer if possible.
2003-10-24 00:23:51 +00:00
Rolf Kalbermatter 76f13deb26 Use INVALID_FILE_ATTRIBUTES to test for failure of
GetFileAttributesA/W and not -1 or 0xFFFFFFFF.
2003-10-16 19:12:49 +00:00
Daniel Marmier f95be92d24 Fixed warnings with gcc option "-Wwrite-strings". 2003-10-15 03:35:54 +00:00
Uwe Bonnes 7b8b62e61a fget(w)s(): Don't drop characters when buffer is not large enough. 2003-10-07 05:22:04 +00:00
Uwe Bonnes 16fa009085 _write(): Don't fragment WriteFile() for TEXT mode write. 2003-10-07 04:01:28 +00:00
Uwe Bonnes 6fbcacbb92 _read(): In _O_TEXT mode make Readfile calls in chunks as big as
possible.
2003-10-07 03:33:58 +00:00
Alexandre Julliard 2470af6213 _tempnam and _wtempnam should not create the temp file (reported by
Wim Vanderbauwhede).
2003-09-27 02:45:39 +00:00
Alexandre Julliard e37c6e18d0 Fixed header dependencies to be fully compatible with the Windows
headers (with help from Dimitrie O. Paun).
2003-09-05 23:08:26 +00:00
Adam Gundy 9ea3c2d3ee _open_osfhandle is expected to take the absence of either _O_TEXT or
_O_BINARY to mean _O_BINARY.
2003-05-08 21:02:31 +00:00
Andreas Mohr 51c38cc729 Fix blatantly wrong SetFilePointer() calls. 2003-04-14 21:33:49 +00:00
Adam Gundy 2f5e5f3d29 MSVCRT_fclose() mustn't use the _flag field from the file structure
after _close() has been called.
When _open_osfhandle() is used by MFC's CStdioFile, it expects write
access even though it doesn't set the necessary flag bit.
2003-03-30 03:06:30 +00:00
Uwe Bonnes f540ea642e Rough implementation of _O_TEXT/_O_BINARY translation by doing single
byte read/writes in _O_TEXT mode and CR/LR handling.
fput/getwc must read multibyte characters in _O_TEXT.
Added test cases for _O_TEXT/_O_BINARY file handling and fgetws.
2003-02-19 22:09:33 +00:00
Dimitrie O. Paun 13098ea188 Create stubs for chsize, dup, and dup2. 2003-01-11 21:01:04 +00:00
Alexandre Julliard 5f31b32946 Use MSVCRT_wchar_t instead of WCHAR so that the implementation matches
the prototypes.
2002-12-19 04:21:30 +00:00
Alexandre Julliard 3f5ff2fba2 Avoid including other headers from the msvcrt headers, duplicate some
definitions instead like Windows does.
Always define wchar_t (suggested by Dimitrie O. Paun), and use wchar_t
everywhere instead of WCHAR to avoid depending on Windows headers.
2002-12-18 20:17:20 +00:00
Bill Currie c78902221f fdopen: don't rewind the file after creating the FILE* handle. Added
unit test for that.
2002-12-17 04:18:07 +00:00
Stefan Leichter a5d7fbfb10 Converted implementation of _lseek to _lseeki64, implemented _lseek by
calling _lseeki64.
2002-11-25 20:50:01 +00:00
Stefan Leichter b88a9d5399 Converted implementation of _stat and _fstat to _stati64 and
_fstati64.
Implemented _stat/_fstat by calling _stati64/_fstati64.
2002-11-25 02:44:34 +00:00
Michael Stefaniuc 789b4b4204 Compile the msvcrt dll with -DSTRICT. 2002-10-25 03:12:01 +00:00