Commit Graph

8648 Commits

Author SHA1 Message Date
marco
df16200a75 * Patch from LacaK2 fixing else clause of vartobcd, bug #16853
git-svn-id: trunk@16584 -
2010-12-17 18:57:16 +00:00
pierre
0fabda01a8 * Added code to support Windows 95 again
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 -
2010-12-17 14:12:43 +00:00
pierre
9276fa437f * Fix tw1041 test failure
git-svn-id: trunk@16571 -
2010-12-16 13:25:20 +00:00
sergei
13bea29253 * win/sysutils.pp, FileOpen and FileCreate, removed manual zero-termination of strings. This unit compiles in {$h+} state, and AnsiString zero-termination is handled automatically these days.
git-svn-id: trunk@16558 -
2010-12-12 15:07:38 +00:00
sergei
3c2d918cfe * Partially undo revision 16529: removing VariantToShortString breaks webtbs/tw14536 which calls the mentioned function directly instead of using typecast.
git-svn-id: trunk@16557 -
2010-12-11 23:25:20 +00:00
florian
3eec5d1b12 + added Makefile
git-svn-id: trunk@16554 -
2010-12-11 20:39:37 +00:00
florian
382dc3e413 o update by Sven Barth to the NativeNT RTL:
* 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 -
2010-12-11 20:39:05 +00:00
Jonas Maebe
a2e8134b7c * part of r16533, forgot to commit
* 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 -
2010-12-11 18:08:16 +00:00
sergei
179229007e * win/sysutils.pp: fix/clean up loading dll for SHGetFolderPath.
* 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 -
2010-12-11 10:05:10 +00:00
sergei
c5162a7816 * win/sysutils.pp: Use GetModuleHandle for dynamic loading of kernel32.dll instead of LoadLibrary, this is possible because kernel32 is statically linked by RTL and is therefore always loaded with application. Also makes FreeLibrary at finalization unnecessary.
- Removed checks for Windows version, they are redundant. GetProcAddress simply returns nil if the function is not present.

git-svn-id: trunk@16540 -
2010-12-11 04:47:33 +00:00
Jonas Maebe
8c9d0f1f78 * fixed Windows compilation after r16533
git-svn-id: trunk@16539 -
2010-12-10 17:27:25 +00:00
Jonas Maebe
f4c31ecf3c + widestringmanager.codepointlengthproc added, which can be used to
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 -
2010-12-10 14:10:01 +00:00
sergei
ae7018cf85 variants, varutils: another portion of misc fixes:
* 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 -
2010-12-10 03:38:21 +00:00
sergei
5bf51c991c * VarUtils, fixed missing support for interfaces
- NoInterfaces() not used anymore, removed
+ Basic test for VariantArray of IInterface

git-svn-id: trunk@16527 -
2010-12-09 16:38:55 +00:00
sergei
4e3cedb492 * VariantInit is a procedure, not a function (according to both MSDN and Delphi docs).
git-svn-id: trunk@16525 -
2010-12-09 01:27:09 +00:00
sergei
ddfb032913 * VarUtils, fixed a wrong identifier
git-svn-id: trunk@16524 -
2010-12-08 23:42:39 +00:00
Jonas Maebe
8c4b6c9de2 + full contents of NSZone.h
+ 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 -
2010-12-07 22:27:46 +00:00
marco
69c89d4579 * more tcustomvariant conversion helpers from Lacak2. Mantis 16853
git-svn-id: trunk@16504 -
2010-12-04 20:21:03 +00:00
sergei
b8aec6e4aa + Support for UnicodeString in variant conversions, based on patch from Ivan Shikhalev, resolves #18083.
git-svn-id: trunk@16502 -
2010-12-04 03:53:28 +00:00
marco
c9c1179b00 * Initial variantop and compare handlers. Patch from Laaca, bug #16853
git-svn-id: trunk@16486 -
2010-11-30 20:49:46 +00:00
marco
9534c5bd8b * Delphi XE (2010?) compatible alias for defaultformatsettings.
* deprecated separate globals (Delphi XE). Causes some deprecated
      warnings in dati.inc that still have to be fixed.

git-svn-id: trunk@16482 -
2010-11-30 09:49:19 +00:00
Jonas Maebe
5cbe12c622 * don't overwrite the target value of interlockedcompareexchange*() if the
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 -
2010-11-29 12:53:10 +00:00
florian
a0c25dc0f9 - removes Thread_count from the system unit of several OSes: the value of this variable was unpredictable and the hebaviour was not fixable, resolves #18089
git-svn-id: trunk@16472 -
2010-11-28 20:46:50 +00:00
florian
6b42ba170b + TFPGObjectList.GetEnumerator and TFPGInterfacedObjectList.GetEnumerator, resolves #18094
git-svn-id: trunk@16471 -
2010-11-28 20:32:35 +00:00
florian
f15141a6f3 - removes 2.2.x bootstrapping stuff
git-svn-id: trunk@16465 -
2010-11-28 17:29:15 +00:00
sergei
099df04a5e * variants.pp, patch from Ivan Shikhalev implementing TInvokeableVariant.DispInvoke (with some changes), resolves #17919.
git-svn-id: trunk@16458 -
2010-11-27 19:34:39 +00:00
sergei
3b910d9eb2 + Support custom variants in VarIsClear
* TCustomVariantType.IsClear simply returns False (since its VType can never have values for standard variants)

