Commit Graph

486 Commits

Author SHA1 Message Date
qingdoa daoo 35a9398ffe msvcrt: Allow environment strings longer than 512 characters. 2006-04-03 11:39:56 +02:00
Rein Klazes ef9038c761 msvcrt: Fix read beyond end of string in __unDNameEx(). 2006-03-30 21:54:45 +02:00
H. Verbeet 8c29b7dc8b msvcrt: Fix reading of signed numbers with unsigned read types in scanf. 2006-03-27 11:30:50 +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
Alexandre Julliard 7fe881c7f2 msvcrt: Implementation of wcsftime (based on a patch by Mike McCormack). 2006-03-23 20:35:52 +01:00
Eric Pouech f7441f9e1a msvcrt: Some more fixes to name demangling. 2006-03-06 11:37:14 +01:00
Mike McCormack d16c72dea5 msvcrt: Add a stub for _wsetlocale. 2006-02-28 12:02:13 +01:00
Francois Gouget e092adfc9b Add trailing '\n's to ok() calls. 2006-02-24 21:07:33 +01:00
Peter Beutner 82818284c3 msvcrt: Save esp before calling catch block and restore afterwards.
It seems like the esp value (which is saved at [ebp-16]) is sometimes
changed inside the catch handler so we end up with a bogus esp
afterwards.  To avoid that save it before calling the catch block.
2006-02-22 12:21:00 +01:00
Peter Beutner be07b6db59 msvcrt: Fix handling of multiple nested exceptions.
Save in each nested frame a pointer to the original exception record.
Only one refence in thread_data isn't enough when we have multiple
nested frames.
2006-02-22 12:06:56 +01:00
Peter Beutner 62dc7f52f4 msvcrt: Fix handling of nested exceptions.
Move handling of nested exceptions completely in the
catch_function_nested_handler().  If a new exception was thrown inside
a catch block destroy the old exception object, if it is a rethrow
re-propagate the previous object.
2006-02-22 12:04:13 +01:00
Michael Stefaniuc 4758df4687 msvcrt: Misc cleanups in undname.c.
- remove unused argument from functions
- print the pointer in the str_array_push TRACE to be able to distinguish
  the different arrays.
