This code is disabled by default, you need to complie the RTL
with option -dSUPPORT_WIN95.
2.4.2 release is already not usable on Windows 95 because
the kernel32 DLL function TryEnterCriticalSection is loaded
into system unit unconditionnally, while this function does
not exist in Winddows 95 kernel32.
This patch uses LoadLibrary/GetProcAddress coupple to check if
TryEnterCriticalSection exists and provides an alternate implementation
that will be used on Windows 95 systems only (Windows 98 kernel32
DLL does export TryEnterCriticalSection).
git-svn-id: trunk@16579 -
* Many more RTL units are enabled now, like SysUtils, Classes, Math, FGL, etc and Text-, File- and ConsoleIO features are enabled now as well (Threading and Processes are enabled, too, but their implementations are only stubs!). ConsoleIO isn't tested though, because the processes that are started by SMSS have their Standard Handles set to 0.
git-svn-id: trunk@16553 -
* also fixes CharLengthPChar() for non-BeOS by initialising the mbstate
parameter passed to mbrlen() to 0 (otherwise its contents are interpreted
as already valid, containing information about the current shiftstate etc)
git-svn-id: trunk@16552 -
* Don't attempt to load shell32.dll, since every system with shell32.dll that exports SHGetFolderPath also has shfolder.dll present.
* Load shfolder.dll using a full path in order to prevent loading of malicious code by placing a same-named dll into program directory (Mantis #18185).
git-svn-id: trunk@16549 -
determine the length of a multi-byte character. The return values
are defined to be the same as those of POSIX' mblen: -1 =
invalid/incomplete sequence, 0 = #0, > 0 = length of sequence in
bytes.
+ default implementation for widestringmanager.codepointlengthproc
(assumes all code points have length 1) and Unix implementation
(based on mb(r)len); Windows implementation is still required
* replaced default implementation of
widestringmanager.CharLengthPCharProc with strlen() of the input
instead of an error (correct if all code points have length 1,
still needs Windows implementation)
+ implemented fpc_text_read_{wide,unicode}str() and
fpc_text_read_widechar() (mantis #18163); fpc_text_read_widechar()
uses the new widestringmanager.codepointlengthproc()
+ unicodestring support for readstr/writestr
* fixed declaration of fpc_Write_Text_UnicodeStr (unicodestring
instead of widestring parameter)
* extended test/twide*.pp tests to test the new/fixed functionality
git-svn-id: trunk@16533 -
* Handle Variant to ShortString conversions entirely in variants unit, removed VarUtils.VariantToShortString
+ support varUString in DoVarClearComplex
* fixed missing result assignment in TCustomVariantType.VarDataIsEmptyParam
* TCustomVariantType.UnaryOp and BinaryOp now 'implemented', they raise EVariantInvalidOp
git-svn-id: trunk@16529 -
+ several missing categories and protocols (NSCodingProtocol,
NSCopyingProtocol, NSCoderMethods, ...)
* renamed classDescription method to _classDescription because there
is a method in another class in the Cocoa frameworks that also called
"classDescription"
+ added overloaded versions of all base methods without the trailing
underscore, since that seems what everyone has settled to using for
the rest of the Cocoa translations
git-svn-id: trunk@16518 -
value is different from the comparand (patch by "FVI", mantis #18082)
* sign extend the loaded value of interlockedcompareexchange() on PowerPC64,
because the function arguments are longints
git-svn-id: trunk@16475 -
* ncal.pas, translate_disp_call:
* pass UnicodeString as varUStrArg
* do not typecast ordinal consts to Integer, so typecasts in source (if any) are preserved.
+ test for correct passing of Dispatch method arguments, concludes work on Mantis #17904.
git-svn-id: trunk@16456 -
loop when attempting to terminate a process via the RTL compiled into
a Linux shared library (mantis #17383)
* call FPC_LIB_EXIT (the internal/generic RTL finalisation routine) instead
of FPC_SHARED_LIB_EXIT (the Linux-specific "process exit" code for shared
libraries) as "fini" routine (fixes#14958 again after reverting r14184)
git-svn-id: trunk@16418 -