git-svn-id: trunk@16457 -
2010-11-27 18:07:10 +00:00
sergei
7dd93b1282 * Variant types: renamed varunicodestring to varustring and changed its value to $102 (for Delphi compatibility), introduced varUStrArg=$73, added some description comments.
* 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 -
2010-11-27 16:17:43 +00:00
ivost
5f39d255e1 * added TFPGMapInterfacedObjectData: This generic class expects a TInterfacedObject as type of TData. The advantage over TFPGMap is, that refcounting is used. It's compareable to TFPGInterfacedObjectList. Note that this only works within the TData part, TKey is not refcounted!
git-svn-id: trunk@16455 -
2010-11-27 16:02:01 +00:00
michael
fa0454afe2 * Fixed references to sub components (mantis #18021)
git-svn-id: trunk@16448 -
2010-11-26 14:51:43 +00:00
michael
cc0be1be4d * Completely initialize threadvars when an external thread is detected. Needs still cleanup code (or a better thread initialization/finalization).
git-svn-id: trunk@16432 -
2010-11-25 15:50:49 +00:00
florian
3d13c2e2be * cleaned up ver2_0 defines
git-svn-id: trunk@16430 -
2010-11-25 14:28:31 +00:00
florian
ef0899425b * adds assign methods to the fgl classes based on a patch by Aleksa Todorovic, resolves #10479
git-svn-id: trunk@16429 -
2010-11-25 14:12:13 +00:00
ivost
e770bc597f * fixed refcounting problem. When copy an item over an existing one, the existing one was not dereferenced
* removed some old (useless) commented code

git-svn-id: trunk@16424 -
2010-11-24 23:08:12 +00:00
Jonas Maebe
1f61b5b30c * reverted the rtl patches from r14184, because they cause an endless
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 -
2010-11-24 15:33:29 +00:00
Jonas Maebe
c706394a15 * part of r16407, forgot to commit
git-svn-id: trunk@16415 -
2010-11-24 07:59:50 +00:00
pierre
ed1c558726 * Fix RIP relative assmebler code of rev 16410
git-svn-id: trunk@16414 -
2010-11-24 07:57:01 +00:00
pierre
64bb6794f7 + Add cmem to the list of units
git-svn-id: trunk@16412 -
2010-11-23 23:05:29 +00:00
pierre
cb017ad074 + Allow compilation for go32v2 target
git-svn-id: trunk@16411 -
2010-11-23 23:02:05 +00:00
pierre
709d36a1d0 + Add signals unit for win64
git-svn-id: trunk@16410 -
2010-11-23 23:57:10 +00:00
pierre
889caf5911 * fix type of fourth parameter of msgrcv function
git-svn-id: trunk@16409 -
2010-11-23 23:44:34 +00:00
michael
c4cc9b59e0 * Tag is now PtrInt, for upcoming Delphi 64-bit compatibility
git-svn-id: trunk@16408 -
2010-11-23 21:19:39 +00:00
Jonas Maebe
749991ec02 + support extra parameter for initialize() that indicates how many elements
should be initialised, similar to how this was already allowed for
    finalize() (mantis #17998)

git-svn-id: trunk@16407 -
2010-11-23 15:14:40 +00:00
sergei
5f1d15c693 * Patch from LacaK2 implementing some missing properties of BCDVariant, partially fixes #16853.
git-svn-id: trunk@16404 -
2010-11-22 22:50:40 +00:00
michael
a1d8ad7a27 * Changed var to out in TStringList.Find
git-svn-id: trunk@16395 -
2010-11-21 18:20:44 +00:00
sergei
907e7a32d5 * GetFileHandle(), THandleStream: changed type that is used to store file handle from Integer to THandle, so it can be redefined to 64 bits on certain platforms, see http://lists.freepascal.org/lists/fpc-devel/2010-November/023019.html
git-svn-id: trunk@16383 -
2010-11-20 12:58:53 +00:00
paul
23e74d5d46 rtl: fixed typo in variants.pp noticed by Ivan Shikhalev (mantis #0017983)
git-svn-id: trunk@16368 -
2010-11-19 03:19:52 +00:00
sergei
cbdc08b641 * dynlibs.pas: added 'const' modifiers to eliminate unnecessary local string copies
git-svn-id: trunk@16366 -
2010-11-18 22:09:48 +00:00
paul
4036be1221 rtl: add IO_REPARSE_TAG constants
git-svn-id: trunk@16358 -
2010-11-18 04:06:49 +00:00
Jonas Maebe
c14574bb56 * don't change the fpu control word in the initialisation code of dynamic
libraries (mantis #16263, #16801)

git-svn-id: trunk@16347 -
2010-11-14 16:00:25 +00:00