- comment and white space cleanups
2006-02-20 11:18:51 +01:00
Michael Stefaniuc 067be97852 msvcrt: Add some tests for __unDName().
Add some tests for unDName() checking:
- data type modifiers A,B,P,Q,R,S
- literal strings
- back references to names
2006-02-20 11:18:25 +01:00
Michael Stefaniuc 262a5eec78 msvcrt: Use a separate stack for back references to names
Use a separate array/stack for the back references to names as
sym->stack is used to push temporary strings to it which breaks back
referencing in some occasions (26 symbols in the mfc42 dll).  During
this cleanup get_class() a little bit.
2006-02-20 11:18:04 +01:00
Michael Stefaniuc e367ebbf19 msvcrt: Move code to parse a literal string out of get_class().
unDName: Move the code to parse a literal string from get_class() to a
separate function. Add some error handling to the new function.
2006-02-20 11:17:41 +01:00
Michael Stefaniuc 538d1a1233 msvcrt: Wrap get_class() and get_class_string() for unDName. 2006-02-20 11:16:59 +01:00
Michael Stefaniuc 29fe8d02c7 msvcrt: Fix 20 tests from demangle_test() on old Win versions.
In test_demangle use a custom strcmp that treats multiple spaces as
single space. __unDName() from older msvcrt (including W2K it seems)
emit in some places 2 spaces instead of one. Fixes 20 failing tests on
those old Windows versions.
2006-02-20 11:16:27 +01: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 b786ea588c msvcrt: Add test for fread/feof.
When calling fread() with a large enough buffer to reach the end of
the file a subsequent feof() should return true; (marked as todo_wine
because it doesn't work atm).
2006-02-17 17:37:40 +01:00
Peter Beutner 916c4b6b8c msvcrt: Remove bogus code.
We can't just pop a exception record from the exception handler list
which we haven't put there.
2006-02-17 17:37:26 +01:00
Peter Beutner 58d3f14514 msvcrt: Fix use of uninitialized variable. 2006-02-17 17:37:14 +01:00
Mike McCormack 968445ca77 msvcrt: Fix a typo. 2006-02-13 13:24:26 +01:00
Dmitry Timoshkov ea0e7b3397 msvcrt: localtime should accept any positive time value. 2006-02-11 12:15:21 +01:00
Uwe Bonnes b53ed5866d msvcrt: In _mktemp sixth generated charater always starts with 'a'. 2006-02-10 15:52:47 +01:00
Michael Stefaniuc d815b50756 msvcrt: __unDNameEx is not a stub. 2006-02-08 12:42:33 +01:00
Michael Stefaniuc 0df8b0a020 msvcrt: Handle data types B,R,S in C++ symbol demangling. 2006-02-07 12:27:35 +01:00
Eric Pouech e66e227dbe Fixes for missing prototypes warnings. 2006-02-06 13:13:28 +01:00
Alexandre Julliard 28486da991 msvcrt: Make error strings static. 2006-01-24 14:00:46 +01:00
Alexandre Julliard 2a192064e8 ntdll: memcpy should behave like memmove in ntdll too. 2006-01-24 12:28:34 +01:00
Alexandre Julliard b7b7f2b679 Avoid importing _strlwr/_strupr from ntdll. 2006-01-24 12:24:05 +01:00
Alexandre Julliard a17b2c1cd2 msvcrt: Use the msvcrt version of printf everywhere. 2006-01-24 12:21:58 +01:00
Alexandre Julliard 2dacd3c54e msvcrt: Properly implemented strerror and perror (based on a patch by
Uwe Bonnes).
2006-01-23 19:58:10 +01:00
Alexandre Julliard 401ead5c8f msvcrt: Added _sys_errlist (based on a patch by Uwe Bonnes). 2006-01-23 19:30:21 +01:00
Alexandre Julliard 4755f8acec msvcrt: Added EILSEQ definition. 2006-01-23 19:29:36 +01:00
Hans Leidekker 1b69f035e1 msvcrt: Stub implementation for wcsftime. 2006-01-23 19:29:15 +01:00
Alexandre Julliard c016509119 msvcrt: Preserve all registers in call_ebp_func. 2006-01-21 19:23:02 +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
Marcus Meissner 71908c41c3 msvcrt: _makepath(): operate on target buffer directly. 2006-01-17 16:20:37 +01:00
Alexandre Julliard 30a90e1842 msvcrt: Forward functions to ntdll instead of libc where possible. 2006-01-14 17:42:12 +01:00
Alexandre Julliard b34ac466b1 msvcrt: Added wrappers for a few functions instead of linking them
directly to libc.
2006-01-14 17:40:29 +01:00
Alexandre Julliard 78412005e1 msvcrt: Set errno in the standard math functions too, not only in the
_CI* variants.
2006-01-14 17:36:23 +01:00
Alexandre Julliard ee603ce6dd msvcrt: Make snprintf and snwprintf use the msvcrt version of printf.
Remove todos from tests that succeed now.
2006-01-14 17:30:02 +01:00
Alexandre Julliard ad8cb6133e msvcrt: Reimplement rand() and srand() to use per-thread data for the
random seed.
2006-01-14 17:27:28 +01:00
Alexandre Julliard 2ec3b96135 msvcrt: Make strtok and wcstok thread-safe by using the per-thread data. 2006-01-14 17:24:49 +01:00
Alexandre Julliard f9e5b0f5f0 msvcrt: Implemented asctime, ctime and strftime instead of using the libc ones.
Make the code thread-safe by using asctime_r if available.
2006-01-14 17:22:03 +01:00
Aric Stewart 4bc3b16b44 msvcrt: Modify dir test to create its own directory to ensure the
directory exists for the test. Using the temp dir as the root.
2006-01-11 20:55:38 +01:00
Aric Stewart 3022ade359 msvcrt: Add a regression test for _fullpath. 2006-01-06 21:46:09 +01:00
Aric Stewart e09a6c8080 msvcrt: Reworked _fullpath.
Investigation with native msvcrt revealed that it is a wrapper for
GetFullPathName and the current implementation was crashing with older
mozilla installs if the path passed in was uninitialized.
2006-01-06 21:45:26 +01:00
Alexandre Julliard 545c4b7e7c msvcrt: Added assembly routines to save/restore registers for setjmp/longjmp
to avoid the overhead of a full-blown register function.
Some tracing improvements.
2006-01-05 14:36:37 +01:00
Alexandre Julliard abb170fac3 msvcrt: Added some assembly glue for the asm bits of __CxxFrameHandler
to avoid having to save/restore the whole context on every call.
2006-01-05 13:56:11 +01:00