modified dll/win32/kernel32/kernel32.rbuild
modified dll/win32/user32/user32.rbuild
Inexplicably missed the "big three" in r37187. Don't link msvcrt in core Win32 DLLs, for real this time
modified dll/win32/user32/misc/dllmain.c
Don't use wcstok. Removes the dependency on msvcrt
svn path=/trunk/; revision=38210
modified lib/pseh/i386/framebased-gcchack.S
For some reason, "call _RtlUnwind@16" is being linked as "call 0" (very likely a linker bug). Reimplementing _SEH2GlobalUnwind in C and taking the address of RtlUnwind from C code seems to work
Annotate functions implemented in assembler with .func/.endfunc, so the symbols are more correct
svn path=/trunk/; revision=38208
modified include/reactos/libs/pseh/pseh2.h
modified lib/pseh/framebased-gcchack.c
modified lib/pseh/i386/framebased-gcchack.S
Disassemble trampolines in the library, instead of the macros. Results in better, smaller code. As a side effect, PSEH no longer requires a trampoline for nested functions - which results in even better, even smaller code in many common cases where the nested functions don't use any variables from the containing function
Simulate a no-op setjmp so that GCC correctly handles variables in registers, instead of surprise-corrupting random variables in random conditions
Save EBP and ESP every time a _SEH2_TRY/_SEH2_EXCEPT is entered, instead of only the first time. Probably not entirely correct yet
Don't generate a nested function for a _SEH2_EXCEPT() filter expression if the value is a compile-time constant: convert the value to (void *)0, (void *)1 or (void *)-1, and set that as the filter, instead (like Visual C++ does, incidentally)
If a _SEH2_EXCEPT() filter expression is a compile-time constant evaluating to EXCEPTION_CONTINUE_EXECUTION or EXCEPTION_CONTINUE_SEARCH, allow GCC to optimize out the body of the _SEH2_EXCEPT (because it'd be unreachable). This should really result in a compile-time warning, but #pragma message is unsupported in GCC 4.1.3
Let _SEH2_EXCEPT() accept a comma expression as filter expression (e.g. _SEH2_EXCEPT(MessageBox(...), EXCEPTION_EXECUTE_HANDLER) instead of _SEH2_EXCEPT((MessageBox(...), EXCEPTION_EXECUTE_HANDLER)))
Small optimizations in PSEH library
Clean up GCC hacks
Remove currently unused PSEH 3 hacks
svn path=/trunk/; revision=38197
- do not load color spectrum bitmaps if no adapter found,
- do not use HEAP_ZERO_MEMORY, use memset(),
- check SelectObject() result,
- fix indentation.
svn path=/trunk/; revision=38196
- Remove hack for GetDeviceCaps.
- This fixes one part of the Win32k Initialization Bug. If this change creates a problem some where else, the problem is not in this change.
svn path=/trunk/; revision=38189
- Update _mbccpy, _mbsncpy and _mbsnbcpy, so that they handle leading bytes correctly
- Fixes 6 of 7 failing msvcrt string winetests, the remaining failure is related to memcpy behavior
svn path=/trunk/; revision=38182
- Armenian (Notepad) by Andranik Haroyan (andranik_haroyan at yahoo),
- Thai (Calculator) by Sumath Aowsakulsutthi (punth1 at gmail).
svn path=/trunk/; revision=38167