You can subscribe to this list here.
| 2006 |
Jan
|
Feb
|
Mar
|
Apr
(20) |
May
(48) |
Jun
(8) |
Jul
(23) |
Aug
(41) |
Sep
(42) |
Oct
(22) |
Nov
(17) |
Dec
(36) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2007 |
Jan
(43) |
Feb
(42) |
Mar
(17) |
Apr
(39) |
May
(16) |
Jun
(35) |
Jul
(37) |
Aug
(47) |
Sep
(49) |
Oct
(9) |
Nov
(52) |
Dec
(37) |
| 2008 |
Jan
(48) |
Feb
(21) |
Mar
(7) |
Apr
(2) |
May
(5) |
Jun
(17) |
Jul
(17) |
Aug
(40) |
Sep
(58) |
Oct
(38) |
Nov
(19) |
Dec
(32) |
| 2009 |
Jan
(67) |
Feb
(46) |
Mar
(54) |
Apr
(34) |
May
(37) |
Jun
(52) |
Jul
(67) |
Aug
(72) |
Sep
(48) |
Oct
(35) |
Nov
(27) |
Dec
(12) |
| 2010 |
Jan
(56) |
Feb
(46) |
Mar
(19) |
Apr
(14) |
May
(21) |
Jun
(3) |
Jul
(13) |
Aug
(48) |
Sep
(34) |
Oct
(51) |
Nov
(16) |
Dec
(32) |
| 2011 |
Jan
(36) |
Feb
(14) |
Mar
(12) |
Apr
(3) |
May
(5) |
Jun
(24) |
Jul
(15) |
Aug
(30) |
Sep
(21) |
Oct
(4) |
Nov
(25) |
Dec
(23) |
| 2012 |
Jan
(45) |
Feb
(42) |
Mar
(19) |
Apr
(14) |
May
(13) |
Jun
(7) |
Jul
(3) |
Aug
(46) |
Sep
(21) |
Oct
(10) |
Nov
(2) |
Dec
|
| 2013 |
Jan
(5) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <ou...@us...> - 2007-09-26 11:28:22
|
Revision: 2187
http://jcl.svn.sourceforge.net/jcl/?rev=2187&view=rev
Author: outchy
Date: 2007-09-26 04:28:20 -0700 (Wed, 26 Sep 2007)
Log Message:
-----------
moving IsUACEnabled from JclSysInfo.pas to JclSecurity.pas
Modified Paths:
--------------
trunk/jcl/source/common/JclSysInfo.pas
trunk/jcl/source/windows/JclSecurity.pas
Modified: trunk/jcl/source/common/JclSysInfo.pas
===================================================================
--- trunk/jcl/source/common/JclSysInfo.pas 2007-09-25 22:02:42 UTC (rev 2186)
+++ trunk/jcl/source/common/JclSysInfo.pas 2007-09-26 11:28:20 UTC (rev 2187)
@@ -80,7 +80,7 @@
System.Net, System.ComponentModel,
{$ELSE ~CLR}
{$IFDEF MSWINDOWS}
- Windows, ActiveX, Registry,
+ Windows, ActiveX,
{$IFNDEF FPC}
ShlObj,
{$ENDIF ~FPC}
@@ -1278,9 +1278,6 @@
function IsMSProjectInstalled: Boolean;
function IsOpenOfficeInstalled: Boolean;
-// Windows Vista/Server 2008 UAC (User Account Control)
-function IsUACEnabled: Boolean;
-
{$ENDIF MSWINDOWS}
// Public global variables
@@ -5264,29 +5261,6 @@
Result := ProgIDExists('com.sun.star.ServiceManager');
end;
-//=== Windows Vista/Server 2008 UAC (User Account Control) ===================
-
-function IsUACEnabled: Boolean;
-var
- UACActive: Boolean;
- Registry: TRegistry;
-begin
- Registry := TRegistry.Create;
- try
- Registry.RootKey := HKEY_LOCAL_MACHINE;
- if Registry.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Policies\System', False) then
- begin
- UACActive := Registry.ReadBool('EnableLUA');
- Registry.CloseKey;
- end
- else
- UACActive := False;
- finally
- Registry.Free;
- end;
- Result := (IsWinVista or IsWinServer2008) and UACActive;
-end;
-
//=== Initialization/Finalization ============================================
procedure InitSysInfo;
Modified: trunk/jcl/source/windows/JclSecurity.pas
===================================================================
--- trunk/jcl/source/windows/JclSecurity.pas 2007-09-25 22:02:42 UTC (rev 2186)
+++ trunk/jcl/source/windows/JclSecurity.pas 2007-09-26 11:28:20 UTC (rev 2187)
@@ -88,6 +88,10 @@
// Computer Information
function GetComputerSID(SID: PSID; cbSID: DWORD): Boolean;
+// Windows Vista/Server 2008 UAC (User Account Control)
+function IsUACEnabled: Boolean;
+function IsElevated: Boolean;
+
{$IFDEF UNITVERSIONING}
const
UnitVersioning: TUnitVersionInfo = (
@@ -108,7 +112,7 @@
{$ELSE}
AccCtrl,
{$ENDIF FPC}
- JclResources, JclStrings, JclSysInfo, JclWin32;
+ JclRegistry, JclResources, JclStrings, JclSysInfo, JclWin32;
//=== Access Control =========================================================
@@ -633,6 +637,47 @@
Result := False; // Win9x
end;
+//=== Windows Vista/Server 2008 UAC (User Account Control) ===================
+
+function IsUACEnabled: Boolean;
+begin
+ Result := (IsWinVista or IsWinServer2008) and
+ RegReadBoolDef(HKLM, '\Software\Microsoft\Windows\CurrentVersion\Policies\System', 'EnableLUA', False);
+end;
+
+// source: Vista elevator from the Code Project
+function IsElevated: Boolean;
+const
+ TokenElevation = TTokenInformationClass(20);
+type
+ TOKEN_ELEVATION = record
+ TokenIsElevated: DWORD;
+ end;
+var
+ TokenHandle: THandle;
+ ResultLength: Cardinal;
+ ATokenElevation: TOKEN_ELEVATION;
+begin
+ if IsWinVista or IsWinServer2008 then
+ begin
+ if OpenProcessToken(GetCurrentProcess, TOKEN_QUERY, TokenHandle) then
+ begin
+ try
+ if GetTokenInformation(TokenHandle, TokenElevation, @ATokenElevation, SizeOf(ATokenElevation), ResultLength) then
+ Result := ATokenElevation.TokenIsElevated <> 0
+ else
+ Result := False;
+ finally
+ CloseHandle(TokenHandle);
+ end;
+ end
+ else
+ Result := False;
+ end
+ else
+ Result := IsAdministrator;
+end;
+
{$IFDEF UNITVERSIONING}
initialization
RegisterUnitVersion(HInstance, UnitVersioning);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ou...@us...> - 2007-09-25 22:02:45
|
Revision: 2186
http://jcl.svn.sourceforge.net/jcl/?rev=2186&view=rev
Author: outchy
Date: 2007-09-25 15:02:42 -0700 (Tue, 25 Sep 2007)
Log Message:
-----------
Borland -> CodeGear in URL
Modified Paths:
--------------
trunk/jcl/Install.txt
Modified: trunk/jcl/Install.txt
===================================================================
--- trunk/jcl/Install.txt 2007-09-24 23:39:40 UTC (rev 2185)
+++ trunk/jcl/Install.txt 2007-09-25 22:02:42 UTC (rev 2186)
@@ -15,10 +15,10 @@
For more detailed information, see docs\Readme.html.
Please make sure you have installed latest update packs. You can download them
-from Borland Support web page:
+from CodeGear Support web page:
-Delphi: http://info.borland.com/devsupport/delphi/
-C++Builder: http://info.borland.com/devsupport/bcppbuilder/
+Delphi: http://support.codegear.com/delphi
+C++Builder: http://support.codegear.com/cppbuilder
******************************* IMPORTANT **************************************
* *
@@ -30,10 +30,6 @@
* Do not mix files or compiled packages from older versions of the JCL with *
* current version. *
* *
-* JCL 1.96 is not compatible with JVCL versions < 3 and _will_ break them! *
-* JVCL v. 3.1 will get released together with JCL 1.96; it is available from *
-* http://jvcl.sourceforge.net/daily/ *
-* *
********************************************************************************
JEDI INSTALLER
@@ -55,11 +51,15 @@
- click on "Install.bat" file in the JCL root directory.
Note: If you have Delphi 8 for Microsoft .NET installed, you probably will have
- to specify the root directory of the make.exe to use for JCL installation;
+ to specify the root directory of the make.exe to use for JCL installation;
on the commandline, type (for example):
- >install "C:\Program Files\Borland\Delphi5"
+ >install "C:\Program Files\Borland\Delphi5"
+ or
+
+ >install d5
+
2) Kylix 3
- open a shell window
- cd into JCL root directory
@@ -68,4 +68,4 @@
Kylix 3 installation) in case your system is not set up to do that at startup.
--------------------------------
-Document last updated 2007-06-25
+Document last updated 2007-09-25
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ou...@us...> - 2007-09-24 23:39:42
|
Revision: 2185
http://jcl.svn.sourceforge.net/jcl/?rev=2185&view=rev
Author: outchy
Date: 2007-09-24 16:39:40 -0700 (Mon, 24 Sep 2007)
Log Message:
-----------
fixes for range check errors
Modified Paths:
--------------
trunk/jcl/source/windows/JclSecurity.pas
Modified: trunk/jcl/source/windows/JclSecurity.pas
===================================================================
--- trunk/jcl/source/windows/JclSecurity.pas 2007-09-22 12:15:56 UTC (rev 2184)
+++ trunk/jcl/source/windows/JclSecurity.pas 2007-09-24 23:39:40 UTC (rev 2185)
@@ -358,9 +358,11 @@
begin
NameSize := 0;
DomainSize := 0;
- Win32Check(LookupAccountSidA(nil, Sid, nil, NameSize, nil, DomainSize, Use));
- SetLength(Name, NameSize);
- SetLength(Domain, DomainSize);
+ LookupAccountSidA(nil, Sid, nil, NameSize, nil, DomainSize, Use);
+ if NameSize > 0 then
+ SetLength(Name, NameSize - 1);
+ if DomainSize > 0 then
+ SetLength(Domain, DomainSize - 1);
Win32Check(LookupAccountSidA(nil, Sid, PAnsiChar(Name), NameSize, PAnsiChar(Domain), DomainSize, Use));
end
else
@@ -575,7 +577,11 @@
else
Authority := Copy(SIDString, CurrentPos, TempPos - CurrentPos);
- ASID^.SubAuthority[ASID^.SubAuthorityCount] := StrToInt(Authority);
+ {$R-}
+ ASID^.SubAuthority[ASID^.SubAuthorityCount] := StrToInt64(Authority);
+ {$IFDEF RANGECHECKS_ON}
+ {$R+}
+ {$ENDIF RANGECHECKS_ON}
Inc(ASID^.SubAuthorityCount);
CurrentPos := TempPos + 1;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ou...@us...> - 2007-09-22 12:15:58
|
Revision: 2184
http://jcl.svn.sourceforge.net/jcl/?rev=2184&view=rev
Author: outchy
Date: 2007-09-22 05:15:56 -0700 (Sat, 22 Sep 2007)
Log Message:
-----------
mantis 4426 Thread safe support is not working on .net
major update of containers:
- null elements can be added to containers
- all containers and iterators can be cloned
- all classes implement IJclCloneable and IJclIntfCloneable
- all classes are thread safe
- thread safe support is now read/write differentiated (to be improved for Win32 and Kylix which still use critical sections
- stacks and queues can grow on demand and on need
- stacks and queues can be cleared
- stacks and queues can own objects
- linked lists are bidirectional
- added Items property to IJclIntfList
- new method for iterators: Insert; behavior of Add methods is changed: it now adds items to the end of the list
- reducing amount of CLR specific code by reworking exception declarations.
- introducing parametized containers (generics) for Delphi.net 2007; 3 flavors are available for each container: classes names ending by "E" external helper to compare items, "F" function helper to compare items, "I" items can compare themselves to an other
- all classes expose IJclLockable when available (when THREADSAFE is defined)
- memory consumption can be reduced by calling IJclPackable.Pack
- fixing compilation issues of the ListExample.dpr example (reported by Dierk in newsgroups)
- several fixes
Modified Paths:
--------------
trunk/jcl/examples/common/containers/lists/ListExampleMain.pas
trunk/jcl/examples/common/containers/lists/MyObjectList.pas
trunk/jcl/source/common/JclAbstractContainers.pas
trunk/jcl/source/common/JclAlgorithms.pas
trunk/jcl/source/common/JclArrayLists.pas
trunk/jcl/source/common/JclArraySets.pas
trunk/jcl/source/common/JclBase.pas
trunk/jcl/source/common/JclBinaryTrees.pas
trunk/jcl/source/common/JclContainerIntf.pas
trunk/jcl/source/common/JclHashMaps.pas
trunk/jcl/source/common/JclHashSets.pas
trunk/jcl/source/common/JclLinkedLists.pas
trunk/jcl/source/common/JclQueues.pas
trunk/jcl/source/common/JclResources.pas
trunk/jcl/source/common/JclStacks.pas
trunk/jcl/source/common/JclVectors.pas
Modified: trunk/jcl/examples/common/containers/lists/ListExampleMain.pas
===================================================================
--- trunk/jcl/examples/common/containers/lists/ListExampleMain.pas 2007-09-22 11:48:03 UTC (rev 2183)
+++ trunk/jcl/examples/common/containers/lists/ListExampleMain.pas 2007-09-22 12:15:56 UTC (rev 2184)
@@ -194,7 +194,7 @@
procedure TMainForm.btnIntfVectorClick(Sender: TObject);
var
- List: TJclIntfVector;
+ List: IJclIntfList;
MyObject: IIntfMyObject;
It: IJclIntfIterator;
I: Integer;
@@ -228,7 +228,6 @@
List.Clear;
finally
It := nil; // Force release Iterator before free list !
- List.Free; // No Ref Count
end;
end;
Modified: trunk/jcl/examples/common/containers/lists/MyObjectList.pas
===================================================================
--- trunk/jcl/examples/common/containers/lists/MyObjectList.pas 2007-09-22 11:48:03 UTC (rev 2183)
+++ trunk/jcl/examples/common/containers/lists/MyObjectList.pas 2007-09-22 12:15:56 UTC (rev 2184)
@@ -19,21 +19,21 @@
IMyObjectList = interface
['{DB2B366E-2CA6-4AFC-A2C9-3285D252DC3E}']
function Add(AObject: TMyObject): Boolean; overload;
- function AddAll(ACollection: IJclCollection): Boolean; overload;
+ function AddAll(const ACollection: IJclCollection): Boolean; overload;
procedure Clear;
function Contains(AObject: TMyObject): Boolean;
- function ContainsAll(ACollection: IJclCollection): Boolean;
- function Equals(ACollection: IJclCollection): Boolean;
+ function ContainsAll(const ACollection: IJclCollection): Boolean;
+ function Equals(const ACollection: IJclCollection): Boolean;
function First: IJclIterator;
function IsEmpty: Boolean;
function Last: IJclIterator;
function Remove(AObject: TMyObject): Boolean; overload;
- function RemoveAll(ACollection: IJclCollection): Boolean;
- function RetainAll(ACollection: IJclCollection): Boolean;
+ function RemoveAll(const ACollection: IJclCollection): Boolean;
+ function RetainAll(const ACollection: IJclCollection): Boolean;
function Size: Integer;
procedure Add(Index: Integer; AObject: TMyObject); overload;
- function AddAll(Index: Integer; ACollection: IJclCollection): Boolean; overload;
+ function AddAll(Index: Integer; const ACollection: IJclCollection): Boolean; overload;
function GetObject(Index: Integer): TMyObject;
function IndexOf(AObject: TMyObject): Integer;
function LastIndexOf(AObject: TMyObject): Integer;
@@ -46,7 +46,7 @@
protected
{ IJclCollection }
function Add(AObject: TMyObject): Boolean; overload;
- function AddAll(ACollection: IJclCollection): Boolean; overload;
+ function AddAll(const ACollection: IJclCollection): Boolean; overload;
procedure IMyObjectList.Clear = Clear;
function Contains(AObject: TMyObject): Boolean;
function IMyObjectList.ContainsAll = ContainsAll;
@@ -61,7 +61,7 @@
protected
{ IJclList }
procedure Add(Index: Integer; AObject: TMyObject); overload;
- function AddAll(Index: Integer; ACollection: IJclCollection): Boolean; overload;
+ function AddAll(Index: Integer; const ACollection: IJclCollection): Boolean; overload;
function GetObject(Index: Integer): TMyObject;
function IndexOf(AObject: TMyObject): Integer;
function LastIndexOf(AObject: TMyObject): Integer;
@@ -84,13 +84,12 @@
Result := inherited Add(AObject);
end;
-function TMyObjectList.AddAll(ACollection: IJclCollection): Boolean;
+function TMyObjectList.AddAll(const ACollection: IJclCollection): Boolean;
begin
Result := inherited AddAll(ACollection);
end;
-function TMyObjectList.AddAll(Index: Integer;
- ACollection: IJclCollection): Boolean;
+function TMyObjectList.AddAll(Index: Integer; const ACollection: IJclCollection): Boolean;
begin
Result := inherited InsertAll(Index, ACollection);
end;
Modified: trunk/jcl/source/common/JclAbstractContainers.pas
===================================================================
--- trunk/jcl/source/common/JclAbstractContainers.pas 2007-09-22 11:48:03 UTC (rev 2183)
+++ trunk/jcl/source/common/JclAbstractContainers.pas 2007-09-22 12:15:56 UTC (rev 2184)
@@ -19,6 +19,7 @@
{ Contributors: }
{ Daniele Teti (dade2004) }
{ Robert Marquardt (marquardt) }
+{ Florent Ouchet (outchy) }
{ }
{**************************************************************************************************}
{ }
@@ -52,6 +53,7 @@
{$IFDEF HAS_UNIT_LIBC}
Libc,
{$ENDIF HAS_UNIT_LIBC}
+ SyncObjs,
SysUtils, Classes, JclBase, JclContainerIntf, JclSysUtils;
type
@@ -59,19 +61,37 @@
TJclIntfCriticalSection = JclSysUtils.TJclIntfCriticalSection;
{$ENDIF KEEP_DEPRECATED}
- TJclAbstractContainer = class(TInterfacedObject)
+ TJclAbstractContainer = class(TInterfacedObject {$IFDEF THREADSAFE}, IJclLockable {$ENDIF THREADSAFE})
{$IFDEF THREADSAFE}
private
- FCriticalSection: TJclIntfCriticalSection;
+ FLockDelegate: IJclLockable;
+ {$IFDEF CLR}
+ FReaderWriterLock: ReaderWriterLock;
+ FUpgradedWrite: Boolean;
+ FLockCookie: LockCookie;
+ {$ELSE ~CLR}
+ FCriticalSection: TCriticalSection;
+ {$ENDIF ~CLR}
protected
- function EnterCriticalSection: IInterface;
+ procedure ReadLock;
+ procedure ReadUnlock;
+ procedure WriteLock;
+ procedure WriteUnlock;
public
- constructor Create;
destructor Destroy; override;
{$ENDIF THREADSAFE}
+ public
+ constructor Create(ALockDelegate: IInterface);
end;
- TJclStrCollection = class(TJclAbstractContainer, IJclStrCollection)
+ TJclAbstractIterator = class(TJclAbstractContainer {$IFDEF THREADSAFE}, IJclLockable {$ENDIF THREADSAFE})
+ private
+ FValid: Boolean;
+ public
+ property Valid: Boolean read FValid write FValid;
+ end;
+
+ TJclStrCollection = class(TJclAbstractContainer, IJclStrCollection {$IFDEF THREADSAFE},IJclLockable{$ENDIF THREADSAFE})
protected
{ IJclStrCollection }
function Add(const AString: string): Boolean; virtual; abstract;
@@ -111,25 +131,97 @@
//=== { TJclAbstractContainer } ==============================================
-{$IFDEF THREADSAFE}
-
-constructor TJclAbstractContainer.Create;
+constructor TJclAbstractContainer.Create(ALockDelegate: IInterface);
begin
inherited Create;
- FCriticalSection := TJclIntfCriticalSection.Create;
+ {$IFDEF THREADSAFE}
+ FLockDelegate := ALockDelegate as IJclLockable;
+ if FLockDelegate = nil then
+ {$IFDEF CLR}
+ FReaderWriterLock := ReaderWriterLock.Create;
+ {$ELSE ~CLR}
+ FCriticalSection := TCriticalSection.Create;
+ {$ENDIF ~CLR}
+ {$ENDIF THREADSAFE}
end;
+{$IFDEF THREADSAFE}
+
destructor TJclAbstractContainer.Destroy;
begin
+ {$IFDEF CLR}
+ FReaderWriterLock.Free;
+ {$ELSE ~CLR}
FCriticalSection.Free;
+ {$ENDIF ~CLR}
+ FLockDelegate := nil;
inherited Destroy;
end;
-function TJclAbstractContainer.EnterCriticalSection: IInterface;
+procedure TJclAbstractContainer.ReadLock;
begin
- Result := FCriticalSection as IInterface;
+ if FLockDelegate <> nil then
+ FLockDelegate.ReadLock
+ else
+ {$IFDEF CLR}
+ // if current thread has write access, no need to request a read access
+ if not FReaderWriterLock.IsWriterLockHeld then
+ FReaderWriterLock.AcquireReaderLock(-1);
+ {$ELSE ~CLR}
+ FCriticalSection.Acquire;
+ {$ENDIF ~CLR}
end;
+procedure TJclAbstractContainer.ReadUnlock;
+begin
+ if FLockDelegate <> nil then
+ FLockDelegate.ReadUnlock
+ else
+ {$IFDEF CLR}
+ // if current thread has write access, no need to release read access
+ if not FReaderWriterLock.IsWriterLockHeld then
+ FReaderWriterLock.ReleaseReaderLock;
+ {$ELSE ~CLR}
+ FCriticalSection.Release;
+ {$ENDIF ~CLR}
+end;
+
+procedure TJclAbstractContainer.WriteLock;
+begin
+ if FLockDelegate <> nil then
+ FLockDelegate.WriteLock
+ else
+ {$IFDEF CLR}
+ if FReaderWriterLock.IsReaderLockHeld then
+ begin
+ FLockCookie := FReaderWriterLock.UpgradeToWriterLock(-1);
+ FUpgradedWrite := True;
+ end
+ else
+ FReaderWriterLock.AcquireWriterLock(-1);
+ {$ELSE ~CLR}
+ FCriticalSection.Acquire;
+ {$ENDIF ~CLR}
+end;
+
+procedure TJclAbstractContainer.WriteUnlock;
+begin
+ if FLockDelegate <> nil then
+ FLockDelegate.WriteUnlock
+ else
+ {$IFDEF CLR}
+ if FUpgradedWrite then
+ begin
+ FUpgradedWrite := False;
+ FReaderWriterLock.DowngradeFromWriterLock(FLockCookie);
+ end
+ else
+ FReaderWriterLock.ReleaseWriterLock;
+ {$ELSE ~CLR}
+ FCriticalSection.Release;
+ {$ENDIF ~CLR}
+end;
+
{$ENDIF THREADSAFE}
//=== { TJclStrCollection } ==================================================
@@ -142,7 +234,7 @@
I := Pos(Separator, AString);
if I <> 0 then
begin
- Dec(I); // to .NET string index base
+ Dec(I); // to .NET string index base
StartIndex := 0;
repeat
Add(AString.Substring(StartIndex, I - StartIndex + 1));
Modified: trunk/jcl/source/common/JclAlgorithms.pas
===================================================================
--- trunk/jcl/source/common/JclAlgorithms.pas 2007-09-22 11:48:03 UTC (rev 2183)
+++ trunk/jcl/source/common/JclAlgorithms.pas 2007-09-22 12:15:56 UTC (rev 2184)
@@ -16,6 +16,9 @@
{ Jean-Philippe BEMPEL are Copyright (C) Jean-Philippe BEMPEL (rdm_30 att yahoo dott com) }
{ All rights reserved. }
{ }
+{ Contributors: }
+{ Florent Ouchet (outchy) }
+{ }
{**************************************************************************************************}
{ }
{ The Delphi Container Library }
@@ -123,6 +126,34 @@
procedure Sort(const AList: IJclStrList; First, Last: Integer; AComparator: TStrCompare); overload;
procedure Sort(const AList: IJclList; First, Last: Integer; AComparator: TCompare); overload;
+{$IFDEF SUPPORTS_GENERICS}
+type
+ TApplyFunction<T> = function(AItem: T): T;
+ TCompare<T> = function(Obj1, Obj2: T): Integer;
+ TEqualityCompare<T> = function(Obj1, Obj2: T): Boolean;
+ THash<T> = function(AItem: T): Integer;
+ TSortProc<T> = procedure(const AList: IJclList<T>; L, R: Integer; AComparator: TCompare<T>);
+
+ // cannot implement generic global functions
+ TJclAlgorithms<T> = class
+ private
+ //FSortProc: TSortProc;
+ public
+ class procedure Apply(const First: IJclIterator<T>; Count: Integer; F: TApplyFunction<T>);
+ class function Find(const First: IJclIterator<T>; Count: Integer; AItem: T;
+ AComparator: TCompare<T>): IJclIterator<T>;
+ class function CountObject(const First: IJclIterator<T>; Count: Integer; AItem: T;
+ AComparator: TCompare<T>): Integer;
+ class procedure Copy(const First: IJclIterator<T>; Count: Integer; const Output: IJclIterator<T>);
+ class procedure Generate(const List: IJclList<T>; Count: Integer; AItem: T);
+ class procedure Fill(const First: IJclIterator<T>; Count: Integer; AItem: T);
+ class procedure Reverse(const First, Last: IJclIterator<T>);
+ class procedure QuickSort(const AList: IJclList<T>; L, R: Integer; AComparator: TCompare<T>);
+ //class procedure Sort(const AList: IJclList<T>; First, Last: Integer; AComparator: TCompare<T>);
+ //class property SortProc: TSortProc<T> read FSortProc write FSortProc;
+ end;
+{$ENDIF SUPPORTS_GENERICS}
+
{$IFDEF UNITVERSIONING}
const
UnitVersioning: TUnitVersionInfo = (
@@ -206,8 +237,8 @@
for I := Count - 1 downto 0 do
if First.HasNext then
begin
+ First.Next;
First.SetObject(F(First.GetObject));
- First.Next;
end
else
Break;
@@ -320,9 +351,8 @@
for I := Count - 1 downto 0 do
if Output.HasNext and First.HasNext then
begin
- Output.SetObject(First.GetObject);
- First.Next;
Output.Next;
+ Output.SetObject(First.Next);
end
else
Break;
@@ -336,9 +366,8 @@
for I := Count - 1 downto 0 do
if Output.HasNext and First.HasNext then
begin
- Output.SetString(First.GetString);
- First.Next;
Output.Next;
+ Output.SetString(First.Next);
end
else
Break;
@@ -352,9 +381,8 @@
for I := Count - 1 downto 0 do
if Output.HasNext and First.HasNext then
begin
- Output.SetObject(First.GetObject);
- First.Next;
Output.Next;
+ Output.SetObject(First.Next);
end
else
Break;
@@ -606,6 +634,154 @@
SortProc(AList, First, Last, AComparator);
end;
+{$IFDEF SUPPORTS_GENERICS}
+class procedure TJclAlgorithms<T>.Apply(const First: IJclIterator<T>; Count: Integer;
+ F: TApplyFunction<T>);
+var
+ I: Integer;
+begin
+ for I := Count - 1 downto 0 do
+ if First.HasNext then
+ begin
+ First.SetItem(F(First.GetItem));
+ First.Next;
+ end
+ else
+ Break;
+end;
+
+class function TJclAlgorithms<T>.Find(const First: IJclIterator<T>; Count: Integer; AItem: T;
+ AComparator: TCompare<T>): IJclIterator<T>;
+var
+ I: Integer;
+begin
+ Result := nil;
+ for I := Count - 1 downto 0 do
+ if First.HasNext then
+ begin
+ if AComparator(First.GetItem, AItem) = 0 then
+ begin
+ Result := First;
+ Break;
+ end;
+ First.Next;
+ end
+ else
+ Break;
+end;
+
+class function TJclAlgorithms<T>.CountObject(const First: IJclIterator<T>; Count: Integer;
+ AItem: T; AComparator: TCompare<T>): Integer;
+var
+ I: Integer;
+begin
+ Result := 0;
+ for I := Count - 1 downto 0 do
+ if First.HasNext then
+ Inc(Result, Ord(AComparator(First.Next, AItem) = 0))
+ else
+ Break;
+end;
+
+class procedure TJclAlgorithms<T>.Copy(const First: IJclIterator<T>; Count: Integer;
+ const Output: IJclIterator<T>);
+var
+ I: Integer;
+begin
+ for I := Count - 1 downto 0 do
+ if Output.HasNext and First.HasNext then
+ begin
+ Output.Next;
+ Output.SetItem(First.Next);
+ end
+ else
+ Break;
+end;
+
+class procedure TJclAlgorithms<T>.Generate(const List: IJclList<T>; Count: Integer; AItem: T);
+var
+ I: Integer;
+begin
+ List.Clear;
+ for I := Count - 1 downto 0 do
+ List.Add(AItem);
+end;
+
+class procedure TJclAlgorithms<T>.Fill(const First: IJclIterator<T>; Count: Integer; AItem: T);
+var
+ I: Integer;
+begin
+ for I := Count - 1 downto 0 do
+ if First.HasNext then
+ begin
+ First.SetItem(AItem);
+ First.Next;
+ end
+ else
+ Break;
+end;
+
+class procedure TJclAlgorithms<T>.Reverse(const First, Last: IJclIterator<T>);
+var
+ Obj: T;
+begin
+ if not First.HasNext then
+ Exit;
+ if not Last.HasPrevious then
+ Exit;
+ while First.NextIndex <= Last.PreviousIndex do
+ begin
+ Obj := First.GetItem;
+ Last.Previous;
+ First.SetItem(Last.GetItem);
+ Last.SetItem(Obj);
+ First.Next;
+ end;
+end;
+
+class procedure TJclAlgorithms<T>.QuickSort(const AList: IJclList<T>; L, R: Integer;
+ AComparator: TCompare<T>);
+var
+ I, J, P: Integer;
+ Obj: T;
+begin
+ repeat
+ I := L;
+ J := R;
+ P := (L + R) shr 1;
+ repeat
+ while AComparator(AList.GetItem(I), AList.GetItem(P)) < 0 do
+ Inc(I);
+ while AComparator(AList.GetItem(J), AList.GetItem(P)) > 0 do
+ Dec(J);
+ if I <= J then
+ begin
+ Obj := AList.GetItem(I);
+ AList.SetItem(I, AList.GetItem(J));
+ AList.SetItem(J, Obj);
+ if P = I then
+ P := J
+ else
+ if P = J then
+ P := I;
+ Inc(I);
+ Dec(J);
+ end;
+ until I > J;
+ if L < J then
+ QuickSort(AList, L, J, AComparator);
+ L := I;
+ until I >= R;
+end;
+
+{class procedure TJclAlgorithms<T>.Sort(const AList: IJclList<T>; First, Last: Integer;
+ AComparator: TCompare<T>);
+begin
+
+end;}
+{$ENDIF SUPPORTS_GENERICS}
+
+
{$IFDEF UNITVERSIONING}
initialization
RegisterUnitVersion(HInstance, UnitVersioning);
Modified: trunk/jcl/source/common/JclArrayLists.pas
===================================================================
--- trunk/jcl/source/common/JclArrayLists.pas 2007-09-22 11:48:03 UTC (rev 2183)
+++ trunk/jcl/source/common/JclArrayLists.pas 2007-09-22 12:15:56 UTC (rev 2184)
@@ -16,6 +16,9 @@
{ Jean-Philippe BEMPEL are Copyright (C) Jean-Philippe BEMPEL (rdm_30 att yahoo dott com) }
{ All rights reserved. }
{ }
+{ Contributors: }
+{ Florent Ouchet (outchy) }
+{ }
{**************************************************************************************************}
{ }
{ The Delphi Container Library }
@@ -38,19 +41,36 @@
{$IFDEF UNITVERSIONING}
JclUnitVersioning,
{$ENDIF UNITVERSIONING}
+ {$IFDEF SUPPORTS_GENERICS}
+ {$IFDEF CLR}
+ System.Collections.Generic,
+ {$ENDIF CLR}
+ JclAlgorithms,
+ {$ENDIF SUPPORTS_GENERICS}
Classes,
JclBase, JclAbstractContainers, JclContainerIntf;
type
- TJclIntfArrayList = class(TJclAbstractContainer, IJclIntfCollection,
- IJclIntfList, IJclIntfArray, IJclIntfCloneable)
+ TJclIntfArrayList = class(TJclAbstractContainer, IJclIntfCollection, IJclIntfList, IJclIntfArray,
+ {$IFDEF THREADSAFE} IJclLockable, {$ENDIF THREADSAFE} IJclIntfCloneable, IJclCloneable, IJclPackable, IJclGrowable)
private
FElementData: TDynIInterfaceArray;
FSize: Integer;
FCapacity: Integer;
- procedure SetCapacity(ACapacity: Integer);
protected
- procedure Grow; virtual;
+ { IJclPackable }
+ procedure Pack;
+ function GetCapacity: Integer;
+ procedure SetCapacity(Value: Integer);
+ { IJclGrowable }
+ procedure Grow; overload; virtual;
+ procedure Grow(Increment: Integer); overload;
+ procedure Grow(Num, Denom: Integer); overload;
+ { IJclIntfCloneable }
+ function IntfClone: IInterface;
+ function IJclIntfCloneable.Clone = IntfClone;
+ { IJclCloneable }
+ function Clone: TObject;
{ IJclIntfCollection }
function Add(const AInterface: IInterface): Boolean; overload;
function AddAll(const ACollection: IJclIntfCollection): Boolean; overload;
@@ -74,8 +94,6 @@
function Remove(Index: Integer): IInterface; overload;
procedure SetObject(Index: Integer; const AInterface: IInterface);
function SubList(First, Count: Integer): IJclIntfList;
- { IJclIntfCloneable }
- function Clone: IInterface;
public
constructor Create(ACapacity: Integer = DefaultContainerCapacity); overload;
constructor Create(const ACollection: IJclIntfCollection); overload;
@@ -84,14 +102,26 @@
end;
//Daniele Teti 02/03/2005
- TJclStrArrayList = class(TJclStrCollection, IJclStrList, IJclStrArray, IJclCloneable)
+ TJclStrArrayList = class(TJclStrCollection, IJclStrCollection, IJclStrList, IJclStrArray,
+ {$IFDEF THREADSAFE} IJclLockable, {$ENDIF THREADSAFE} IJclIntfCloneable, IJclCloneable, IJclPackable, IJclGrowable)
private
FCapacity: Integer;
FElementData: TDynStringArray;
FSize: Integer;
- procedure SetCapacity(ACapacity: Integer);
protected
- procedure Grow; virtual;
+ { IJclPackable }
+ procedure Pack;
+ function GetCapacity: Integer;
+ procedure SetCapacity(Value: Integer);
+ { IJclGrowable }
+ procedure Grow; overload; virtual;
+ procedure Grow(Increment: Integer); overload;
+ procedure Grow(Num, Denom: Integer); overload;
+ { IJclIntfCloneable }
+ function IntfClone: IInterface;
+ function IJclIntfCloneable.Clone = IntfClone;
+ { IJclCloneable }
+ function Clone: TObject;
{ IJclStrCollection }
function Add(const AString: string): Boolean; overload; override;
function AddAll(const ACollection: IJclStrCollection): Boolean; overload; override;
@@ -119,22 +149,31 @@
constructor Create(ACapacity: Integer = DefaultContainerCapacity); overload;
constructor Create(const ACollection: IJclStrCollection); overload;
destructor Destroy; override;
- { IJclCloneable }
- function Clone: TObject;
property Capacity: Integer read FCapacity write SetCapacity;
end;
- TJclArrayList = class(TJclAbstractContainer, IJclCollection, IJclList,
- IJclArray, IJclCloneable)
+ TJclArrayList = class(TJclAbstractContainer, IJclCollection, IJclList, IJclArray,
+ {$IFDEF THREADSAFE} IJclLockable, {$ENDIF THREADSAFE} IJclIntfCloneable, IJclCloneable, IJclPackable, IJclGrowable)
private
FCapacity: Integer;
FElementData: TDynObjectArray;
FOwnsObjects: Boolean;
FSize: Integer;
- procedure SetCapacity(ACapacity: Integer);
protected
- procedure Grow; virtual;
procedure FreeObject(var AObject: TObject);
+ { IJclPackable }
+ procedure Pack;
+ function GetCapacity: Integer;
+ procedure SetCapacity(Value: Integer);
+ { IJclGrowable }
+ procedure Grow; overload; virtual;
+ procedure Grow(Increment: Integer); overload;
+ procedure Grow(Num, Denom: Integer); overload;
+ { IJclIntfCloneable }
+ function IntfClone: IInterface;
+ function IJclIntfCloneable.Clone = IntfClone;
+ { IJclCloneable }
+ function Clone: TObject;
{ IJclCollection }
function Add(AObject: TObject): Boolean; overload;
function AddAll(const ACollection: IJclCollection): Boolean; overload;
@@ -158,8 +197,6 @@
function Remove(Index: Integer): TObject; overload;
procedure SetObject(Index: Integer; AObject: TObject);
function SubList(First, Count: Integer): IJclList;
- { IJclCloneable }
- function Clone: TObject;
public
constructor Create(ACapacity: Integer = DefaultContainerCapacity; AOwnsObjects: Boolean = True); overload;
constructor Create(const ACollection: IJclCollection; AOwnsObjects: Boolean = True); overload;
@@ -168,6 +205,115 @@
property OwnsObjects: Boolean read FOwnsObjects;
end;
+ {$IFDEF SUPPORTS_GENERICS}
+
+ TJclArrayList<T> = class(TJclAbstractContainer, IJclCollection<T>, IJclList<T>, IJclArray<T>,
+ {$IFDEF THREADSAFE} IJclLockable, {$ENDIF THREADSAFE} IJclIntfCloneable, IJclCloneable, IJclPackable, IJclGrowable)
+ private
+ FCapacity: Integer;
+ FElementData: TJclBase<T>.TDynArray;
+ FSize: Integer;
+ FOwnsItems: Boolean;
+ protected
+ function ItemsEqual(const A, B: T): Boolean; virtual; abstract;
+ function CreateEmptyArrayList(const ACollection: IJclCollection<T>): TJclArrayList<T>; overload;
+ function CreateEmptyArrayList(ACapacity: Integer): TJclArrayList<T>; overload; virtual; abstract;
+ procedure FreeItem(var AItem: T);
+ { IJclPackable }
+ procedure Pack;
+ function GetCapacity: Integer;
+ procedure SetCapacity(Value: Integer);
+ { IJclGrowable }
+ procedure Grow; overload; virtual;
+ procedure Grow(Increment: Integer); overload;
+ procedure Grow(Num, Denom: Integer); overload;
+ { IJclIntfCloneable }
+ function IntfClone: IInterface;
+ function IJclIntfCloneable.Clone = IntfClone;
+ { IJclCloneable }
+ function Clone: TObject;
+ { IJclCollection<T> }
+ function Add(const AItem: T): Boolean; overload;
+ function AddAll(const ACollection: IJclCollection<T>): Boolean; overload;
+ procedure Clear;
+ function Contains(const AItem: T): Boolean;
+ function ContainsAll(const ACollection: IJclCollection<T>): Boolean;
+ function Equals(const ACollection: IJclCollection<T>): Boolean;
+ function First: IJclIterator<T>;
+ function IsEmpty: Boolean;
+ function Last: IJclIterator<T>;
+ function Remove(AItem: T): Boolean; overload;
+ function RemoveAll(const ACollection: IJclCollection<T>): Boolean;
+ function RetainAll(const ACollection: IJclCollection<T>): Boolean;
+ function Size: Integer;
+ { IJclList<T> }
+ procedure Insert(Index: Integer; AItem: T); overload;
+ function InsertAll(Index: Integer; const ACollection: IJclCollection<T>): Boolean; overload;
+ function GetItem(Index: Integer): T;
+ function IndexOf(const AItem: T): Integer;
+ function LastIndexOf(const AItem: T): Integer;
+ function Remove(Index: Integer): T; overload;
+ procedure SetItem(Index: Integer; const AItem: T);
+ function SubList(First, Count: Integer): IJclList<T>;
+ public
+ constructor Create(ACapacity: Integer = DefaultContainerCapacity; AOwnsItems: Boolean = True); overload;
+ constructor Create(const ACollection: IJclCollection<T>; AOwnsItems: Boolean = True); overload;
+ destructor Destroy; override;
+ property Capacity: Integer read FCapacity write SetCapacity;
+ property OwnsItems: Boolean read FOwnsItems;
+ end;
+
+ // E = External helper to compare items for equality
+ // GetHashCode is not used
+ TJclArrayListE<T> = class(TJclArrayList<T>, IJclCollection<T>, IJclList<T>, IJclArray<T>,
+ {$IFDEF THREADSAFE} IJclLockable, {$ENDIF THREADSAFE} IJclIntfCloneable, IJclCloneable, IJclPackable, IJclGrowable)
+ private
+ FEqualityComparer: IEqualityComparer<T>;
+ protected
+ function ItemsEqual(const A, B: T): Boolean; override;
+ function CreateEmptyArrayList(ACapacity: Integer): TJclArrayList<T>; override;
+ { IJclIntfCloneable }
+ function IJclIntfCloneable.Clone = IntfClone;
+ public
+ constructor Create(const AEqualityComparer: IEqualityComparer<T>; ACapacity: Integer = DefaultContainerCapacity;
+ AOwnsItems: Boolean = True); overload;
+ constructor Create(const AEqualityComparer: IEqualityComparer<T>; const ACollection: IJclCollection<T>;
+ AOwnsItems: Boolean = True); overload;
+
+ property EqualityComparer: IEqualityComparer<T> read FEqualityComparer write FEqualityComparer;
+ end;
+
+ // F = Function to compare items for equality
+ TJclArrayListF<T> = class(TJclArrayList<T>, IJclCollection<T>, IJclList<T>, IJclArray<T>,
+ {$IFDEF THREADSAFE} IJclLockable, {$ENDIF THREADSAFE} IJclIntfCloneable, IJclCloneable, IJclPackable, IJclGrowable)
+ private
+ FEqualityCompare: TEqualityCompare<T>;
+ protected
+ function ItemsEqual(const A, B: T): Boolean; override;
+ function CreateEmptyArrayList(ACapacity: Integer): TJclArrayList<T>; override;
+ { IJclIntfCloneable }
+ function IJclIntfCloneable.Clone = IntfClone;
+ public
+ constructor Create(const AEqualityCompare: TEqualityCompare<T>; ACapacity: Integer = DefaultContainerCapacity;
+ AOwnsItems: Boolean = True); overload;
+ constructor Create(const AEqualityCompare: TEqualityCompare<T>; const ACollection: IJclCollection<T>;
+ AOwnsItems: Boolean = True); overload;
+
+ property EqualityCompare: TEqualityCompare<T> read FEqualityCompare write FEqualityCompare;
+ end;
+
+ // I = Items can compare themselves to others
+ TJclArrayListI<T: IEquatable<T>> = class(TJclArrayList<T>, IJclCollection<T>, IJclList<T>, IJclArray<T>,
+ {$IFDEF THREADSAFE} IJclLockable, {$ENDIF THREADSAFE} IJclIntfCloneable, IJclCloneable, IJclPackable, IJclGrowable)
+ protected
+ function ItemsEqual(const A, B: T): Boolean; override;
+ function CreateEmptyArrayList(ACapacity: Integer): TJclArrayList<T>; override;
+ { IJclIntfCloneable }
+ function IJclIntfCloneable.Clone = IntfClone;
+ end;
+
+ {$ENDIF SUPPORTS_GENERICS}
+
{$IFDEF UNITVERSIONING}
const
UnitVersioning: TUnitVersionInfo = (
@@ -181,24 +327,28 @@
implementation
uses
- SysUtils,
- JclResources;
+ SysUtils;
//=== { TIntfItr } ===========================================================
type
- TIntfItr = class(TJclAbstractContainer, IJclIntfIterator)
+ TIntfItr = class(TJclAbstractIterator, IJclIntfIterator, {$IFDEF THREADSAFE} IJclLockable, {$ENDIF THREADSAFE}
+ IJclIntfCloneable, IJclCloneable)
private
FCursor: Integer;
- FOwnList: TJclIntfArrayList;
- //FLastRet: Integer;
- FSize: Integer;
+ FOwnList: IJclIntfList;
protected
- { IJclIntfIterator}
+ { IJclCloneable }
+ function Clone: TObject;
+ { IJclIntfCloneable }
+ function IntfClone: IInterface;
+ function IJclIntfCloneable.Clone = IntfClone;
+ { IJclIntfIterator }
procedure Add(const AInterface: IInterface);
function GetObject: IInterface;
function HasNext: Boolean;
function HasPrevious: Boolean;
+ procedure Insert(const AInterface: IInterface);
function Next: IInterface;
function NextIndex: Integer;
function Previous: IInterface;
@@ -206,164 +356,126 @@
procedure Remove;
procedure SetObject(const AInterface: IInterface);
public
- constructor Create(AOwnList: TJclIntfArrayList);
- {$IFNDEF CLR}
- destructor Destroy; override;
- {$ENDIF ~CLR}
+ constructor Create(const AOwnList: IJclIntfList; ACursor: Integer; AValid: Boolean);
end;
-constructor TIntfItr.Create(AOwnList: TJclIntfArrayList);
+constructor TIntfItr.Create(const AOwnList: IJclIntfList; ACursor: Integer; AValid: Boolean);
begin
- inherited Create;
- FCursor := 0;
+ inherited Create(AOwnList);
FOwnList := AOwnList;
- {$IFNDEF CLR}
- FOwnList._AddRef; // Add a ref because FOwnList is not an interface !
- {$ENDIF ~CLR}
- //FLastRet := -1;
- FSize := FOwnList.Size;
+ FCursor := ACursor;
+ Valid := AValid;
end;
-{$IFNDEF CLR}
-destructor TIntfItr.Destroy;
+procedure TIntfItr.Add(const AInterface: IInterface);
begin
- FOwnList._Release;
- inherited Destroy;
+ FOwnList.Add(AInterface);
end;
-{$ENDIF ~CLR}
-procedure TIntfItr.Add(const AInterface: IInterface);
-{$IFDEF THREADSAFE}
-var
- CS: IInterface;
-{$ENDIF THREADSAFE}
+function TIntfItr.Clone: TObject;
begin
- {$IFDEF THREADSAFE}
- CS := EnterCriticalSection;
- {$ENDIF THREADSAFE}
- // inlined FOwnList.Add
- if FOwnList.FSize = FOwnList.Capacity then
- FOwnList.Grow;
- if FOwnList.FSize <> FCursor then
- MoveArray(FOwnList.FElementData, FCursor, FCursor + 1, FOwnList.FSize - FCursor);
- FOwnList.FElementData[FCursor] := AInterface;
- Inc(FOwnList.FSize);
-
- Inc(FSize);
- Inc(FCursor);
- //FLastRet := -1;
+ Result := TIntfItr.Create(FOwnList, FCursor, Valid);
end;
function TIntfItr.GetObject: IInterface;
-{$IFDEF THREADSAFE}
-var
- CS: IInterface;
-{$ENDIF THREADSAFE}
begin
- {$IFDEF THREADSAFE}
- CS := EnterCriticalSection;
- {$ENDIF THREADSAFE}
- Result := FOwnList.FElementData[FCursor];
+ Valid := True;
+ Result := FOwnList.GetObject(FCursor)
end;
function TIntfItr.HasNext: Boolean;
begin
- Result := FCursor < FSize;
+ if Valid then
+ Result := FCursor < (FOwnList.Size - 1)
+ else
+ Result := FCursor < FOwnList.Size;
end;
function TIntfItr.HasPrevious: Boolean;
begin
- Result := FCursor > 0;
+ if Valid then
+ Result := FCursor > 0
+ else
+ Result := FCursor >= 0;
end;
+procedure TIntfItr.Insert(const AInterface: IInterface);
+begin
+ Valid := True;
+ FOwnList.Insert(FCursor, AInterface);
+end;
+
+function TIntfItr.IntfClone: IInterface;
+begin
+ Result := TIntfItr.Create(FOwnList, FCursor, Valid);
+end;
+
function TIntfItr.Next: IInterface;
-{$IFDEF THREADSAFE}
-var
- CS: IInterface;
-{$ENDIF THREADSAFE}
begin
- {$IFDEF THREADSAFE}
- CS := EnterCriticalSection;
- {$ENDIF THREADSAFE}
- Result := FOwnList.FElementData[FCursor];
- //FLastRet := FCursor;
- Inc(FCursor);
+ if Valid then
+ Inc(FCursor)
+ else
+ Valid := True;
+ Result := FOwnList.GetObject(FCursor);
end;
function TIntfItr.NextIndex: Integer;
begin
- Result := FCursor;
+ if Valid then
+ Result := FCursor + 1
+ else
+ Result := FCursor;
end;
function TIntfItr.Previous: IInterface;
-{$IFDEF THREADSAFE}
-var
- CS: IInterface;
-{$ENDIF THREADSAFE}
begin
- {$IFDEF THREADSAFE}
- CS := EnterCriticalSection;
- {$ENDIF THREADSAFE}
- Dec(FCursor);
- //FLastRet := FCursor;
- Result := FOwnList.FElementData[FCursor];
+ if Valid then
+ Dec(FCursor)
+ else
+ Valid := True;
+ Result := FOwnList.GetObject(FCursor);
end;
function TIntfItr.PreviousIndex: Integer;
begin
- Result := FCursor - 1;
+ if Valid then
+ Result := FCursor - 1
+ else
+ Result := FCursor;
end;
procedure TIntfItr.Remove;
-{$IFDEF THREADSAFE}
-var
- CS: IInterface;
-{$ENDIF THREADSAFE}
begin
- {$IFDEF THREADSAFE}
- CS := EnterCriticalSection;
- {$ENDIF THREADSAFE}
- with FOwnList do
- begin
- FElementData[FCursor] := nil; // Force Release
- if FSize <> FCursor then
- MoveArray(FElementData, FCursor + 1, FCursor, FSize - FCursor);
- end;
- Dec(FOwnList.FSize);
- Dec(FSize);
+ Valid := False;
+ FOwnList.Remove(FCursor);
end;
procedure TIntfItr.SetObject(const AInterface: IInterface);
-{$IFDEF THREADSAFE}
-var
- CS: IInterface;
-{$ENDIF THREADSAFE}
begin
- {
- if FLastRet = -1 then
- raise EJclIllegalState.Create(SIllegalState);
- }
- {$IFDEF THREADSAFE}
- CS := EnterCriticalSection;
- {$ENDIF THREADSAFE}
- FOwnList.FElementData[FCursor] := AInterface;
+ Valid := True;
+ FOwnList.SetObject(FCursor, AInterface);
end;
//=== { TStrItr } ============================================================
type
- TStrItr = class(TJclAbstractContainer, IJclStrIterator)
+ TStrItr = class(TJclAbstractIterator, IJclStrIterator, {$IFDEF THREADSAFE} IJclLockable, {$ENDIF THREADSAFE}
+ IJclIntfCloneable, IJclCloneable)
private
FCursor: Integer;
- FOwnList: TJclStrArrayList;
- //FLastRet: Integer;
- FSize: Integer;
+ FOwnList: IJclStrList;
protected
- { IJclStrIterator}
+ { IJclCloneable }
+ function Clone: TObject;
+ { IJclIntfCloneable }
+ function IntfClone: IInterface;
+ function IJclIntfCloneable.Clone = IntfClone;
+ { IJclStrIterator }
procedure Add(const AString: string);
function GetString: string;
function HasNext: Boolean;
function HasPrevious: Boolean;
+ procedure Insert(const AString: string);
function Next: string;
function NextIndex: Integer;
function Previous: string;
@@ -371,164 +483,126 @@
procedure Remove;
procedure SetString(const AString: string);
public
- constructor Create(AOwnList: TJclStrArrayList);
- {$IFNDEF CLR}
- destructor Destroy; override;
- {$ENDIF ~CLR}
+ constructor Create(const AOwnList: IJclStrList; ACursor: Integer; AValid: Boolean);
end;
-constructor TStrItr.Create(AOwnList: TJclStrArrayList);
+constructor TStrItr.Create(const AOwnList: IJclStrList; ACursor: Integer; AValid: Boolean);
begin
- inherited Create;
- FCursor := 0;
+ inherited Create(AOwnList);
FOwnList := AOwnList;
- {$IFNDEF CLR}
- FOwnList._AddRef; // Add a ref because FOwnList is not an interface !
- {$ENDIF ~CLR}
- //FLastRet := -1;
- FSize := FOwnList.Size;
+ FCursor := ACursor;
+ Valid := AValid;
end;
-{$IFNDEF CLR}
-destructor TStrItr.Destroy;
+procedure TStrItr.Add(const AString: string);
begin
- FOwnList._Release;
- inherited Destroy;
+ FOwnList.Add(AString);
end;
-{$ENDIF ~CLR}
-procedure TStrItr.Add(const AString: string);
-{$IFDEF THREADSAFE}
-var
- CS: IInterface;
-{$ENDIF THREADSAFE}
+function TStrItr.Clone: TObject;
begin
- {$IFDEF THREADSAFE}
- CS := EnterCriticalSection;
- {$ENDIF THREADSAFE}
- // inlined FOwnList.Add
- if FOwnList.FSize = FOwnList.Capacity then
- FOwnList.Grow;
- if FOwnList.FSize <> FCursor then
- MoveArray(FOwnList.FElementData, FCursor, FCursor + 1, FOwnList.FSize - FCursor);
- FOwnList.FElementData[FCursor] := AString;
- Inc(FOwnList.FSize);
-
- Inc(FSize);
- Inc(FCursor);
- //FLastRet := -1;
+ Result := TStrItr.Create(FOwnList, FCursor, Valid);
end;
function TStrItr.GetString: string;
-{$IFDEF THREADSAFE}
-var
- CS: IInterface;
-{$ENDIF THREADSAFE}
begin
- {$IFDEF THREADSAFE}
- CS := EnterCriticalSection;
- {$ENDIF THREADSAFE}
- Result := FOwnList.FElementData[FCursor];
+ Valid := True;
+ Result := FOwnList.GetString(FCursor);
end;
function TStrItr.HasNext: Boolean;
begin
- Result := FCursor < FSize;
+ if Valid then
+ Result := FCursor < (FOwnList.Size - 1)
+ else
+ Result := FCursor < FOwnList.Size;
end;
function TStrItr.HasPrevious: Boolean;
begin
- Result := FCursor > 0;
+ if Valid then
+ Result := FCursor > 0
+ else
+ Result := FCursor >= 0;
end;
+function TStrItr.IntfClone: IInterface;
+begin
+ Result := TStrItr.Create(FOwnList, FCursor, Valid);
+end;
+
+procedure TStrItr.Insert(const AString: string);
+begin
+ Valid := True;
+ FOwnList.Insert(FCursor, AString);
+end;
+
function TStrItr.Next: string;
-{$IFDEF THREADSAFE}
-var
- CS: IInterface;
-{$ENDIF THREADSAFE}
begin
- {$IFDEF THREADSAFE}
- CS := EnterCriticalSection;
- {$ENDIF THREADSAFE}
- Result := FOwnList.FElementData[FCursor];
- //FLastRet := FCursor;
- Inc(FCursor);
+ if Valid then
+ Inc(FCursor)
+ else
+ Valid := True;
+ Result := FOwnList.GetString(FCursor);
end;
function TStrItr.NextIndex: Integer;
begin
- Result := FCursor;
+ if Valid then
+ Result := FCursor + 1
+ else
+ Result := FCursor;
end;
function TStrItr.Previous: string;
-{$IFDEF THREADSAFE}
-var
- CS: IInterface;
-{$ENDIF THREADSAFE}
begin
- {$IFDEF THREADSAFE}
- CS := EnterCriticalSection;
- {$ENDIF THREADSAFE}
- Dec(FCursor);
- //FLastRet := FCursor;
- Result := FOwnList.FElementData[FCursor];
+ if Valid then
+ Dec(FCursor)
+ else
+ Valid := True;
+ Result := FOwnList.GetString(FCursor);
end;
function TStrItr.PreviousIndex: Integer;
begin
- Result := FCursor - 1;
+ if Valid then
+ Result := FCursor - 1
+ else
+ Result := FCursor;
end;
procedure TStrItr.Remove;
-{$IFDEF THREADSAFE}
-var
- CS: IInterface;
-{$ENDIF THREADSAFE}
begin
- {$IFDEF THREADSAFE}
- CS := EnterCriticalSection;
- {$ENDIF THREADSAFE}
- with FOwnList do
- begin
- FElementData[FCursor] := ''; // Force Release
- if FSize <> FCursor then
- MoveArray(FElementData, FCursor + 1, FCursor, FSize - FCursor);
- end;
- Dec(FOwnList.FSize);
- Dec(FSize);
+ Valid := False;
+ FOwnList.Remove(FCursor);
end;
procedure TStrItr.SetString(const AString: string);
-{$IFDEF THREADSAFE}
-var
- CS: IInterface;
-{$ENDIF THREADSAFE}
begin
- {
- if FLastRet = -1 then
- raise EJclIllegalState.Create(SIllegalState);
- }
- {$IFDEF THREADSAFE}
- CS := EnterCriticalSection;
- {$ENDIF THREADSAFE}
- FOwnList.FElementData[FCursor] := AString;
+ Valid := True;
+ FOwnList.SetString(FCursor, AString);
end;
//=== { TItr } ===============================================================
type
- TItr = class(TJclAbstractContainer, IJclIterator)
+ TItr = class(TJclAbstractIterator, IJclIterator, {$IFDEF THREADSAFE} IJclLockable, {$ENDIF THREADSAFE}
+ IJclIntfCloneable, IJclCloneable)
private
FCursor: Integer;
- FOwnList: TJclArrayList;
- //FLastRet: Integer;
- FSize: Integer;
+ FOwnList: IJclList;
protected
- { IJclIterator}
+ { IJclCloneable }
+ function Clone: TObject;
+ { IJclIntfCloneable }
+ function IntfClone: IInterface;
+ function IJclIntfCloneable.Clone = IntfClone;
+ { IJclIterator }
procedure Add(AObject: TObject);
function GetObject: TObject;
function HasNext: Boolean;
function HasPrevious: Boolean;
+ procedure Insert(AObject: TObject);
function Next: TObject;
function NextIndex: Integer;
function Previous: TObject;
@@ -536,150 +610,242 @@
procedure Remove;
procedure SetObject(AObject: TObject);
public
- constructor Create(AOwnList: TJclArrayList);
- {$IFNDEF CLR}
- destructor Destroy; override;
- {$ENDIF ~CLR}
+ constructor Create(const AOwnList: IJclList; ACursor: Integer; AValid: Boolean);
end;
-constructor TItr.Create(AOwnList: TJclArrayList);
+constructor TItr.Create(const AOwnList: IJclList; ACursor: Integer; AValid: Boolean);
begin
- inherited Create;
- FCursor := 0;
+ inherited Create(AOwnList);
FOwnList := AOwnList;
- {$IFNDEF CLR}
- FOwnList._AddRef; // Add a ref because FOwnList is not an interface !
- {$ENDIF ~CLR}
- //FLastRet := -1;
- FSize := FOwnList.Size;
+ FCursor := ACursor;
+ Valid := AValid;
end;
-{$IFNDEF CLR}
-destructor TItr.Destroy;
+procedure TItr.Add(AObject: TObject);
begin
- FOwnList._Release;
- inherited Destroy;
+ FOwnList.Add(AObject);
end;
-{$ENDIF ~CLR}
-procedure TItr.Add(AObject: TObject);
-{$IFDEF THREADSAFE}
-var
- CS: IInterface;
-{$ENDIF THREADSAFE}
+function TItr.Clone: TObject;
begin
- {$IFDEF THREADSAFE}
- CS := EnterCriticalSection;
- {$ENDIF THREADSAFE}
- // inlined FOwnList.Add
- if FOwnList.FSize = FOwnList.Capacity then
- FOwnList.Grow;
- if FOwnList.FSize <> FCursor then
- MoveArray(FOwnList.FElementData, FCursor, FCursor + 1, FOwnList.FSize - FCursor);
- FOwnList.FElementData[FCursor] := AObject;
- Inc(FOwnList.FSize);
-
- Inc(FSize);
- Inc(FCursor);
- //FLastRet := -1;
+ Result := TItr.Create(FOwnList, FCursor, Valid);
end;
function TItr.GetObject: TObject;
-{$IFDEF THREADSAFE}
-var
- CS: IInterface;
-{$ENDIF THREADSAFE}
begin
- {$IFDEF THREADSAFE}
- CS := EnterCriticalSection;
- {$ENDIF THREADSAFE}
- Result := FOwnList.FElementData[FCursor];
+ Valid := True;
+ Result := FOwnList.GetObject(FCursor);
end;
function TItr.HasNext: Boolean;
begin
- Result := FCursor <> FSize;
+ if Valid then
+ Result := FCursor < (FOwnList.Size - 1)
+ else
+ Result := FCursor < FOwnList.Size;
end;
function TItr.HasPrevious: Boolean;
begin
- Result := FCursor > 0;
+ if Valid then
+ Result := FCursor > 0
+ else
+ Result := FCursor >= 0;
end;
+function TItr.IntfClone: IInterface;
+begin
+ Result := TItr.Create(FOwnList, FCursor, Valid);
+end;
+
+procedure TItr.Insert(AObject: TObject);
+begin
+ Valid := True;
+ FOwnList.Insert(FCursor, AObject);
+end;
+
function TItr.Next: TObject;
-{$IFDEF THREADSAFE}
-var
- CS: IInterface;
-{$ENDIF THREADSAFE}
begin
- {$IFDEF THREADSAFE}
- CS := EnterCriticalSection;
- {$ENDIF THREADSAFE}
- Result := FOwnList.FElementData[FCursor];
- //FLastRet := FCursor;
- Inc(FCursor);
+ if Valid then
+ Inc(FCursor)
+ else
+ Valid := True;
+ Result := FOwnList.GetObject(FCursor);
end;
function TItr.NextIndex: Integer;
begin
- Result := FCursor;
+ if Valid then
+ Result := FCursor + 1
+ else
+ Result := FCursor;
end;
function TItr.Previous: TObject;
-{$IFDEF THREADSAFE}
-var
- CS: IInterface;
-{$ENDIF THREADSAFE}
begin
- {$IFDEF THREADSAFE}
- CS := EnterCriticalSection;
- {$ENDIF THREADSAFE}
- Dec(FCursor);
- //FLastRet := FCursor;
- Result := FOwnList.FElementData[FCursor];
+ if Valid then
+ Dec(FCursor)
+ else
+ Valid := True;
+ Result := FOwnList.GetObject(FCursor);
end;
function TItr.PreviousIndex: Integer;
begin
- Result := FCursor - 1;
+ if Valid then
+ Result := FCursor - 1
+ else
+ Result := FCursor;
end;
procedure TItr.Remove;
-{$IFDEF THREADSAFE}
-var
- CS: IInterface;
-{$ENDIF THREADSAFE}
begin
- {$IFDEF THREADSAFE}
- CS := EnterCriticalSection;
- {$ENDIF THREADSAFE}
- with FOwnList do
- begin
- FreeObject(FElementData[FCursor]);
- if FSize <> FCursor then
- MoveArray(FElementData, FCursor + 1, FCursor, FSize - FCursor);
- end;
- Dec(FOwnList.FSize);
- Dec(FSize);
+ Valid := False;
+ FOwnList.Remove(FCursor);
end;
procedure TItr.SetObject(AObject: TObject);
-{$IFDEF THREADSAFE}
-var
- CS: IInterface;
-{$ENDIF THREADSAFE}
begin
- {$IFDEF THREADSAFE}
- CS := EnterCriticalSection;
- {$ENDIF THREADSAFE}
- FOwnList.FElementData[FCursor] := AObject;
+ Valid := True;
+ FOwnList.SetObject(FCursor, AObject);
end;
+{$IFDEF SUPPORTS_GENERICS}
+
+//=== { TItr<T> } ===============================================================
+
+type
+ TItr<T> = class(TJclAbstractIterator, IJclIterator<T>, {$IFDEF THREADSAFE} IJclLockable, {$ENDIF THREADSAFE}
+ IJclIntfCloneable, IJclCloneable)
+ private
+ FCursor: Integer;
+ FOwnList: IJclList<T>;
+ protected
+ { IJclCloneable }
+ function Clone: TObject;
+ { IJclIntfCloneable }
+ function IntfClone: IInterface;
+ function IJclIntfCloneable.Clone = IntfClone;
+ { IJclIterator<T> }
+ procedure Add(const AItem: T);
+ function GetItem: T;
+ function HasNext: Boolean;
+ function HasPrevious: Boolean;
+ procedure Insert(const AItem: T);
+ function Next: T;
+ function NextIndex: Integer;
+ function Previous: T;
+ function PreviousIndex: Integer;
+ procedure Remove;
+ procedure SetItem(const AItem: T);
+ public
+ constructor Create(const AOwnList: IJclList<T>; ACursor: Integer; AValid: Boolean);
+ end;
+
+constructor TItr<T>.Create(const AOwnList: IJclList<T>; ACursor: Integer; AValid: Boolean);
+begin
+ inherited Create(AOwnList);
+ FOwnList := AOwnList;
+ FCursor := ACursor;
+ Valid := AValid;
+end;
+
+procedure TItr<T>.Add(const AItem: T);
+begin
+ FOwnList.Add(AItem);
+end;
+
+function TItr<T>.Clone: TObject;
+begin
+ Result := TItr<T>.Create(FOwnList, FCursor, Valid);
+end;
+
+function TItr<T>.GetItem: T;
+begin
+ Valid := True;
+ Result := FOwnList.GetItem(FCursor);
+end;
+
+function TItr<T>.HasNext: Boolean;
+begin
+ if Valid then
+ Result := FCursor < (FOwnList.Size - 1)
+ else
+ Result := FCursor < FOwnList.Size;
+end;
+
+function TItr<T>.HasPrevious: Boolean;
+begin
+ if Valid then
+ Result := FCursor > 0
+ else
+ Result := FCursor >= 0;
+end;
+
+function TItr<T>.IntfClone: IInterface;
+begin
+ Result := TItr<T>.Create(FOwnList, FCursor, Valid);
+end;
+
+procedure TItr<T>.Insert(const AItem: T);
+begin
+ Valid := True;
+ FOwnList.Insert(FCursor, AItem);
+end;
+
+function TItr<T>.Next: T;
+begin
+ if Valid then
+ Inc(FCursor)
+ else
+ Valid := True;
+ Result := FOwnList.GetItem(FCursor);
+end;
+
+function TItr<T>.NextIndex: Integer;
+begin
+ if Valid then
+ Result := FCursor + 1
+ else
+ Result := FCursor;
+end;
+
+function TItr<T>.Previous: T;
+begin
+ if Valid then
+ Dec(FCursor)
+ else
+ Valid := True;
+ Result := FOwnList.GetItem(FCursor);
+end;
+
+function TItr<T>.PreviousIndex: Integer;
+begin
+ if Valid then
+ Result := FCursor - 1
+ else
+ Result := FCursor;
+end;
+
+procedure TItr<T>.Remove;
+begin
+ Valid := False;
+ FOwnList.Remove(FCursor);
+end;
+
+procedure TItr<T>.SetItem(const AItem: T);
+begin
+ Valid := True;
+ FOwnList.SetItem(FCursor, AItem);
+end;
+
+{$ENDIF SUPPORTS_GENERICS}
+
//=== { TJclIntfArrayList } ==================================================
-constructor TJclIntfArrayList.Create(ACapacity: Integer = DefaultContainerCapacity);
+constructor TJclIntfArrayList.Create(ACapacity: Integer);
begin
- inherited Create;
+ inherited Create(nil);
FSize := 0;
if ACapacity < 0 then
FCapacity := 0
@@ -693,11 +859,7 @@
// (rom) disabled because the following Create already calls inherited
// inherited Create;
if ACollection = nil then
- {$IFDEF CLR}
- raise EJclIllegalArgumentError.Create(RsENoCollection);
- {$ELSE}
- raise EJclIllegalArgumentError.CreateRes(@RsENoCollection);
- {$ENDIF CLR}
+ raise EJclNoCollectionError.Create;
Create(ACollection.Size);
AddAll(ACollection);
end;
@@ -708,261 +870,316 @@
inherited Destroy;
end;
-procedure TJclIntfArrayList.Insert(Index: Integer; const AInterface: IInterface);
-{$IFDEF THREADSAFE}
-var
- CS: IInterface;
-{$ENDIF THREADSAFE}
+function TJclIntfArrayList.Add(const AInterface: IInterface): Boolean;
begin
{$IFDEF THREADSAFE}
- CS := EnterCriticalSection;
+ WriteLock;
+ try
{$ENDIF THREADSAFE}
- if (Index < 0) or (Index > FSize) then
- {$IFDEF CLR}
- raise EJclOutOfBoundsError.Create(RsEOutOfBounds);
- {$ELSE}
- raise EJclOutOfBoundsError.CreateRes(@RsEOutOfBounds);
- {$ENDIF CLR}
- if FSize = Capacity then
- Grow;
- if FSize <> Index then
- MoveArray(FElementData, Index, Index + 1, FSize - Index);
- FElementData[Index] := AInterface;
- Inc(FSize);
-end;
-
-function TJclIntfArrayList.InsertAll(Index: Integer; const ACollection: IJclIntfCollection): Boolean;
-var
- It: IJclIntfIterator;
- Size: Integer;
+ if FSize = Capacity then
+ Grow;
+ FElementData[FSize] := AInterface;
+ Inc(FSize);
+ Result := True;
{$IFDEF THREADSAFE}
- CS: IInterface;
- {$ENDIF THREADSAFE}
-begin
- {$IFDEF THREADSAFE}
- CS := EnterCriticalSection;
- {$ENDIF THREADSAFE}
- Result := False;
- if (Index < 0) or (Index >= FSize) then
- {$IFDEF CLR}
- raise EJclOutOfBoundsError.Create(RsEOutOfBounds);
- {$ELSE}
- raise EJclOutOfBoundsError.CreateRes(@RsEOutOfBounds);
- {$ENDIF CLR}
- if ACollection = nil then
- Exit;
- Size := ACollection.Size;
- if FSize + Size >= Capacity then
- Capacity := FSize + Size;
- if Size <> 0 then
- MoveArray(FElementData, Index, Index + Size, Size);
- It := ACollection.First;
- Result := It.HasNext;
- while It.HasNext do
- begin
- FElementData[Index] := It.Next;
- Inc(Index);
+ finally
+ WriteUnlock;
end;
-end;
-
-function TJclIntfArrayList.Add(const AInterface: IInterface): Boolean;
-{$IFDEF THREADSAFE}
-var
- CS: IInterface;
-{$ENDIF THREADSAFE}
-begin
- {$IFDEF THREADSAFE}
- CS := EnterCriticalSection;
{$ENDIF THREADSAFE}
- if FSize = Capacity then
- Grow;
- {$IFNDEF CLR}
- FillChar(FElementData[FSize], SizeOf(IInterface), 0);
- {$ENDIF ~CLR}
- FElementData[FSize] := AInterface;
- Inc(FSize);
- Result := True;
end;
function TJclIntfArrayList.AddAll(const ACollection: IJclIntfCollection): Boolean;
var
It: IJclIntfIterator;
+begin
{$IFDEF THREADSAFE}
- CS: IInterface;
+ WriteLock;
+ try
{$ENDIF THREADSAFE}
-begin
+ Result := False;
+ if ACollection = nil then
+ Exit;
+ It := ACollection.First;
+ while It.HasNext do
+ begin
+ // (rom) inlining Add() gives about 5 percent performance increase
+ if FSize = Capacity then
+ Grow;
+ FElementData[FSize] := It.Next;
+ Inc(FSize);
+ end;
+ Result := True;
{$IFDEF THREADSAFE}
- CS := EnterCriticalSection;
+ finally
+ WriteUnlock;
+ end;
{$ENDIF THREADSAFE}
- Result := False;
- if ACollection = nil then
- Exit;
- It := ACollection.First;
- while It.HasNext do
- begin
- // (rom) inlining Add() gives about 5 percent performance increase
- if FSize = Capacity then
- Grow;
- {$IFNDEF CLR}
- FillChar(FElementData[FSize], SizeOf(IInterface), 0);
- {$ENDIF ~CLR}
- FElementData[FSize] := It.Next;
- Inc(FSize);
- end;
- Result := True;
end;
procedure TJclIntfArrayList.Clear;
var
I: Integer;
+begin
{$IFDEF THREADSAFE}
- CS: IInterface;
+ WriteLock;
+ try
{$ENDIF THREADSAFE}
-begin
+ for I := 0 to FSize - 1 do
+ FElementData[I] := nil;
+ FSize := 0;
{$IFDEF THREADSAFE}
- CS := EnterCriticalSection;
+ finally
+ WriteUnlock;
+ end;
{$ENDIF THREADSAFE}
- for I := 0 to FSize - 1 do
- FElementData[I] := nil;
- FSize := 0;
end;
-function TJclIntfArrayList.Clone: IInterface;
-var
- NewList: IJclIntfList;
+function TJclIntfArrayList.Clone: TObject;
begin
- NewList := TJclIntfArrayList.Create(Capacity);
- NewList.AddAll(Self);
- Result := NewList;
+ {$IFDEF THREADSAFE}
+ ReadLock;
+ try
+ {$ENDIF THREADSAFE}
+ Result := TJclIntfArrayList.Create(Self);
+ {$IFDEF THREADSAFE}
+ finally
+ ReadUnlock;
+ end;
+ {$ENDIF THREADSAFE}
end;
function TJclIntfArrayList.Contains(const AInterface: IInterface): Boolean;
var
I: Integer;
+begin
{$IFDEF THREADSAFE}
- CS: IInterface;
+ ReadLock;
+ try
{$ENDIF THREADSAFE}
-begin
+ Result := False;
+ for I := 0 to FSize - 1 do
+ if FElementData[I] = AInterface then
+ begin
+ Result := True;
+ Break;
+ end;
{$IFDEF THREADSAFE}
- CS := EnterCriticalSection;
+ finally
+ ReadUnlock;
+ end;
{$ENDIF THREADSAFE}
- Result := False;
- if AInterface = nil then
- Exit;
- for I := 0 to FSize - 1 do
- if FElementData[I] = AInterface then
- begin
- Result := True;
- Break;
- end;
end;
function TJclIntfArrayList.ContainsAll(const ACollection: IJclIntfCollection): Boolean;
var
It: IJclIntfIterator;
+begin
{$IFDEF THREADSAFE}
- CS: IInterface;
+ ReadLock;
+ try
{$ENDIF THREADSAFE}
-begin
+ Result := True;
+ if ACollection = nil then
+ Exit;
+ It := ACollection.First;
+ while Result and It.HasNext do
+ Result := Contains(It.Next);
{$IFDEF THREADSAFE}
- CS := EnterCriticalSection;
+ finally
+ ReadUnlock;
+ end;
{$ENDIF THREADSAFE}
- Result := True;
- if ACollection = nil then
- Exit;
- It := ACollection.First;
- while Result and It.HasNext do
- Result := contains(It.Next);
end;
function TJclIntfArrayList.Equals(const ACollection: IJclIntfCollection): Boolean;
var
I: Integer;
It: IJclIntfIterator;
+begin
{$IFDEF THREADSAFE}
- CS: IInterface;
+ ReadLock;
+ try
{$ENDIF THREADSAFE}
-begin
+ Result := False;
+ if ACollection = nil then
+ Exit;
+ if FSize <> ACollection.Size then
+ Exit;
+ It := ACollection.First;
+ for I := 0 to FSize - 1 do
+ if FElementData[I] <> It.Next then
+ Exit;
+ Result := True;
{$IFDEF THREADSAFE}
- CS := EnterCriticalSection;
+ finally
+ ReadUnlock;
+ end;
{$ENDIF THREADSAFE}
- Result := False;
- if ACollection = nil then
- Exit;
- if FSize <> ACollection.Size then
- Exit;
- It := ACollection.First;
- for I := 0 to FSize - 1 do
- if FElementData[I] <> It.Next then
- Exit;
- Result := True;
end;
+function TJclIntfArrayList.First: IJclIntfIterator;
+begin
+ Result := TIntfItr.Create(Self, 0, False);
+end;
+
+function TJclIntfArrayList.GetCapacity: Integer;
+begin
+ Result := FCapacity;
+end;
+
function TJclIntfArrayList.GetObject(Index: Integer): IInterface;
-{$IFDEF THREADSAFE}
-var
- CS: IInterface;
-{$ENDIF THREADSAFE}
begin
{$IFDEF THREADSAFE}
- CS := EnterCriticalSection;
+ ReadLock;
+ try
{$ENDIF THREADSAFE}
- if (Index < 0) or (Index >= FSize) then
- Result := nil
- else
- Result := FElementData[Index];
+ if (Index < 0) or (Index >= FSize) then
+ Result := nil
+ else
+ Result := FElementData[Index];
+ {$IFDEF THREADSAFE}
+ finally
+ ReadUnlock;
+ end;
+ {$ENDIF THREADSAFE}
end;
-procedure TJclIntfArrayList.SetCapacity(ACapacity: Integer);
+procedure TJclIntfArrayList.Grow(Increment: Integer);
begin
- if ACapacity >= FSize then
- begin
- SetLength(FElementData, ACapacity);
- FCapacity := ACapacity;
- end
- else
- {$IFDEF CLR}
- raise EJclOutOfBoundsError.Create(RsEOutOfBounds);
- {$ELSE}
- raise EJclOutOfBoundsError.CreateRes(@RsEOutOfBounds);
- {$ENDIF CLR}
+ {$IFDEF THREADSAFE}
+ WriteLock;
+ try
+ {$ENDIF THREADSAFE}
+ Capacity := Capacity + Increment;
+ {$IFDEF THREADSAFE}
+ finally
+ WriteUnlock;
+ end;
+ {$ENDIF THREADSAFE}
end;
+procedure TJclIntfArrayList.Grow(Num, Denom: Integer);
+begin
+ {$IFDEF THREADSAFE}
+ WriteLock;
+ try
+ {$ENDIF THREADSAFE}
+ Capacity := Capacity * Num div Denom;
+ {$IFDEF THREADSAFE}
+ finally
+ WriteUnlock;
+ end;
+ {$ENDIF THREADSAFE}
+end;
+
procedure TJclIntfArrayList.Grow;
begin
- if Capacity > 64 then
- Capacity := Capacity + Capacity div 4
- else
- if FCapacity = 0 then
- FCapacity := 64
- else
- Capacity := Capacity * 4;
+ {$IFDEF THREADSAFE}
+ WriteLock;
+ try
+ {$ENDIF THREADSAFE}
+ if Capacity > 64 then
+ Capacity := Capacity + Capacity div 4
+ else
+ if Capacity = 0 then
+ Capacity := 64
+ else
+ Grow(16);
+ {$IFDEF THREADSAFE}
+ finally
+ WriteUnlock;
+ end;
+ {$ENDIF THREADSAFE}
end;
function TJclIntfArrayList.IndexOf(const AInterface: IInterface): Integer;
var
I: Integer;
+begin
{$IFDEF THREADSAFE}
- CS: IInterface;
+ ReadLock;
+ try
{$ENDIF THREADSAFE}
+ Result := -1;
+ for I := 0 to FSize - 1 do
+ if FElementData[I] = AInterface then
+ begin
+ Result := I;
+ Break;
+ end;
+ {$IFDEF THREADSAFE}
+ finally
+ ReadUnlock;
+ end;
+ {$ENDIF THREADSAFE}
+end;
+
+procedure TJclIntfArrayList.Insert(Index: Integer; const AInterface: IInterface);
begin
{$IFDEF THREADSAFE}
- CS := EnterCriticalSection;
+ WriteLock;
+ try
{$ENDIF THREADSAFE}
- Result := -1;
- if AInterface = nil then
- Exit;
- for I := 0 to FSize - 1 do
- if FElementData[I] = AInterface then
+ if (Index < 0) or (Index > FSize) then
+ raise EJclOutOfBoundsError.Create;
+ if FSize = Capacity then
+ Grow;
+ if FSize <> Index then
+ MoveArray(FElementData, Index, Index + 1, FSize - Index);
+ FElementData[Index] := AInterface;
+ Inc(FSize);
+ {$IFDEF THREADSAFE}
+ finally
+ WriteUnlock;
+ end;
+ {$ENDIF THREADSAFE}
+end;
+
+function TJclIntfArrayList.InsertAll(Index: Integer; const ACollection: IJclIntfCollection): Boolean;
+var
+ It: IJclIntfIterator;
+ InsertionSize: Integer;
+begin
+ {$IFDEF THREADSAFE}
+ WriteLock;
+ try
+ {$ENDIF THREADSAFE}
+ Result := False;
+ if (Index < 0) or (Index > FSize) then
+ raise EJc...
[truncated message content] |
|
From: <ou...@us...> - 2007-09-22 11:48:15
|
Revision: 2183
http://jcl.svn.sourceforge.net/jcl/?rev=2183&view=rev
Author: outchy
Date: 2007-09-22 04:48:03 -0700 (Sat, 22 Sep 2007)
Log Message:
-----------
JclStreams now compatible with .net
Modified Paths:
--------------
trunk/jcl/lib/d10.net/common.exc
trunk/jcl/lib/d11.net/common.exc
trunk/jcl/lib/d9.net/common.exc
trunk/jcl/packages/d10.net/Jedi.Jcl.bdsproj
trunk/jcl/packages/d10.net/Jedi.Jcl.dpr
trunk/jcl/packages/d11.net/Jedi.Jcl.dpr
trunk/jcl/packages/d11.net/Jedi.Jcl.dproj
trunk/jcl/packages/d9.net/Jedi.Jcl.bdsproj
trunk/jcl/packages/d9.net/Jedi.Jcl.dpr
trunk/jcl/packages/xml/Jcl-L.xml
trunk/jcl/source/common/JclStreams.pas
Modified: trunk/jcl/lib/d10.net/common.exc
===================================================================
--- trunk/jcl/lib/d10.net/common.exc 2007-09-21 22:01:12 UTC (rev 2182)
+++ trunk/jcl/lib/d10.net/common.exc 2007-09-22 11:48:03 UTC (rev 2183)
@@ -15,7 +15,6 @@
JclMIDI.pas
JclPCRE.pas
JclSchedule.pas
-JclStreams.pas
JclStrHashMap.pas
JclStringLists.pas
JclUnitVersioning.pas
Modified: trunk/jcl/lib/d11.net/common.exc
===================================================================
--- trunk/jcl/lib/d11.net/common.exc 2007-09-21 22:01:12 UTC (rev 2182)
+++ trunk/jcl/lib/d11.net/common.exc 2007-09-22 11:48:03 UTC (rev 2183)
@@ -15,7 +15,6 @@
JclMIDI.pas
JclPCRE.pas
JclSchedule.pas
-JclStreams.pas
JclStrHashMap.pas
JclStringLists.pas
JclUnitVersioning.pas
Modified: trunk/jcl/lib/d9.net/common.exc
===================================================================
--- trunk/jcl/lib/d9.net/common.exc 2007-09-21 22:01:12 UTC (rev 2182)
+++ trunk/jcl/lib/d9.net/common.exc 2007-09-22 11:48:03 UTC (rev 2183)
@@ -15,7 +15,6 @@
JclMIDI.pas
JclPCRE.pas
JclSchedule.pas
-JclStreams.pas
JclStrHashMap.pas
JclStringLists.pas
JclUnitVersioning.pas
Modified: trunk/jcl/packages/d10.net/Jedi.Jcl.bdsproj
===================================================================
--- trunk/jcl/packages/d10.net/Jedi.Jcl.bdsproj 2007-09-21 22:01:12 UTC (rev 2182)
+++ trunk/jcl/packages/d10.net/Jedi.Jcl.bdsproj 2007-09-22 11:48:03 UTC (rev 2183)
@@ -202,6 +202,7 @@
<File FileName="..\..\source\common\JclRTTI.pas" ContainerId="" ModuleName="JclRTTI"/>
<File FileName="..\..\source\common\JclStacks.pas" ContainerId="" ModuleName="JclStacks"/>
<File FileName="..\..\source\common\JclStatistics.pas" ContainerId="" ModuleName="JclStatistics"/>
+ <File FileName="..\..\source\common\JclStreams.pas" ContainerId="" ModuleName="JclStreams"/>
<File FileName="..\..\source\common\JclStrings.pas" ContainerId="" ModuleName="JclStrings"/>
<File FileName="..\..\source\common\JclSysInfo.pas" ContainerId="" ModuleName="JclSysInfo"/>
<File FileName="..\..\source\common\JclSysUtils.pas" ContainerId="" ModuleName="JclSysUtils"/>
Modified: trunk/jcl/packages/d10.net/Jedi.Jcl.dpr
===================================================================
--- trunk/jcl/packages/d10.net/Jedi.Jcl.dpr 2007-09-21 22:01:12 UTC (rev 2182)
+++ trunk/jcl/packages/d10.net/Jedi.Jcl.dpr 2007-09-22 11:48:03 UTC (rev 2183)
@@ -27,6 +27,7 @@
JclRTTI in '..\..\source\common\JclRTTI.pas' ,
JclStacks in '..\..\source\common\JclStacks.pas' ,
JclStatistics in '..\..\source\common\JclStatistics.pas' ,
+ JclStreams in '..\..\source\common\JclStreams.pas' ,
JclStrings in '..\..\source\common\JclStrings.pas' ,
JclSysInfo in '..\..\source\common\JclSysInfo.pas' ,
JclSysUtils in '..\..\source\common\JclSysUtils.pas' ,
Modified: trunk/jcl/packages/d11.net/Jedi.Jcl.dpr
===================================================================
--- trunk/jcl/packages/d11.net/Jedi.Jcl.dpr 2007-09-21 22:01:12 UTC (rev 2182)
+++ trunk/jcl/packages/d11.net/Jedi.Jcl.dpr 2007-09-22 11:48:03 UTC (rev 2183)
@@ -27,6 +27,7 @@
JclRTTI in '..\..\source\common\JclRTTI.pas' ,
JclStacks in '..\..\source\common\JclStacks.pas' ,
JclStatistics in '..\..\source\common\JclStatistics.pas' ,
+ JclStreams in '..\..\source\common\JclStreams.pas' ,
JclStrings in '..\..\source\common\JclStrings.pas' ,
JclSysInfo in '..\..\source\common\JclSysInfo.pas' ,
JclSysUtils in '..\..\source\common\JclSysUtils.pas' ,
Modified: trunk/jcl/packages/d11.net/Jedi.Jcl.dproj
===================================================================
--- trunk/jcl/packages/d11.net/Jedi.Jcl.dproj 2007-09-21 22:01:12 UTC (rev 2182)
+++ trunk/jcl/packages/d11.net/Jedi.Jcl.dproj 2007-09-22 11:48:03 UTC (rev 2183)
@@ -110,6 +110,7 @@
<DCCReference Include="..\..\source\common\JclRTTI.pas"/>
<DCCReference Include="..\..\source\common\JclStacks.pas"/>
<DCCReference Include="..\..\source\common\JclStatistics.pas"/>
+ <DCCReference Include="..\..\source\common\JclStreams.pas"/>
<DCCReference Include="..\..\source\common\JclStrings.pas"/>
<DCCReference Include="..\..\source\common\JclSysInfo.pas"/>
<DCCReference Include="..\..\source\common\JclSysUtils.pas"/>
Modified: trunk/jcl/packages/d9.net/Jedi.Jcl.bdsproj
===================================================================
--- trunk/jcl/packages/d9.net/Jedi.Jcl.bdsproj 2007-09-21 22:01:12 UTC (rev 2182)
+++ trunk/jcl/packages/d9.net/Jedi.Jcl.bdsproj 2007-09-22 11:48:03 UTC (rev 2183)
@@ -202,6 +202,7 @@
<File FileName="..\..\source\common\JclRTTI.pas" ContainerId="" ModuleName="JclRTTI"/>
<File FileName="..\..\source\common\JclStacks.pas" ContainerId="" ModuleName="JclStacks"/>
<File FileName="..\..\source\common\JclStatistics.pas" ContainerId="" ModuleName="JclStatistics"/>
+ <File FileName="..\..\source\common\JclStreams.pas" ContainerId="" ModuleName="JclStreams"/>
<File FileName="..\..\source\common\JclStrings.pas" ContainerId="" ModuleName="JclStrings"/>
<File FileName="..\..\source\common\JclSysInfo.pas" ContainerId="" ModuleName="JclSysInfo"/>
<File FileName="..\..\source\common\JclSysUtils.pas" ContainerId="" ModuleName="JclSysUtils"/>
Modified: trunk/jcl/packages/d9.net/Jedi.Jcl.dpr
===================================================================
--- trunk/jcl/packages/d9.net/Jedi.Jcl.dpr 2007-09-21 22:01:12 UTC (rev 2182)
+++ trunk/jcl/packages/d9.net/Jedi.Jcl.dpr 2007-09-22 11:48:03 UTC (rev 2183)
@@ -27,6 +27,7 @@
JclRTTI in '..\..\source\common\JclRTTI.pas' ,
JclStacks in '..\..\source\common\JclStacks.pas' ,
JclStatistics in '..\..\source\common\JclStatistics.pas' ,
+ JclStreams in '..\..\source\common\JclStreams.pas' ,
JclStrings in '..\..\source\common\JclStrings.pas' ,
JclSysInfo in '..\..\source\common\JclSysInfo.pas' ,
JclSysUtils in '..\..\source\common\JclSysUtils.pas' ,
Modified: trunk/jcl/packages/xml/Jcl-L.xml
===================================================================
--- trunk/jcl/packages/xml/Jcl-L.xml 2007-09-21 22:01:12 UTC (rev 2182)
+++ trunk/jcl/packages/xml/Jcl-L.xml 2007-09-22 11:48:03 UTC (rev 2183)
@@ -39,6 +39,7 @@
<File Name="..\..\source\common\JclRTTI.pas" Targets="JclDotNet" Formname="" Condition=""/>
<File Name="..\..\source\common\JclStacks.pas" Targets="JclDotNet" Formname="" Condition=""/>
<File Name="..\..\source\common\JclStatistics.pas" Targets="JclDotNet" Formname="" Condition=""/>
+ <File Name="..\..\source\common\JclStreams.pas" Targets="JclDotNet" Formname="" Condition=""/>
<File Name="..\..\source\common\JclStrings.pas" Targets="JclDotNet" Formname="" Condition=""/>
<File Name="..\..\source\common\JclSysInfo.pas" Targets="JclDotNet" Formname="" Condition=""/>
<File Name="..\..\source\common\JclSysUtils.pas" Targets="JclDotNet" Formname="" Condition=""/>
Modified: trunk/jcl/source/common/JclStreams.pas
===================================================================
--- trunk/jcl/source/common/JclStreams.pas 2007-09-21 22:01:12 UTC (rev 2182)
+++ trunk/jcl/source/common/JclStreams.pas 2007-09-22 11:48:03 UTC (rev 2183)
@@ -63,17 +63,22 @@
// 64 bit version of overloaded functions are introduced
TJclStream = class(TStream)
protected
+ {$IFNDEF CLR}
procedure SetSize(NewSize: Longint); overload; override;
- procedure SetSize(const NewSize: Int64);
+ {$ENDIF ~CLR}
+ procedure SetSize({$IFNDEF CLR}const{$ENDIF ~CLR} NewSize: Int64);
{$IFDEF COMPILER5} reintroduce; overload; virtual; {$ELSE} overload; override; {$ENDIF}
public
+ {$IFNDEF CLR}
function Seek(Offset: Longint; Origin: Word): Longint; overload; override;
+ {$ENDIF ~CLR}
function Seek(const Offset: Int64; Origin: TSeekOrigin): Int64;
{$IFDEF COMPILER5} reintroduce; overload; virtual; {$ELSE} overload; override; {$ENDIF}
end;
//=== VCL stream replacements ===
+ {$IFNDEF CLR}
TJclHandleStream = class(TJclStream)
private
FHandle: THandle;
@@ -92,6 +97,7 @@
constructor Create(const FileName: string; Mode: Word; Rights: Cardinal = 0);
destructor Destroy; override;
end;
+ {$ENDIF ~CLR}
{
TJclCustomMemoryStream = class(TJclStream)
@@ -111,10 +117,15 @@
TJclEmptyStream = class(TJclStream)
protected
- procedure SetSize(const NewSize: Int64); override;
+ procedure SetSize({$IFNDEF CLR}const{$ENDIF ~CLR} NewSize: Int64); override;
public
+ {$IFDEF CLR}
+ function Read(var Buffer: array of Byte; Offset, Count: Longint): Longint; override;
+ function Write(const Buffer: array of Byte; Offset, Count: Longint): Longint; override;
+ {$ELSE ~CLR}
function Read(var Buffer; Count: Longint): Longint; override;
function Write(const Buffer; Count: Longint): Longint; override;
+ {$ENDIF ~CLR}
function Seek(const Offset: Int64; Origin: TSeekOrigin): Int64; override;
end;
@@ -123,21 +134,38 @@
FPosition: Int64;
FSize: Int64;
protected
- procedure SetSize(const NewSize: Int64); override;
+ procedure SetSize({$IFNDEF CLR}const{$ENDIF ~CLR} NewSize: Int64); override;
public
+ {$IFDEF CLR}
+ function Read(var Buffer: array of Byte; Offset, Count: Longint): Longint; override;
+ function Write(const Buffer: array of Byte; Offset, Count: Longint): Longint; override;
+ {$ELSE ~CLR}
function Read(var Buffer; Count: Longint): Longint; override;
function Write(const Buffer; Count: Longint): Longint; override;
+ {$ENDIF ~CLR}
function Seek(const Offset: Int64; Origin: TSeekOrigin): Int64; override;
end;
TJclRandomStream = class(TJclNullStream)
+ {$IFDEF CLR}
+ private
+ FRandomGenerator: System.Random;
+ {$ENDIF CLR}
protected
function GetRandSeed: Longint; virtual;
procedure SetRandSeed(Seed: Longint); virtual;
public
+ {$IFDEF CLR}
+ constructor Create;
+ destructor Destroy; override;
+ {$ENDIF CLR}
function RandomData: Byte; virtual;
procedure Randomize; dynamic;
+ {$IFDEF CLR}
+ function Read(var Buffer: array of Byte; Offset, Count: Longint): Longint; override;
+ {$ELSE ~CLR}
function Read(var Buffer; Count: Longint): Longint; override;
+ {$ENDIF ~CLR}
property RandSeed: Longint read GetRandSeed write SetRandSeed;
end;
@@ -152,12 +180,17 @@
procedure SetReadStream(const Value: TStream);
procedure SetReadStreamIndex(const Value: Integer);
protected
- procedure SetSize(const NewSize: Int64); override;
+ procedure SetSize({$IFNDEF CLR}const{$ENDIF ~CLR} NewSize: Int64); override;
public
constructor Create;
destructor Destroy; override;
+ {$IFDEF CLR}
+ function Read(var Buffer: array of Byte; Offset, Count: Longint): Longint; override;
+ function Write(const Buffer: array of Byte; Offset, Count: Longint): Longint; override;
+ {$ELSE ~CLR}
function Read(var Buffer; Count: Longint): Longint; override;
function Write(const Buffer; Count: Longint): Longint; override;
+ {$ENDIF ~CLR}
function Seek(const Offset: Int64; Origin: TSeekOrigin): Int64; override;
function Add(NewStream: TStream): Integer;
@@ -181,20 +214,25 @@
protected
procedure DoAfterStreamChange; virtual;
procedure DoBeforeStreamChange; virtual;
- procedure SetSize(const NewSize: Int64); override;
+ procedure SetSize({$IFNDEF CLR}const{$ENDIF ~CLR} NewSize: Int64); override;
public
constructor Create(AStream: TStream; AOwnsStream: Boolean = False);
destructor Destroy; override;
+ {$IFDEF CLR}
+ function Read(var Buffer: array of Byte; Offset, Count: Longint): Longint; override;
+ function Write(const Buffer: array of Byte; Offset, Count: Longint): Longint; override;
+ {$ELSE ~CLR}
function Read(var Buffer; Count: Longint): Longint; override;
- function Seek(const Offset: Int64; Origin: TSeekOrigin): Int64; overload; override;
- function Seek(Offset: Longint; Origin: Word): Longint; overload; override;
function Write(const Buffer; Count: Longint): Longint; override;
+ {$ENDIF ~CLR}
+ function Seek(const Offset: Int64; Origin: TSeekOrigin): Int64; override;
property AfterStreamChange: TNotifyEvent read FAfterStreamChange write FAfterStreamChange;
property BeforeStreamChange: TNotifyEvent read FBeforeStreamChange write FBeforeStreamChange;
property OwnsStream: Boolean read FOwnsStream write FOwnsStream;
property Stream: TStream read FStream write SetStream;
end;
+ {$IFNDEF CLR}
TJclBufferedStream = class(TJclStreamDecorator)
protected
FBuffer: array of Byte;
@@ -217,10 +255,11 @@
destructor Destroy; override;
procedure Flush; virtual;
function Read(var Buffer; Count: Longint): Longint; override;
+ function Write(const Buffer; Count: Longint): Longint; override;
function Seek(const Offset: Int64; Origin: TSeekOrigin): Int64; override;
- function Write(const Buffer; Count: Longint): Longint; override;
property BufferSize: Longint read FBufferSize write FBufferSize;
end;
+ {$ENDIF ~CLR}
TStreamNotifyEvent = procedure(Sender: TObject; Position: Int64; Size: Int64) of object;
@@ -231,14 +270,18 @@
protected
procedure DoBeforeStreamChange; override;
procedure DoAfterStreamChange; override;
- procedure SetSize(const NewSize: Int64); override;
+ procedure SetSize({$IFNDEF CLR}const{$ENDIF ~CLR} NewSize: Int64); override;
public
constructor Create(AStream: TStream; ANotification: TStreamNotifyEvent = nil;
AOwnsStream: Boolean = False);
+ {$IFDEF CLR}
+ function Read(var Buffer: array of Byte; Offset, Count: Longint): Longint; override;
+ function Write(const Buffer: array of Byte; Offset, Count: Longint): Longint; override;
+ {$ELSE ~CLR}
function Read(var Buffer; Count: Longint): Longint; override;
- function Seek(const Offset: Int64; Origin: TSeekOrigin): Int64; overload; override;
- function Seek(Offset: Longint; Origin: Word): Longint; overload; override;
function Write(const Buffer; Count: Longint): Longint; override;
+ {$ENDIF ~CLR}
+ function Seek(const Offset: Int64; Origin: TSeekOrigin): Int64; override;
property OnNotification: TStreamNotifyEvent read FNotification write FNotification;
end;
@@ -247,8 +290,10 @@
function IsEqual(Stream: TStream): Boolean;
function ReadBoolean: Boolean;
function ReadChar: Char;
+ {$IFNDEF CLR}
function ReadCurrency: Currency;
function ReadDateTime: TDateTime;
+ {$ENDIF ~CLR}
function ReadDouble: Double;
function ReadExtended: Extended;
function ReadInt64: Int64;
@@ -259,8 +304,10 @@
function ReadSizedString: string;
procedure WriteBoolean(Value: Boolean);
procedure WriteChar(Value: Char);
+ {$IFNDEF CLR}
procedure WriteCurrency(const Value: Currency);
procedure WriteDateTime(const Value: TDateTime);
+ {$ENDIF ~CLR}
procedure WriteDouble(const Value: Double);
procedure WriteExtended(const Value: Extended);
procedure WriteInt64(Value: Int64); overload;
@@ -278,15 +325,20 @@
FCurrentPos: Int64;
FMaxSize: Int64;
protected
- procedure SetSize(const NewSize: Int64); override;
+ procedure SetSize({$IFNDEF CLR}const{$ENDIF ~CLR} NewSize: Int64); override;
public
// scopedstream starting at the current position of the ParentStream
// if MaxSize is positive or null, read and write operations cannot overrun this size or the ParentStream limitation
// if MaxSize is negative, read and write operations are unlimited (up to the ParentStream limitation)
constructor Create(AParentStream: TStream; AMaxSize: Int64 = -1);
+ {$IFDEF CLR}
+ function Read(var Buffer: array of Byte; Offset, Count: Longint): Longint; override;
+ function Write(const Buffer: array of Byte; Offset, Count: Longint): Longint; override;
+ {$ELSE ~CLR}
function Read(var Buffer; Count: Longint): Longint; override;
+ function Write(const Buffer; Count: Longint): Longint; override;
+ {$ENDIF ~CLR}
function Seek(const Offset: Int64; Origin: TSeekOrigin): Int64; override;
- function Write(const Buffer; Count: Longint): Longint; override;
property ParentStream: TStream read FParentStream;
property StartPos: Int64 read FStartPos;
@@ -295,9 +347,9 @@
TJclStreamSeekEvent = function(Sender: TObject; const Offset: Int64;
Origin: TSeekOrigin): Int64 of object;
- TJclStreamReadEvent = function(Sender: TObject; var Buffer; Count: Longint): Longint of object;
- TJclStreamWriteEvent = function(Sender: TObject; const Buffer; Count: Longint): Longint of object;
- TJclStreamSizeEvent = procedure(Sender: TObject; const NewSize: Int64) of object;
+ TJclStreamReadEvent = function(Sender: TObject; var Buffer; {$IFDEF CLR}Offset,{$ENDIF CLR} Count: Longint): Longint of object;
+ TJclStreamWriteEvent = function(Sender: TObject; const Buffer; {$IFDEF CLR}Offset,{$ENDIF CLR}Count: Longint): Longint of object;
+ TJclStreamSizeEvent = procedure(Sender: TObject; {$IFNDEF CLR}const{$ENDIF ~CLR} NewSize: Int64) of object;
TJclDelegatedStream = class(TJclStream)
private
@@ -306,11 +358,16 @@
FOnWrite: TJclStreamWriteEvent;
FOnSize: TJclStreamSizeEvent;
protected
- procedure SetSize(const NewSize: Int64); override;
+ procedure SetSize({$IFNDEF CLR}const{$ENDIF CLR} NewSize: Int64); override;
public
function Seek(const Offset: Int64; Origin: TSeekOrigin): Int64; override;
+ {$IFDEF CLR}
+ function Read(var Buffer: array of Byte; Offset, Count: Longint): Longint; override;
+ function Write(const Buffer: array of Byte; Offset, Count: Longint): Longint; override;
+ {$ELSE ~CLR}
function Read(var Buffer; Count: Longint): Longint; override;
function Write(const Buffer; Count: Longint): Longint; override;
+ {$ENDIF ~CLR}
property OnSeek: TJclStreamSeekEvent read FOnSeek write FOnSeek;
property OnRead: TJclStreamReadEvent read FOnRead write FOnRead;
property OnWrite: TJclStreamWriteEvent read FOnWrite write FOnWrite;
@@ -323,6 +380,7 @@
// but sector is encrypted
// reusing some code from TJclBufferedStream
+ {$IFNDEF CLR}
TJclSectoredStream = class(TJclBufferedStream)
protected
FSectorOverHead: Integer;
@@ -333,7 +391,7 @@
procedure DoAfterStreamChange; override;
procedure AfterBlockRead; virtual; // override to check protection
procedure BeforeBlockWrite; virtual; // override to compute protection
- procedure SetSize(const NewSize: Int64); override;
+ procedure SetSize({$IFNDEF CLR}const{$ENDIF ~CLR} NewSize: Int64); override;
public
constructor Create(AStorageStream: TStream; AOwnsStream: Boolean = False;
ASectorOverHead: Integer = 0);
@@ -356,6 +414,7 @@
public
constructor Create(AStorageStream: TStream; AOwnsStream: Boolean = False);
end;
+ {$ENDIF ~CLR}
// call TStream.Seek(Int64,TSeekOrigin) if present (TJclStream or COMPILER6_UP)
// otherwize call TStream.Seek(LongInt,Word) with range checking
@@ -384,6 +443,9 @@
implementation
uses
+ {$IFDEF CLR}
+ System.Text,
+ {$ENDIF CLR}
JclResources, JclMath;
{$IFDEF KYLIX}
@@ -414,42 +476,69 @@
function StreamCopy(Source: TStream; Dest: TStream; BufferSize: Integer): Int64;
var
- Buffer: Pointer;
+ Buffer: array of Byte;
ByteCount: Integer;
begin
Result := 0;
- GetMem(Buffer, BufferSize);
+ SetLength(Buffer, BufferSize);
try
repeat
- ByteCount := Source.Read(Buffer^, BufferSize);
+ {$IFDEF CLR}
+ ByteCount := Source.Read(Buffer, 0, BufferSize);
+ {$ELSE ~CLR}
+ ByteCount := Source.Read(Buffer[0], BufferSize);
+ {$ENDIF ~CLR}
Result := Result + ByteCount;
- Dest.WriteBuffer(Buffer^, ByteCount);
+ {$IFDEF CLR}
+ Dest.WriteBuffer(Buffer, ByteCount);
+ {$ELSE ~CLR}
+ Dest.WriteBuffer(Buffer[0], ByteCount);
+ {$ENDIF ~CLR}
until ByteCount < BufferSize;
finally
- FreeMem(Buffer);
+ SetLength(Buffer, 0);
end;
end;
function CompareStreams(A, B : TStream; BufferSize: Integer = 4096): Boolean;
var
- BufferA, BufferB: Pointer;
+ BufferA, BufferB: array of Byte;
ByteCountA, ByteCountB: Integer;
+ {$IFDEF CLR}
+ Index: Integer;
+ {$ENDIF CLR}
begin
- GetMem(BufferA, BufferSize);
+ SetLength(BufferA, BufferSize);
try
- GetMem(BufferB, BufferSize);
+ SetLength(BufferB, BufferSize);
try
repeat
- ByteCountA := A.Read(BufferA^, BufferSize);
- ByteCountB := B.Read(BufferB^, BufferSize);
+ {$IFDEF CLR}
+ ByteCountA := A.Read(BufferA, 0, BufferSize);
+ ByteCountB := A.Read(BufferB, 0, BufferSize);
+ {$ELSE ~CLR}
+ ByteCountA := A.Read(BufferA[0], BufferSize);
+ ByteCountB := B.Read(BufferB[0], BufferSize);
+ {$ENDIF ~CLR}
- Result := (ByteCountA = ByteCountB) and CompareMem(BufferA, BufferB, ByteCountA);
+ Result := (ByteCountA = ByteCountB);
+ {$IFDEF CLR}
+ if Result then
+ for Index := 0 to ByteCountA - 1 do
+ if BufferA[Index] <> BufferB[Index] then
+ begin
+ Result := False;
+ Break;
+ end;
+ {$ELSE CLR}
+ Result := Result and CompareMem(BufferA, BufferB, ByteCountA);
+ {$ENDIF ~CLR}
until (ByteCountA <> BufferSize) or (ByteCountB <> BufferSize) or not Result;
finally
- FreeMem(BufferB);
+ SetLength(BufferB, 0);
end;
finally
- FreeMem(BufferA);
+ SetLength(BufferA, 0);
end;
end;
@@ -472,6 +561,7 @@
//=== { TJclStream } =========================================================
+{$IFNDEF CLR}
function TJclStream.Seek(Offset: Longint; Origin: Word): Longint;
var
Result64: Int64;
@@ -490,6 +580,7 @@
Result64 := -1;
Result := Result64;
end;
+{$ENDIF ~CLR}
function TJclStream.Seek(const Offset: Int64; Origin: TSeekOrigin): Int64;
begin
@@ -497,16 +588,19 @@
Result := -1;
end;
+{$IFNDEF CLR}
procedure TJclStream.SetSize(NewSize: Longint);
begin
SetSize(Int64(NewSize));
end;
+{$ENDIF ~CLR}
-procedure TJclStream.SetSize(const NewSize: Int64);
+procedure TJclStream.SetSize({$IFNDEF CLR}const{$ENDIF ~CLR} NewSize: Int64);
begin
// override to customize
end;
+{$IFNDEF CLR}
//=== { TJclHandleStream } ===================================================
constructor TJclHandleStream.Create(AHandle: THandle);
@@ -635,23 +729,33 @@
inherited Destroy;
end;
+{$ENDIF ~CLR}
+
//=== { TJclEmptyStream } ====================================================
// a stream which stays empty no matter what you do
// so it is a Unix /dev/null equivalent
-procedure TJclEmptyStream.SetSize(const NewSize: Int64);
+procedure TJclEmptyStream.SetSize({$IFNDEF CLR}const{$ENDIF CLR} NewSize: Int64);
begin
// nothing
end;
+{$IFDEF CLR}
+function TJclEmptyStream.Read(var Buffer: array of Byte; Offset, Count: Longint): Longint;
+{$ELSE ~CLR}
function TJclEmptyStream.Read(var Buffer; Count: Longint): Longint;
+{$ENDIF ~CLR}
begin
// you cannot read anything
Result := 0;
end;
+{$IFDEF CLR}
+function TJclEmptyStream.Write(const Buffer: array of Byte; Offset, Count: Longint): Longint;
+{$ELSE ~CLR}
function TJclEmptyStream.Write(const Buffer; Count: Longint): Longint;
+{$ENDIF ~CLR}
begin
// you cannot write anything
Result := 0;
@@ -671,7 +775,7 @@
// a stream which only keeps position and size, but no data
// so it is a Unix /dev/zero equivalent (?)
-procedure TJclNullStream.SetSize(const NewSize: Int64);
+procedure TJclNullStream.SetSize({$IFNDEF CLR}const{$ENDIF ~CLR} NewSize: Int64);
begin
if NewSize > 0 then
FSize := NewSize
@@ -681,7 +785,13 @@
FPosition := FSize;
end;
+{$IFDEF CLR}
+function TJclNullStream.Read(var Buffer: array of Byte; Offset, Count: Longint): Longint;
+var
+ Index: Integer;
+{$ELSE ~CLR}
function TJclNullStream.Read(var Buffer; Count: Longint): Longint;
+{$ENDIF ~CLR}
begin
if Count < 0 then
Count := 0;
@@ -691,13 +801,22 @@
// does not read if beyond EOF
if Count > 0 then
begin
+ {$IFDEF CLR}
+ for Index := Offset to Offset + Count - 1 do
+ Buffer[Index] := 0;
+ {$ELSE ~CLR}
FillChar(Buffer, Count, 0);
+ {$ENDIF ~CLR}
FPosition := FPosition + Count;
end;
Result := Count;
end;
+{$IFDEF CLR}
+function TJclNullStream.Write(const Buffer: array of Byte; Offset, Count: Longint): Longint;
+{$ELSE ~CLR}
function TJclNullStream.Write(const Buffer; Count: Longint): Longint;
+{$ENDIF ~CLR}
begin
if Count < 0 then
Count := 0;
@@ -738,26 +857,67 @@
// A TJclNullStream decendant which returns random data when read
// so it is a Unix /dev/random equivalent
+{$IFDEF CLR}
+constructor TJclRandomStream.Create;
+begin
+ inherited Create;
+ FRandomGenerator := System.Random.Create;
+end;
+
+destructor TJclRandomStream.Destroy;
+begin
+ FRandomGenerator.Free;
+ inherited Destroy;
+end;
+{$ENDIF CLR}
+
function TJclRandomStream.GetRandSeed: Longint;
begin
+ {$IFDEF CLR}
+ Result := 0;
+ {$ELSE ~CLR}
Result := System.RandSeed;
+ {$ENDIF ~CLR}
end;
procedure TJclRandomStream.SetRandSeed(Seed: Longint);
begin
+ {$IFDEF CLR}
+ FRandomGenerator.Free;
+ FRandomGenerator := System.Random.Create(Seed);
+ {$ELSE ~CLR}
System.RandSeed := Seed;
+ {$ENDIF ~CLR}
end;
function TJclRandomStream.RandomData: Byte;
begin
- Result := Byte(System.Random(256));
+ {$IFDEF CLR}
+ Result := FRandomGenerator.Next(256);
+ {$ELSE ~CLR}
+ Result := System.Random(256);
+ {$ENDIF ~CLR}
end;
procedure TJclRandomStream.Randomize;
begin
+ {$IFNDEF CLR}
System.Randomize;
+ {$ENDIF ~CLR}
end;
+{$IFDEF CLR}
+function TJclRandomStream.Read(var Buffer: array of Byte; Offset, Count: Longint): Longint;
+var
+ I: Longint;
+begin
+ // this handles all necessary checks
+ Count := inherited Read(Buffer, Offset, Count);
+ for I := Offset to Offset + Count - 1 do
+ Buffer[I] := RandomData;
+ Result := Count;
+end;
+{$ELSE ~CLR}
function TJclRandomStream.Read(var Buffer; Count: Longint): Longint;
var
I: Longint;
@@ -773,6 +933,7 @@
end;
Result := Count;
end;
+{$ENDIF ~CLR}
//=== { TJclMultiplexStream } ================================================
@@ -791,7 +952,11 @@
function TJclMultiplexStream.Add(NewStream: TStream): Integer;
begin
+ {$IFDEF CLR}
+ Result := FStreams.Add(NewStream);
+ {$ELSE ~CLR}
Result := FStreams.Add(Pointer(NewStream));
+ {$ENDIF ~CLR}
end;
procedure TJclMultiplexStream.Clear;
@@ -828,20 +993,28 @@
Result := FStreams.Count;
end;
+{$IFDEF CLR}
+function TJclMultiplexStream.Read(var Buffer: array of Byte; Offset, Count: Longint): Longint;
+{$ELSE ~CLR}
function TJclMultiplexStream.Read(var Buffer; Count: Longint): Longint;
+{$ENDIF ~CLR}
var
Stream: TStream;
begin
Stream := ReadStream;
if Assigned(Stream) then
- Result := Stream.Read(Buffer, Count)
+ Result := Stream.Read(Buffer, {$IFDEF CLR}Offset,{$ENDIF CLR} Count)
else
Result := 0;
end;
function TJclMultiplexStream.Remove(AStream: TStream): Integer;
begin
+ {$IFDEF CLR}
+ Result := FStreams.Remove(AStream);
+ {$ELSE ~CLR}
Result := FStreams.Remove(Pointer(AStream));
+ {$ENDIF ~CLR}
if FReadStreamIndex = Result then
FReadStreamIndex := -1
else
@@ -857,7 +1030,11 @@
procedure TJclMultiplexStream.SetReadStream(const Value: TStream);
begin
+ {$IFDEF CLR}
+ FReadStreamIndex := FStreams.IndexOf(Value);
+ {$ELSE ~CLR}
FReadStreamIndex := FStreams.IndexOf(Pointer(Value));
+ {$ENDIF ~CLR}
end;
procedure TJclMultiplexStream.SetReadStreamIndex(const Value: Integer);
@@ -865,17 +1042,21 @@
FReadStreamIndex := Value;
end;
-procedure TJclMultiplexStream.SetSize(const NewSize: Int64);
+procedure TJclMultiplexStream.SetSize({$IFNDEF CLR}const{$ENDIF ~CLR} NewSize: Int64);
begin
// what should this function do?
end;
procedure TJclMultiplexStream.SetStream(Index: Integer; const Value: TStream);
begin
- FStreams.Items[Index] := Pointer(Value);
+ FStreams.Items[Index] := {$IFDEF CLR}Value;{$ELSE ~CLR}Pointer(Value){$ENDIF ~CLR};
end;
+{$IFDEF CLR}
+function TJclMultiplexStream.Write(const Buffer: array of Byte; Offset, Count: Longint): Longint;
+{$ELSE ~CLR}
function TJclMultiplexStream.Write(const Buffer; Count: Longint): Longint;
+{$ENDIF ~CLR}
var
Index: Integer;
ByteWritten, MinByteWritten: Longint;
@@ -883,7 +1064,7 @@
MinByteWritten := Count;
for Index := 0 to Self.Count - 1 do
begin
- ByteWritten := TStream(FStreams.Items[Index]).Write(Buffer, Count);
+ ByteWritten := TStream(FStreams.Items[Index]).Write(Buffer, {$IFDEF CLR}Offset,{$ENDIF CLR} Count);
if ByteWritten < MinByteWritten then
MinByteWritten := ByteWritten;
end;
@@ -918,10 +1099,14 @@
FBeforeStreamChange(Self);
end;
+{$IFDEF CLR}
+function TJclStreamDecorator.Read(var Buffer: array of Byte; Offset, Count: Longint): Longint;
+{$ELSE ~CLR}
function TJclStreamDecorator.Read(var Buffer; Count: Longint): Longint;
+{$ENDIF ~CLR}
begin
if Assigned(FStream) then
- Result := Stream.Read(Buffer, Count)
+ Result := Stream.Read(Buffer, {$IFDEF CLR}Offset,{$ENDIF CLR} Count)
else
Result := 0;
end;
@@ -931,17 +1116,9 @@
Result := StreamSeek(Stream, Offset, Origin);
end;
-function TJclStreamDecorator.Seek(Offset: Longint; Origin: Word): Longint;
+procedure TJclStreamDecorator.SetSize({$IFNDEF CLR}const{$ENDIF ~CLR} NewSize: Int64);
begin
if Assigned(FStream) then
- Result := Stream.Seek(Offset, Origin)
- else
- Result := -1;
-end;
-
-procedure TJclStreamDecorator.SetSize(const NewSize: Int64);
-begin
- if Assigned(FStream) then
Stream.Size := NewSize;
end;
@@ -958,14 +1135,20 @@
end;
end;
+{$IFDEF CLR}
+function TJclStreamDecorator.Write(const Buffer: array of Byte; Offset, Count: Longint): Longint;
+{$ELSE ~CLR}
function TJclStreamDecorator.Write(const Buffer; Count: Longint): Longint;
+{$ENDIF ~CLR}
begin
if Assigned(FStream) then
- Result := Stream.Write(Buffer, Count)
+ Result := Stream.Write(Buffer, {$IFDEF CLR}Offset,{$ENDIF CLR} Count)
else
Result := 0;
end;
+{$IFNDEF CLR}
+
//=== { TJclBufferedStream } =================================================
constructor TJclBufferedStream.Create(AStream: TStream; AOwnsStream: Boolean = False);
@@ -1134,6 +1317,8 @@
Inc(FPosition, Result);
end;
+{$ENDIF ~CLR}
+
//=== { TJclEventStream } ====================================================
constructor TJclEventStream.Create(AStream: TStream; ANotification:
@@ -1163,7 +1348,11 @@
FNotification(Self, Stream.Position, Stream.Size);
end;
+{$IFDEF CLR}
+function TJclEventStream.Read(var Buffer: array of Byte; Offset, Count: Longint): Longint;
+{$ELSE ~CLR}
function TJclEventStream.Read(var Buffer; Count: Longint): Longint;
+{$ENDIF ~CLR}
begin
Result := inherited Read(Buffer, Count);
DoNotification;
@@ -1175,19 +1364,17 @@
DoNotification;
end;
-function TJclEventStream.Seek(Offset: Longint; Origin: Word): Longint;
+procedure TJclEventStream.SetSize({$IFNDEF CLR}const{$ENDIF ~CLR} NewSize: Int64);
begin
- Result := inherited Seek(Offset, Origin);
- DoNotification;
-end;
-
-procedure TJclEventStream.SetSize(const NewSize: Int64);
-begin
inherited SetSize(NewSize);
DoNotification;
end;
+{$IFDEF CLR}
+function TJclEventStream.Write(const Buffer: array of Byte; Offset, Count: Longint): Longint;
+{$ELSE ~CLR}
function TJclEventStream.Write(const Buffer; Count: Longint): Longint;
+{$ENDIF ~CLR}
begin
Result := inherited Write(Buffer, Count);
DoNotification;
@@ -1196,42 +1383,19 @@
//=== { TJclEasyStream } =====================================================
function TJclEasyStream.IsEqual(Stream: TStream): Boolean;
-const
- BUFSIZE = 65536;
var
SavePos, StreamSavePos: Integer;
- ReadCount, StreamReadCount: Integer;
- Buffer, StreamBuffer: PChar;
- TestSize: Integer;
begin
- Result := False;
SavePos := Position;
StreamSavePos := Stream.Position;
- if Size <> Stream.Size then
- Exit;
- Buffer := nil;
try
- GetMem(Buffer, 2*BUFSIZE);
- StreamBuffer := Buffer + BUFSIZE;
Position := 0;
Stream.Position := 0;
- TestSize := Size;
- while Position < TestSize do
- begin
- ReadCount := Read(Buffer^, BUFSIZE);
- StreamReadCount := Stream.Read(StreamBuffer^, BUFSIZE);
- if ReadCount <> StreamReadCount then
- Exit;
- if not CompareMem(Buffer, StreamBuffer, ReadCount) then
- Exit;
- end;
+ Result := CompareStreams(Self, Stream);
finally
Position := SavePos;
Stream.Position := StreamSavePos;
- if Buffer <> nil then
- FreeMem(Buffer);
end;
- Result := True;
end;
function TJclEasyStream.ReadBoolean: Boolean;
@@ -1244,6 +1408,7 @@
ReadBuffer(Result, SizeOf(Result));
end;
+{$IFNDEF CLR}
function TJclEasyStream.ReadCurrency: Currency;
begin
ReadBuffer(Result, SizeOf(Result));
@@ -1253,6 +1418,7 @@
begin
ReadBuffer(Result, SizeOf(Result));
end;
+{$ENDIF ~CLR}
function TJclEasyStream.ReadDouble: Double;
begin
@@ -1276,9 +1442,23 @@
function TJclEasyStream.ReadCString: string;
var
+ {$IFDEF CLR}
+ SB: System.Text.StringBuilder;
+ Ch: Char;
+ {$ELSE ~CLR}
CurrPos: Integer;
StrSize: Integer;
+ {$ENDIF ~CLR}
begin
+ {$IFDEF CLR}
+ SB := System.Text.StringBuilder.Create;
+ repeat
+ Ch := ReadChar;
+ if ReadChar <> #0 then
+ SB.Append(Ch);
+ until ReadChar = #0;
+ Result := SB.ToString;
+ {$ELSE ~CLR}
CurrPos := Position;
repeat
until ReadChar = #0;
@@ -1287,15 +1467,29 @@
Position := CurrPos;
ReadBuffer(Pointer(Result)^, StrSize);
Position := Position + 1;
+ {$ENDIF ~CLR}
end;
function TJclEasyStream.ReadShortString: string;
var
+ {$IFDEF CLR}
+ SB: System.Text.StringBuilder;
+ {$ENDIF CLR}
StrSize: Integer;
begin
StrSize := Ord(ReadChar);
+ {$IFDEF CLR}
+ SB := System.Text.StringBuilder.Create(StrSize);
+ while StrSize > 0 do
+ begin
+ SB.Append(ReadChar);
+ Dec(StrSize);
+ end;
+ Result := SB.ToString;
+ {$ELSE ~CLR}
SetString(Result, PChar(nil), StrSize);
ReadBuffer(Pointer(Result)^, StrSize);
+ {$ENDIF ~CLR}
end;
function TJclEasyStream.ReadSingle: Single;
@@ -1305,11 +1499,24 @@
function TJclEasyStream.ReadSizedString: string;
var
+ {$IFDEF CLR}
+ SB: System.Text.StringBuilder;
+ {$ENDIF CLR}
StrSize: Integer;
begin
StrSize := ReadInteger;
+ {$IFDEF CLR}
+ SB := System.Text.StringBuilder.Create(StrSize);
+ while StrSize > 0 do
+ begin
+ SB.Append(ReadChar);
+ Dec(StrSize);
+ end;
+ Result := SB.ToString;
+ {$ELSE ~CLR}
SetString(Result, PChar(nil), StrSize);
ReadBuffer(Pointer(Result)^, StrSize);
+ {$ENDIF ~CLR}
end;
procedure TJclEasyStream.WriteBoolean(Value: Boolean);
@@ -1322,6 +1529,7 @@
WriteBuffer(Value, SizeOf(Value));
end;
+{$IFNDEF CLR}
procedure TJclEasyStream.WriteCurrency(const Value: Currency);
begin
WriteBuffer(Value, SizeOf(Value));
@@ -1331,6 +1539,7 @@
begin
WriteBuffer(Value, SizeOf(Value));
end;
+{$ENDIF ~CLR}
procedure TJclEasyStream.WriteDouble(const Value: Double);
begin
@@ -1353,13 +1562,32 @@
end;
procedure TJclEasyStream.WriteStringDelimitedByNull(const Value: string);
+{$IFDEF CLR}
+var
+ I: Integer;
+{$ENDIF CLR}
begin
+ {$IFDEF CLR}
+ for I := 1 to Length(Value) do
+ WriteChar(Value[I]);
+ WriteChar(#0);
+ {$ELSE ~CLR}
WriteBuffer(PChar(Value)^, Length(Value) + 1);
+ {$ENDIF ~CLR}
end;
procedure TJclEasyStream.WriteShortString(const Value: ShortString);
+{$IFDEF CLR}
+var
+ I: Integer;
+{$ENDIF CLR}
begin
+ {$IFDEF CLR}
+ for I := 0 to Length(Value) do
+ inherited WriteBuffer(Value[I]);
+ {$ELSE ~CLR}
WriteBuffer(Value[0], Length(Value) + 1);
+ {$ENDIF ~CLR}
end;
procedure TJclEasyStream.WriteSingle(const Value: Single);
@@ -1370,10 +1598,18 @@
procedure TJclEasyStream.WriteSizedString(const Value: string);
var
StrSize: Integer;
+ {$IFDEF CLR}
+ I: Integer;
+ {$ENDIF CLR}
begin
StrSize := Length(Value);
WriteInteger(StrSize);
+ {$IFDEF CLR}
+ for I := 1 to Length(Value) do
+ WriteChar(Value[I]);
+ {$ELSE ~CLR}
WriteBuffer(Pointer(Value)^, StrSize);
+ {$ENDIF ~CLR}
end;
//=== { TJclScopedStream } ===================================================
@@ -1388,14 +1624,18 @@
FMaxSize := AMaxSize;
end;
+{$IFDEF CLR}
+function TJclScopedStream.Read(var Buffer: array of Byte; Offset, Count: Longint): Longint;
+{$ELSE ~CLR}
function TJclScopedStream.Read(var Buffer; Count: Longint): Longint;
+{$ENDIF ~CLR}
begin
if (MaxSize >= 0) and ((FCurrentPos + Count) > MaxSize) then
Count := MaxSize - FCurrentPos;
if (Count > 0) and Assigned(ParentStream) then
begin
- Result := ParentStream.Read(Buffer, Count);
+ Result := ParentStream.Read(Buffer, {$IFDEF CLR}Offset,{$ENDIF CLR} Count);
Inc(FCurrentPos, Result);
end
else
@@ -1448,7 +1688,7 @@
FCurrentPos := Result;
end;
-procedure TJclScopedStream.SetSize(const NewSize: Int64);
+procedure TJclScopedStream.SetSize({$IFNDEF CLR}const{$ENDIF ~CLR} NewSize: Int64);
var
ScopedNewSize: Int64;
begin
@@ -1459,7 +1699,11 @@
inherited SetSize(ScopedNewSize);
end;
+{$IFDEF CLR}
+function TJclScopedStream.Write(const Buffer: array of Byte; Offset, Count: Longint): Longint;
+{$ELSE ~CLR}
function TJclScopedStream.Write(const Buffer; Count: Longint): Longint;
+{$ENDIF ~CLR}
begin
if (MaxSize >= 0) and ((FCurrentPos + Count) > MaxSize) then
Count := MaxSize - FCurrentPos;
@@ -1475,7 +1719,7 @@
//=== { TJclDelegateStream } =================================================
-procedure TJclDelegatedStream.SetSize(const NewSize: Int64);
+procedure TJclDelegatedStream.SetSize({$IFNDEF CLR}const{$ENDIF ~CLR} NewSize: Int64);
begin
if Assigned(FOnSize) then
FOnSize(Self, NewSize);
@@ -1489,22 +1733,31 @@
Result := -1;
end;
+{$IFDEF CLR}
+function TJclDelegatedStream.Read(var Buffer: array of Byte; Offset, Count: Longint): Longint;
+{$ELSE ~CLR}
function TJclDelegatedStream.Read(var Buffer; Count: Longint): Longint;
+{$ENDIF ~CLR}
begin
if Assigned(FOnRead) then
- Result := FOnRead(Self, Buffer, Count)
+ Result := FOnRead(Self, Buffer, {$IFDEF CLR}Offset,{$ENDIF CLR} Count)
else
Result := -1;
end;
+{$IFDEF CLR}
+function TJclDelegatedStream.Write(const Buffer: array of Byte; Offset, Count: Longint): Longint;
+{$ELSE ~CLR}
function TJclDelegatedStream.Write(const Buffer; Count: Longint): Longint;
+{$ENDIF ~CLR}
begin
if Assigned(FOnWrite) then
- Result := FOnWrite(Self, Buffer, Count)
+ Result := FOnWrite(Self, Buffer, {$IFDEF CLR}Offset,{$ENDIF CLR} Count)
else
Result := -1;
end;
+{$IFNDEF CLR}
//=== { TJclSectoredStream } =================================================
procedure TJclSectoredStream.AfterBlockRead;
@@ -1656,6 +1909,8 @@
inherited Create(AStorageStream, AOwnsStream, 4);
end;
+{$ENDIF ~CLR}
+
{$IFDEF UNITVERSIONING}
initialization
RegisterUnitVersion(HInstance, UnitVersioning);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ou...@us...> - 2007-09-21 22:07:19
|
Revision: 2182
http://jcl.svn.sourceforge.net/jcl/?rev=2182&view=rev
Author: outchy
Date: 2007-09-21 15:01:12 -0700 (Fri, 21 Sep 2007)
Log Message:
-----------
Fix for setting options for managed targets.
Modified Paths:
--------------
trunk/jcl/install/JclInstall.pas
Modified: trunk/jcl/install/JclInstall.pas
===================================================================
--- trunk/jcl/install/JclInstall.pas 2007-09-19 17:58:41 UTC (rev 2181)
+++ trunk/jcl/install/JclInstall.pas 2007-09-21 22:01:12 UTC (rev 2182)
@@ -821,8 +821,8 @@
FTargetName := Format('%s CLR %s', [FTargetName, CLRVersion]);
// exclude C#Builder 1, Delphi 8 and .net targets
- FRunTimeInstallation := (CLRVersion = '') and ((Target.RadToolKind <> brBorlandDevStudio)
- or ((Target.VersionNumber >= 3) and (bpDelphi32 in Target.Personalities)));
+ FRunTimeInstallation := (CLRVersion <> '') or (Target.RadToolKind <> brBorlandDevStudio)
+ or ((Target.VersionNumber >= 3) and (bpDelphi32 in Target.Personalities));
case TargetPlatform of
//bp32bit:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ou...@us...> - 2007-09-19 17:58:45
|
Revision: 2181
http://jcl.svn.sourceforge.net/jcl/?rev=2181&view=rev
Author: outchy
Date: 2007-09-19 10:58:41 -0700 (Wed, 19 Sep 2007)
Log Message:
-----------
tagging JCL 1.101 Build 2725
Added Paths:
-----------
tags/JCL-1.101-Build2725/
Copied: tags/JCL-1.101-Build2725 (from rev 2180, branches/JCL_1.101)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ou...@us...> - 2007-09-18 14:51:04
|
Revision: 2180
http://jcl.svn.sourceforge.net/jcl/?rev=2180&view=rev
Author: outchy
Date: 2007-09-18 07:51:01 -0700 (Tue, 18 Sep 2007)
Log Message:
-----------
Speed up for IDE icon loads
Modified Paths:
--------------
trunk/jcl/install/prototypes/JediGUIMain.pas
Modified: trunk/jcl/install/prototypes/JediGUIMain.pas
===================================================================
--- trunk/jcl/install/prototypes/JediGUIMain.pas 2007-09-18 10:28:20 UTC (rev 2179)
+++ trunk/jcl/install/prototypes/JediGUIMain.pas 2007-09-18 14:51:01 UTC (rev 2180)
@@ -242,7 +242,7 @@
LR_LOADFROMFILE or LR_LOADTRANSPARENT)
else
begin
- ModuleHandle := LoadLibraryEx(PChar(FileName), 0, DONT_RESOLVE_DLL_REFERENCES);
+ ModuleHandle := LoadLibraryEx(PChar(FileName), 0, LOAD_LIBRARY_AS_DATAFILE or DONT_RESOLVE_DLL_REFERENCES);
if ModuleHandle <> 0 then
try
IconHandle := LoadImage(ModuleHandle, 'MAINICON', IMAGE_ICON, ImageList.Width, ImageList.Height,
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ou...@us...> - 2007-09-18 10:28:22
|
Revision: 2179
http://jcl.svn.sourceforge.net/jcl/?rev=2179&view=rev
Author: outchy
Date: 2007-09-18 03:28:20 -0700 (Tue, 18 Sep 2007)
Log Message:
-----------
removing addition section in C5 and D5 DOF file (linker internal error L1496 was solved in rev 2168 by Andreas Hausladen)
Revision Links:
--------------
http://jcl.svn.sourceforge.net/jcl/?rev=2168&view=rev
Modified Paths:
--------------
trunk/jcl/packages/c5/JclBaseExpertC50.dof
trunk/jcl/packages/c5/JclC50.dof
trunk/jcl/packages/c5/JclDebugExpertC50.dof
trunk/jcl/packages/c5/JclDebugExpertDLLC50.dof
trunk/jcl/packages/c5/JclFavoriteFoldersExpertC50.dof
trunk/jcl/packages/c5/JclFavoriteFoldersExpertDLLC50.dof
trunk/jcl/packages/c5/JclProjectAnalysisExpertC50.dof
trunk/jcl/packages/c5/JclProjectAnalysisExpertDLLC50.dof
trunk/jcl/packages/c5/JclRepositoryExpertC50.dof
trunk/jcl/packages/c5/JclRepositoryExpertDLLC50.dof
trunk/jcl/packages/c5/JclSIMDViewExpertC50.dof
trunk/jcl/packages/c5/JclSIMDViewExpertDLLC50.dof
trunk/jcl/packages/c5/JclThreadNameExpertC50.dof
trunk/jcl/packages/c5/JclThreadNameExpertDLLC50.dof
trunk/jcl/packages/c5/JclUsesExpertC50.dof
trunk/jcl/packages/c5/JclUsesExpertDLLC50.dof
trunk/jcl/packages/c5/JclVersionControlExpertC50.dof
trunk/jcl/packages/c5/JclVersionControlExpertDLLC50.dof
trunk/jcl/packages/c5/template.dof
trunk/jcl/packages/d5/JclBaseExpertD50.dof
trunk/jcl/packages/d5/JclD50.dof
trunk/jcl/packages/d5/JclDebugExpertD50.dof
trunk/jcl/packages/d5/JclDebugExpertDLLD50.dof
trunk/jcl/packages/d5/JclFavoriteFoldersExpertD50.dof
trunk/jcl/packages/d5/JclFavoriteFoldersExpertDLLD50.dof
trunk/jcl/packages/d5/JclProjectAnalysisExpertD50.dof
trunk/jcl/packages/d5/JclProjectAnalysisExpertDLLD50.dof
trunk/jcl/packages/d5/JclRepositoryExpertD50.dof
trunk/jcl/packages/d5/JclRepositoryExpertDLLD50.dof
trunk/jcl/packages/d5/JclSIMDViewExpertD50.dof
trunk/jcl/packages/d5/JclSIMDViewExpertDLLD50.dof
trunk/jcl/packages/d5/JclThreadNameExpertD50.dof
trunk/jcl/packages/d5/JclThreadNameExpertDLLD50.dof
trunk/jcl/packages/d5/JclUsesExpertD50.dof
trunk/jcl/packages/d5/JclUsesExpertDLLD50.dof
trunk/jcl/packages/d5/JclVersionControlExpertD50.dof
trunk/jcl/packages/d5/JclVersionControlExpertDLLD50.dof
trunk/jcl/packages/d5/template.dof
Modified: trunk/jcl/packages/c5/JclBaseExpertC50.dof
===================================================================
--- trunk/jcl/packages/c5/JclBaseExpertC50.dof 2007-09-18 09:06:53 UTC (rev 2178)
+++ trunk/jcl/packages/c5/JclBaseExpertC50.dof 2007-09-18 10:28:20 UTC (rev 2179)
@@ -2,6 +2,4 @@
UnitOutputDir=..\..\lib\c5
SearchPath=..\..\source
Conditionals=BCB
-[Additional]
-Options=-B
Modified: trunk/jcl/packages/c5/JclC50.dof
===================================================================
--- trunk/jcl/packages/c5/JclC50.dof 2007-09-18 09:06:53 UTC (rev 2178)
+++ trunk/jcl/packages/c5/JclC50.dof 2007-09-18 10:28:20 UTC (rev 2179)
@@ -2,6 +2,4 @@
UnitOutputDir=..\..\lib\c5
SearchPath=..\..\source
Conditionals=BCB
-[Additional]
-Options=-B
Modified: trunk/jcl/packages/c5/JclDebugExpertC50.dof
===================================================================
--- trunk/jcl/packages/c5/JclDebugExpertC50.dof 2007-09-18 09:06:53 UTC (rev 2178)
+++ trunk/jcl/packages/c5/JclDebugExpertC50.dof 2007-09-18 10:28:20 UTC (rev 2179)
@@ -2,6 +2,4 @@
UnitOutputDir=..\..\lib\c5
SearchPath=..\..\source
Conditionals=BCB
-[Additional]
-Options=-B
Modified: trunk/jcl/packages/c5/JclDebugExpertDLLC50.dof
===================================================================
--- trunk/jcl/packages/c5/JclDebugExpertDLLC50.dof 2007-09-18 09:06:53 UTC (rev 2178)
+++ trunk/jcl/packages/c5/JclDebugExpertDLLC50.dof 2007-09-18 10:28:20 UTC (rev 2179)
@@ -2,8 +2,6 @@
UnitOutputDir=..\..\lib\c5
SearchPath=..\..\source
Conditionals=BCB
-[Additional]
-Options=-B
[Compiler]
PackageNoLink=1
[Linker]
Modified: trunk/jcl/packages/c5/JclFavoriteFoldersExpertC50.dof
===================================================================
--- trunk/jcl/packages/c5/JclFavoriteFoldersExpertC50.dof 2007-09-18 09:06:53 UTC (rev 2178)
+++ trunk/jcl/packages/c5/JclFavoriteFoldersExpertC50.dof 2007-09-18 10:28:20 UTC (rev 2179)
@@ -2,6 +2,4 @@
UnitOutputDir=..\..\lib\c5
SearchPath=..\..\source
Conditionals=BCB
-[Additional]
-Options=-B
Modified: trunk/jcl/packages/c5/JclFavoriteFoldersExpertDLLC50.dof
===================================================================
--- trunk/jcl/packages/c5/JclFavoriteFoldersExpertDLLC50.dof 2007-09-18 09:06:53 UTC (rev 2178)
+++ trunk/jcl/packages/c5/JclFavoriteFoldersExpertDLLC50.dof 2007-09-18 10:28:20 UTC (rev 2179)
@@ -2,8 +2,6 @@
UnitOutputDir=..\..\lib\c5
SearchPath=..\..\source
Conditionals=BCB
-[Additional]
-Options=-B
[Compiler]
PackageNoLink=1
[Linker]
Modified: trunk/jcl/packages/c5/JclProjectAnalysisExpertC50.dof
===================================================================
--- trunk/jcl/packages/c5/JclProjectAnalysisExpertC50.dof 2007-09-18 09:06:53 UTC (rev 2178)
+++ trunk/jcl/packages/c5/JclProjectAnalysisExpertC50.dof 2007-09-18 10:28:20 UTC (rev 2179)
@@ -2,6 +2,4 @@
UnitOutputDir=..\..\lib\c5
SearchPath=..\..\source
Conditionals=BCB
-[Additional]
-Options=-B
Modified: trunk/jcl/packages/c5/JclProjectAnalysisExpertDLLC50.dof
===================================================================
--- trunk/jcl/packages/c5/JclProjectAnalysisExpertDLLC50.dof 2007-09-18 09:06:53 UTC (rev 2178)
+++ trunk/jcl/packages/c5/JclProjectAnalysisExpertDLLC50.dof 2007-09-18 10:28:20 UTC (rev 2179)
@@ -2,8 +2,6 @@
UnitOutputDir=..\..\lib\c5
SearchPath=..\..\source
Conditionals=BCB
-[Additional]
-Options=-B
[Compiler]
PackageNoLink=1
[Linker]
Modified: trunk/jcl/packages/c5/JclRepositoryExpertC50.dof
===================================================================
--- trunk/jcl/packages/c5/JclRepositoryExpertC50.dof 2007-09-18 09:06:53 UTC (rev 2178)
+++ trunk/jcl/packages/c5/JclRepositoryExpertC50.dof 2007-09-18 10:28:20 UTC (rev 2179)
@@ -2,6 +2,4 @@
UnitOutputDir=..\..\lib\c5
SearchPath=..\..\source
Conditionals=BCB
-[Additional]
-Options=-B
Modified: trunk/jcl/packages/c5/JclRepositoryExpertDLLC50.dof
===================================================================
--- trunk/jcl/packages/c5/JclRepositoryExpertDLLC50.dof 2007-09-18 09:06:53 UTC (rev 2178)
+++ trunk/jcl/packages/c5/JclRepositoryExpertDLLC50.dof 2007-09-18 10:28:20 UTC (rev 2179)
@@ -2,8 +2,6 @@
UnitOutputDir=..\..\lib\c5
SearchPath=..\..\source
Conditionals=BCB
-[Additional]
-Options=-B
[Compiler]
PackageNoLink=1
[Linker]
Modified: trunk/jcl/packages/c5/JclSIMDViewExpertC50.dof
===================================================================
--- trunk/jcl/packages/c5/JclSIMDViewExpertC50.dof 2007-09-18 09:06:53 UTC (rev 2178)
+++ trunk/jcl/packages/c5/JclSIMDViewExpertC50.dof 2007-09-18 10:28:20 UTC (rev 2179)
@@ -2,6 +2,4 @@
UnitOutputDir=..\..\lib\c5
SearchPath=..\..\source
Conditionals=BCB
-[Additional]
-Options=-B
Modified: trunk/jcl/packages/c5/JclSIMDViewExpertDLLC50.dof
===================================================================
--- trunk/jcl/packages/c5/JclSIMDViewExpertDLLC50.dof 2007-09-18 09:06:53 UTC (rev 2178)
+++ trunk/jcl/packages/c5/JclSIMDViewExpertDLLC50.dof 2007-09-18 10:28:20 UTC (rev 2179)
@@ -2,8 +2,6 @@
UnitOutputDir=..\..\lib\c5
SearchPath=..\..\source
Conditionals=BCB
-[Additional]
-Options=-B
[Compiler]
PackageNoLink=1
[Linker]
Modified: trunk/jcl/packages/c5/JclThreadNameExpertC50.dof
===================================================================
--- trunk/jcl/packages/c5/JclThreadNameExpertC50.dof 2007-09-18 09:06:53 UTC (rev 2178)
+++ trunk/jcl/packages/c5/JclThreadNameExpertC50.dof 2007-09-18 10:28:20 UTC (rev 2179)
@@ -2,6 +2,4 @@
UnitOutputDir=..\..\lib\c5
SearchPath=..\..\source
Conditionals=BCB
-[Additional]
-Options=-B
Modified: trunk/jcl/packages/c5/JclThreadNameExpertDLLC50.dof
===================================================================
--- trunk/jcl/packages/c5/JclThreadNameExpertDLLC50.dof 2007-09-18 09:06:53 UTC (rev 2178)
+++ trunk/jcl/packages/c5/JclThreadNameExpertDLLC50.dof 2007-09-18 10:28:20 UTC (rev 2179)
@@ -2,8 +2,6 @@
UnitOutputDir=..\..\lib\c5
SearchPath=..\..\source
Conditionals=BCB
-[Additional]
-Options=-B
[Compiler]
PackageNoLink=1
[Linker]
Modified: trunk/jcl/packages/c5/JclUsesExpertC50.dof
===================================================================
--- trunk/jcl/packages/c5/JclUsesExpertC50.dof 2007-09-18 09:06:53 UTC (rev 2178)
+++ trunk/jcl/packages/c5/JclUsesExpertC50.dof 2007-09-18 10:28:20 UTC (rev 2179)
@@ -2,6 +2,4 @@
UnitOutputDir=..\..\lib\c5
SearchPath=..\..\source
Conditionals=BCB
-[Additional]
-Options=-B
Modified: trunk/jcl/packages/c5/JclUsesExpertDLLC50.dof
===================================================================
--- trunk/jcl/packages/c5/JclUsesExpertDLLC50.dof 2007-09-18 09:06:53 UTC (rev 2178)
+++ trunk/jcl/packages/c5/JclUsesExpertDLLC50.dof 2007-09-18 10:28:20 UTC (rev 2179)
@@ -2,8 +2,6 @@
UnitOutputDir=..\..\lib\c5
SearchPath=..\..\source
Conditionals=BCB
-[Additional]
-Options=-B
[Compiler]
PackageNoLink=1
[Linker]
Modified: trunk/jcl/packages/c5/JclVersionControlExpertC50.dof
===================================================================
--- trunk/jcl/packages/c5/JclVersionControlExpertC50.dof 2007-09-18 09:06:53 UTC (rev 2178)
+++ trunk/jcl/packages/c5/JclVersionControlExpertC50.dof 2007-09-18 10:28:20 UTC (rev 2179)
@@ -2,6 +2,4 @@
UnitOutputDir=..\..\lib\c5
SearchPath=..\..\source
Conditionals=BCB
-[Additional]
-Options=-B
Modified: trunk/jcl/packages/c5/JclVersionControlExpertDLLC50.dof
===================================================================
--- trunk/jcl/packages/c5/JclVersionControlExpertDLLC50.dof 2007-09-18 09:06:53 UTC (rev 2178)
+++ trunk/jcl/packages/c5/JclVersionControlExpertDLLC50.dof 2007-09-18 10:28:20 UTC (rev 2179)
@@ -2,8 +2,6 @@
UnitOutputDir=..\..\lib\c5
SearchPath=..\..\source
Conditionals=BCB
-[Additional]
-Options=-B
[Compiler]
PackageNoLink=1
[Linker]
Modified: trunk/jcl/packages/c5/template.dof
===================================================================
--- trunk/jcl/packages/c5/template.dof 2007-09-18 09:06:53 UTC (rev 2178)
+++ trunk/jcl/packages/c5/template.dof 2007-09-18 10:28:20 UTC (rev 2179)
@@ -2,8 +2,6 @@
UnitOutputDir=..\..\lib\c5
SearchPath=..\..\source
Conditionals=BCB
-[Additional]
-Options=-B
<%%% BEGIN LIBRARYONLY %%%>
[Compiler]
PackageNoLink=1
Modified: trunk/jcl/packages/d5/JclBaseExpertD50.dof
===================================================================
--- trunk/jcl/packages/d5/JclBaseExpertD50.dof 2007-09-18 09:06:53 UTC (rev 2178)
+++ trunk/jcl/packages/d5/JclBaseExpertD50.dof 2007-09-18 10:28:20 UTC (rev 2179)
@@ -1,6 +1,4 @@
[Directories]
UnitOutputDir=..\..\lib\d5
SearchPath=..\..\source;..\..\experts\common
-[Additional]
-Options=-B
Modified: trunk/jcl/packages/d5/JclD50.dof
===================================================================
--- trunk/jcl/packages/d5/JclD50.dof 2007-09-18 09:06:53 UTC (rev 2178)
+++ trunk/jcl/packages/d5/JclD50.dof 2007-09-18 10:28:20 UTC (rev 2179)
@@ -1,6 +1,4 @@
[Directories]
UnitOutputDir=..\..\lib\d5
SearchPath=..\..\source;..\..\experts\common
-[Additional]
-Options=-B
Modified: trunk/jcl/packages/d5/JclDebugExpertD50.dof
===================================================================
--- trunk/jcl/packages/d5/JclDebugExpertD50.dof 2007-09-18 09:06:53 UTC (rev 2178)
+++ trunk/jcl/packages/d5/JclDebugExpertD50.dof 2007-09-18 10:28:20 UTC (rev 2179)
@@ -1,6 +1,4 @@
[Directories]
UnitOutputDir=..\..\lib\d5
SearchPath=..\..\source;..\..\experts\common
-[Additional]
-Options=-B
Modified: trunk/jcl/packages/d5/JclDebugExpertDLLD50.dof
===================================================================
--- trunk/jcl/packages/d5/JclDebugExpertDLLD50.dof 2007-09-18 09:06:53 UTC (rev 2178)
+++ trunk/jcl/packages/d5/JclDebugExpertDLLD50.dof 2007-09-18 10:28:20 UTC (rev 2179)
@@ -1,8 +1,6 @@
[Directories]
UnitOutputDir=..\..\lib\d5
SearchPath=..\..\source;..\..\experts\common
-[Additional]
-Options=-B
[Compiler]
PackageNoLink=1
[Linker]
Modified: trunk/jcl/packages/d5/JclFavoriteFoldersExpertD50.dof
===================================================================
--- trunk/jcl/packages/d5/JclFavoriteFoldersExpertD50.dof 2007-09-18 09:06:53 UTC (rev 2178)
+++ trunk/jcl/packages/d5/JclFavoriteFoldersExpertD50.dof 2007-09-18 10:28:20 UTC (rev 2179)
@@ -1,6 +1,4 @@
[Directories]
UnitOutputDir=..\..\lib\d5
SearchPath=..\..\source;..\..\experts\common
-[Additional]
-Options=-B
Modified: trunk/jcl/packages/d5/JclFavoriteFoldersExpertDLLD50.dof
===================================================================
--- trunk/jcl/packages/d5/JclFavoriteFoldersExpertDLLD50.dof 2007-09-18 09:06:53 UTC (rev 2178)
+++ trunk/jcl/packages/d5/JclFavoriteFoldersExpertDLLD50.dof 2007-09-18 10:28:20 UTC (rev 2179)
@@ -1,8 +1,6 @@
[Directories]
UnitOutputDir=..\..\lib\d5
SearchPath=..\..\source;..\..\experts\common
-[Additional]
-Options=-B
[Compiler]
PackageNoLink=1
[Linker]
Modified: trunk/jcl/packages/d5/JclProjectAnalysisExpertD50.dof
===================================================================
--- trunk/jcl/packages/d5/JclProjectAnalysisExpertD50.dof 2007-09-18 09:06:53 UTC (rev 2178)
+++ trunk/jcl/packages/d5/JclProjectAnalysisExpertD50.dof 2007-09-18 10:28:20 UTC (rev 2179)
@@ -1,6 +1,4 @@
[Directories]
UnitOutputDir=..\..\lib\d5
SearchPath=..\..\source;..\..\experts\common
-[Additional]
-Options=-B
Modified: trunk/jcl/packages/d5/JclProjectAnalysisExpertDLLD50.dof
===================================================================
--- trunk/jcl/packages/d5/JclProjectAnalysisExpertDLLD50.dof 2007-09-18 09:06:53 UTC (rev 2178)
+++ trunk/jcl/packages/d5/JclProjectAnalysisExpertDLLD50.dof 2007-09-18 10:28:20 UTC (rev 2179)
@@ -1,8 +1,6 @@
[Directories]
UnitOutputDir=..\..\lib\d5
SearchPath=..\..\source;..\..\experts\common
-[Additional]
-Options=-B
[Compiler]
PackageNoLink=1
[Linker]
Modified: trunk/jcl/packages/d5/JclRepositoryExpertD50.dof
===================================================================
--- trunk/jcl/packages/d5/JclRepositoryExpertD50.dof 2007-09-18 09:06:53 UTC (rev 2178)
+++ trunk/jcl/packages/d5/JclRepositoryExpertD50.dof 2007-09-18 10:28:20 UTC (rev 2179)
@@ -1,6 +1,4 @@
[Directories]
UnitOutputDir=..\..\lib\d5
SearchPath=..\..\source;..\..\experts\common
-[Additional]
-Options=-B
Modified: trunk/jcl/packages/d5/JclRepositoryExpertDLLD50.dof
===================================================================
--- trunk/jcl/packages/d5/JclRepositoryExpertDLLD50.dof 2007-09-18 09:06:53 UTC (rev 2178)
+++ trunk/jcl/packages/d5/JclRepositoryExpertDLLD50.dof 2007-09-18 10:28:20 UTC (rev 2179)
@@ -1,8 +1,6 @@
[Directories]
UnitOutputDir=..\..\lib\d5
SearchPath=..\..\source;..\..\experts\common
-[Additional]
-Options=-B
[Compiler]
PackageNoLink=1
[Linker]
Modified: trunk/jcl/packages/d5/JclSIMDViewExpertD50.dof
===================================================================
--- trunk/jcl/packages/d5/JclSIMDViewExpertD50.dof 2007-09-18 09:06:53 UTC (rev 2178)
+++ trunk/jcl/packages/d5/JclSIMDViewExpertD50.dof 2007-09-18 10:28:20 UTC (rev 2179)
@@ -1,6 +1,4 @@
[Directories]
UnitOutputDir=..\..\lib\d5
SearchPath=..\..\source;..\..\experts\common
-[Additional]
-Options=-B
Modified: trunk/jcl/packages/d5/JclSIMDViewExpertDLLD50.dof
===================================================================
--- trunk/jcl/packages/d5/JclSIMDViewExpertDLLD50.dof 2007-09-18 09:06:53 UTC (rev 2178)
+++ trunk/jcl/packages/d5/JclSIMDViewExpertDLLD50.dof 2007-09-18 10:28:20 UTC (rev 2179)
@@ -1,8 +1,6 @@
[Directories]
UnitOutputDir=..\..\lib\d5
SearchPath=..\..\source;..\..\experts\common
-[Additional]
-Options=-B
[Compiler]
PackageNoLink=1
[Linker]
Modified: trunk/jcl/packages/d5/JclThreadNameExpertD50.dof
===================================================================
--- trunk/jcl/packages/d5/JclThreadNameExpertD50.dof 2007-09-18 09:06:53 UTC (rev 2178)
+++ trunk/jcl/packages/d5/JclThreadNameExpertD50.dof 2007-09-18 10:28:20 UTC (rev 2179)
@@ -1,6 +1,4 @@
[Directories]
UnitOutputDir=..\..\lib\d5
SearchPath=..\..\source;..\..\experts\common
-[Additional]
-Options=-B
Modified: trunk/jcl/packages/d5/JclThreadNameExpertDLLD50.dof
===================================================================
--- trunk/jcl/packages/d5/JclThreadNameExpertDLLD50.dof 2007-09-18 09:06:53 UTC (rev 2178)
+++ trunk/jcl/packages/d5/JclThreadNameExpertDLLD50.dof 2007-09-18 10:28:20 UTC (rev 2179)
@@ -1,8 +1,6 @@
[Directories]
UnitOutputDir=..\..\lib\d5
SearchPath=..\..\source;..\..\experts\common
-[Additional]
-Options=-B
[Compiler]
PackageNoLink=1
[Linker]
Modified: trunk/jcl/packages/d5/JclUsesExpertD50.dof
===================================================================
--- trunk/jcl/packages/d5/JclUsesExpertD50.dof 2007-09-18 09:06:53 UTC (rev 2178)
+++ trunk/jcl/packages/d5/JclUsesExpertD50.dof 2007-09-18 10:28:20 UTC (rev 2179)
@@ -1,6 +1,4 @@
[Directories]
UnitOutputDir=..\..\lib\d5
SearchPath=..\..\source;..\..\experts\common
-[Additional]
-Options=-B
Modified: trunk/jcl/packages/d5/JclUsesExpertDLLD50.dof
===================================================================
--- trunk/jcl/packages/d5/JclUsesExpertDLLD50.dof 2007-09-18 09:06:53 UTC (rev 2178)
+++ trunk/jcl/packages/d5/JclUsesExpertDLLD50.dof 2007-09-18 10:28:20 UTC (rev 2179)
@@ -1,8 +1,6 @@
[Directories]
UnitOutputDir=..\..\lib\d5
SearchPath=..\..\source;..\..\experts\common
-[Additional]
-Options=-B
[Compiler]
PackageNoLink=1
[Linker]
Modified: trunk/jcl/packages/d5/JclVersionControlExpertD50.dof
===================================================================
--- trunk/jcl/packages/d5/JclVersionControlExpertD50.dof 2007-09-18 09:06:53 UTC (rev 2178)
+++ trunk/jcl/packages/d5/JclVersionControlExpertD50.dof 2007-09-18 10:28:20 UTC (rev 2179)
@@ -1,6 +1,4 @@
[Directories]
UnitOutputDir=..\..\lib\d5
SearchPath=..\..\source;..\..\experts\common
-[Additional]
-Options=-B
Modified: trunk/jcl/packages/d5/JclVersionControlExpertDLLD50.dof
===================================================================
--- trunk/jcl/packages/d5/JclVersionControlExpertDLLD50.dof 2007-09-18 09:06:53 UTC (rev 2178)
+++ trunk/jcl/packages/d5/JclVersionControlExpertDLLD50.dof 2007-09-18 10:28:20 UTC (rev 2179)
@@ -1,8 +1,6 @@
[Directories]
UnitOutputDir=..\..\lib\d5
SearchPath=..\..\source;..\..\experts\common
-[Additional]
-Options=-B
[Compiler]
PackageNoLink=1
[Linker]
Modified: trunk/jcl/packages/d5/template.dof
===================================================================
--- trunk/jcl/packages/d5/template.dof 2007-09-18 09:06:53 UTC (rev 2178)
+++ trunk/jcl/packages/d5/template.dof 2007-09-18 10:28:20 UTC (rev 2179)
@@ -1,8 +1,6 @@
[Directories]
UnitOutputDir=..\..\lib\d5
SearchPath=..\..\source;..\..\experts\common
-[Additional]
-Options=-B
<%%% BEGIN LIBRARYONLY %%%>
[Compiler]
PackageNoLink=1
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ou...@us...> - 2007-09-18 09:07:11
|
Revision: 2178
http://jcl.svn.sourceforge.net/jcl/?rev=2178&view=rev
Author: outchy
Date: 2007-09-18 02:06:53 -0700 (Tue, 18 Sep 2007)
Log Message:
-----------
some fixes on svn:ignore properties for install and packages directories.
Modified Paths:
--------------
trunk/thirdparty/svn_cleaner/SvnCleaner.xml
Property Changed:
----------------
trunk/jcl/install/build/
trunk/jcl/install/prototypes/
trunk/jcl/packages/
trunk/jcl/packages/c5/
trunk/jcl/packages/c6/
trunk/jcl/packages/cs1/
trunk/jcl/packages/d10/
trunk/jcl/packages/d10.net/
trunk/jcl/packages/d11/
trunk/jcl/packages/d11.net/
trunk/jcl/packages/d5/
trunk/jcl/packages/d6/
trunk/jcl/packages/d7/
trunk/jcl/packages/d8/
trunk/jcl/packages/d9/
trunk/jcl/packages/d9.net/
trunk/jcl/packages/k3/
trunk/jcl/packages/xml/
Property changes on: trunk/jcl/install/build
___________________________________________________________________
Name: svn:ignore
+ *.drc
*.dcu
*.~*
__history
*.identcache
*.local
*.dproj
Property changes on: trunk/jcl/install/prototypes
___________________________________________________________________
Name: svn:ignore
+ *.~*
__history
Property changes on: trunk/jcl/packages
___________________________________________________________________
Name: svn:ignore
- *.local
*.drc
__history
*.~*
*.identcache
*.cfg
ModelSupport
*.mak
*.def
+ *.local
*.drc
__history
*.~*
*.identcache
*.cfg
Property changes on: trunk/jcl/packages/c5
___________________________________________________________________
Name: svn:ignore
- *.local
*.drc
__history
*.~*
*.identcache
*.cfg
ModelSupport
*.mak
*.def
+ *.drc
*.~*
*.cfg
*.mak
*.def
Property changes on: trunk/jcl/packages/c6
___________________________________________________________________
Name: svn:ignore
- *.local
*.drc
__history
*.~*
*.identcache
*.cfg
ModelSupport
*.mak
*.def
+ *.drc
*.~*
*.cfg
*.mak
*.def
Property changes on: trunk/jcl/packages/cs1
___________________________________________________________________
Name: svn:ignore
- *.local
*.drc
__history
*.~*
*.identcache
*.cfg
ModelSupport
*.mak
*.def
+ *.local
*.drc
__history
*.~*
*.identcache
*.cfg
ModelSupport
Property changes on: trunk/jcl/packages/d10
___________________________________________________________________
Name: svn:ignore
- *.local
*.drc
__history
*.~*
*.identcache
*.cfg
ModelSupport
*.mak
*.def
+ *.local
*.drc
__history
*.~*
*.identcache
*.cfg
ModelSupport
Property changes on: trunk/jcl/packages/d10.net
___________________________________________________________________
Name: svn:ignore
- *.local
*.drc
__history
*.~*
*.identcache
*.cfg
ModelSupport
*.mak
*.def
+ *.local
*.drc
__history
*.~*
*.identcache
ModelSupport
Property changes on: trunk/jcl/packages/d11
___________________________________________________________________
Name: svn:ignore
- *.local
*.drc
__history
*.~*
*.identcache
*.cfg
ModelSupport
*.mak
*.def
+ *.local
*.drc
__history
*.~*
*.identcache
*.cfg
ModelSupport
Property changes on: trunk/jcl/packages/d11.net
___________________________________________________________________
Name: svn:ignore
- *.local
*.drc
__history
*.~*
*.identcache
*.cfg
ModelSupport
*.mak
*.def
+ *.local
*.drc
__history
*.~*
*.identcache
ModelSupport
Property changes on: trunk/jcl/packages/d5
___________________________________________________________________
Name: svn:ignore
- *.local
*.drc
__history
*.~*
*.identcache
*.cfg
ModelSupport
*.mak
*.def
+ *.local
*.drc
__history
*.~*
*.identcache
*.cfg
ModelSupport
Property changes on: trunk/jcl/packages/d6
___________________________________________________________________
Name: svn:ignore
- *.local
*.drc
__history
*.~*
*.identcache
*.cfg
ModelSupport
*.mak
*.def
+ *.local
*.drc
__history
*.~*
*.identcache
*.cfg
ModelSupport
Property changes on: trunk/jcl/packages/d7
___________________________________________________________________
Name: svn:ignore
- *.local
*.drc
__history
*.~*
*.identcache
*.cfg
ModelSupport
*.mak
*.def
+ *.local
*.drc
__history
*.~*
*.identcache
*.cfg
ModelSupport
Property changes on: trunk/jcl/packages/d8
___________________________________________________________________
Name: svn:ignore
- *.local
*.drc
__history
*.~*
*.identcache
*.cfg
ModelSupport
*.mak
*.def
+ *.local
*.drc
__history
*.~*
*.identcache
*.cfg
ModelSupport
Property changes on: trunk/jcl/packages/d9
___________________________________________________________________
Name: svn:ignore
- *.local
*.drc
__history
*.~*
*.identcache
*.cfg
ModelSupport
*.mak
*.def
+ *.local
*.drc
__history
*.~*
*.identcache
*.cfg
ModelSupport
Property changes on: trunk/jcl/packages/d9.net
___________________________________________________________________
Name: svn:ignore
- *.local
*.drc
__history
*.~*
*.identcache
*.cfg
ModelSupport
*.mak
*.def
+ *.local
*.drc
__history
*.~*
*.identcache
ModelSupport
Property changes on: trunk/jcl/packages/k3
___________________________________________________________________
Name: svn:ignore
- *.local
*.drc
__history
*.~*
*.identcache
*.cfg
ModelSupport
*.mak
*.def
+ *.drc
*.~*
*.cfg
*.mak
*.def
Property changes on: trunk/jcl/packages/xml
___________________________________________________________________
Name: svn:ignore
- *.local
*.drc
__history
*.~*
*.identcache
*.cfg
ModelSupport
*.mak
*.def
Modified: trunk/thirdparty/svn_cleaner/SvnCleaner.xml
===================================================================
--- trunk/thirdparty/svn_cleaner/SvnCleaner.xml 2007-09-18 09:03:39 UTC (rev 2177)
+++ trunk/thirdparty/svn_cleaner/SvnCleaner.xml 2007-09-18 09:06:53 UTC (rev 2178)
@@ -2,6 +2,7 @@
<svncleaner root="../..">
<setting path="../.." mask="" recurse="yes" dironly="yes">
+ <!-- general properties for directories -->
<property name="bugtraq:logregex">
<value>[Mm]antis #?(\d+)(,? ?#?(\d+))+</value>
<value>(\d+)</value>
@@ -13,6 +14,7 @@
<value>http://homepages.codegear.com/jedi/issuetracker/view.php?id=%BUGID%</value>
</property>
+ <!-- general properties based on extensions -->
<setting path="" mask="*.pas *.cpp *.h *.dpr *.dpk *.inc *.mak *.fpc *.pl *.cs" recurse="yes" dironly="no">
<property name="svn:keywords">
<value>URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id</value>
@@ -59,6 +61,8 @@
</property>
</setting>
+ <!-- specific properties based on directories -->
+
<setting path="help" mask="" recurse="no" dironly="yes">
<property name="svn:ignore">
<value>*.doxdb</value>
@@ -116,7 +120,7 @@
</property>
</setting>
- <setting path="" mask="install install/build install/prototypes" recurse="no" dironly="yes">
+ <setting path="install" mask="" recurse="no" dironly="yes">
<property name="svn:ignore">
<value>*.drc</value>
<value>*.dcu</value>
@@ -126,91 +130,112 @@
<value>*.local</value>
<value>*.dproj</value>
</property>
- </setting>
- <setting path="install/ClxGui" mask="" recurse="no" dironly="yes">
- <property name="svn:ignore">
- <value>QJediGUIInstall.pas</value>
- <value>QJediGUIMain.pas</value>
- <value>QJediGUIReadme.pas</value>
- <value>*.dcu</value>
- <value>*.dpu</value>
- <value>*.~* </value>
- <value>__history</value>
- </property>
- </setting>
+ <setting path="" mask="build" recurse="no" dironly="yes">
+ <property name="svn:ignore">
+ <value>*.drc</value>
+ <value>*.dcu</value>
+ <value>*.~* </value>
+ <value>__history</value>
+ <value>*.identcache</value>
+ <value>*.local</value>
+ <value>*.dproj</value>
+ </property>
+ </setting>
- <setting path="install/VclGui" mask="" recurse="no" dironly="yes">
- <property name="svn:ignore">
- <value>JediGUIInstall.pas</value>
- <value>JediGUIMain.pas</value>
- <value>JediGUIReadme.pas</value>
- <value>*.dcu</value>
- <value>*.~* </value>
- <value>__history</value>
- </property>
- </setting>
+ <setting path="" mask="prototypes" recurse="no" dironly="yes">
+ <property name="svn:ignore">
+ <value>*.~* </value>
+ <value>__history</value>
+ </property>
+ </setting>
- <setting path="install/HeaderTest" mask="" recurse="no" dironly="yes">
- <property name="svn:ignore">
- <value>*.obj</value>
- <value>*.~* </value>
- <value>__history</value>
- </property>
- </setting>
+ <setting path="" mask="ClxGui" recurse="no" dironly="yes">
+ <property name="svn:ignore">
+ <value>QJediGUIInstall.pas</value>
+ <value>QJediGUIMain.pas</value>
+ <value>QJediGUIReadme.pas</value>
+ <value>*.dcu</value>
+ <value>*.dpu</value>
+ <value>*.~* </value>
+ <value>__history</value>
+ </property>
+ </setting>
- <setting path="lib" mask="d? d?? c? cs1" recurse="yes" dironly="yes">
- <property name="svn:ignore">
- <value>*.dcu</value>
- <value>*.ddp</value>
- <value>*.dcp</value>
- <value>*.lib</value>
- <value>*.res</value>
- <value>*.bpi</value>
- <value>*.obj</value>
- </property>
- </setting>
+ <setting path="" mask="VclGui" recurse="no" dironly="yes">
+ <property name="svn:ignore">
+ <value>JediGUIInstall.pas</value>
+ <value>JediGUIMain.pas</value>
+ <value>JediGUIReadme.pas</value>
+ <value>*.dcu</value>
+ <value>*.~* </value>
+ <value>__history</value>
+ </property>
+ </setting>
- <setting path="lib" mask="d?/debug d??/debug c?/debug" recurse="yes" dironly="yes">
- <property name="svn:ignore">
- <value>*.dcu</value>
- <value>*.obj</value>
- <value>*.res</value>
- </property>
+ <setting path="" mask="HeaderTest" recurse="no" dironly="yes">
+ <property name="svn:ignore">
+ <value>*.obj</value>
+ <value>*.~* </value>
+ <value>__history</value>
+ </property>
+ </setting>
</setting>
- <setting path="lib" mask="k3" recurse="yes" dironly="yes">
- <property name="svn:ignore">
- <value>*.dcu</value>
- <value>*.dpu</value>
- <value>*.dcp</value>
- <value>*.res</value>
- </property>
- </setting>
+ <setting path="lib" mask="" recurse="no" dironly="no">
+ <setting path="" mask="d? d?? c? cs1" recurse="no" dironly="yes">
+ <property name="svn:ignore">
+ <value>*.dcu</value>
+ <value>*.ddp</value>
+ <value>*.dcp</value>
+ <value>*.lib</value>
+ <value>*.res</value>
+ <value>*.bpi</value>
+ <value>*.obj</value>
+ </property>
+ </setting>
- <setting path="lib" mask="k3/debug" recurse="yes" dironly="yes">
- <property name="svn:ignore">
- <value>*.dcu</value>
- <value>*.dpu</value>
- <value>*.res</value>
- </property>
- </setting>
+ <setting path="" mask="d?/debug d??/debug c?/debug" recurse="yes" dironly="yes">
+ <property name="svn:ignore">
+ <value>*.dcu</value>
+ <value>*.obj</value>
+ <value>*.res</value>
+ </property>
+ </setting>
- <setting path="lib" mask="d?.net d??.net" recurse="yes" dironly="yes">
- <property name="svn:ignore">
- <value>*.dcuil</value>
- <value>*.dll</value>
- <value>*.pdb</value>
- </property>
- </setting>
+ <setting path="" mask="k3" recurse="no" dironly="yes">
+ <property name="svn:ignore">
+ <value>*.dcu</value>
+ <value>*.dpu</value>
+ <value>*.dcp</value>
+ <value>*.res</value>
+ </property>
+ </setting>
- <setting path="lib" mask="d?.net/debug d??.net/debug" recurse="yes" dironly="yes">
- <property name="svn:ignore">
- <value>*.dcuil</value>
- </property>
+ <setting path="" mask="k3/debug" recurse="yes" dironly="yes">
+ <property name="svn:ignore">
+ <value>*.dcu</value>
+ <value>*.dpu</value>
+ <value>*.res</value>
+ </property>
+ </setting>
+
+ <setting path="" mask="d?.net d??.net" recurse="no" dironly="yes">
+ <property name="svn:ignore">
+ <value>*.dcuil</value>
+ <value>*.dll</value>
+ <value>*.pdb</value>
+ </property>
+ </setting>
+
+ <setting path="" mask="d?.net/debug d??.net/debug" recurse="yes" dironly="yes">
+ <property name="svn:ignore">
+ <value>*.dcuil</value>
+ </property>
+ </setting>
</setting>
- <setting path="packages" mask="" recurse="yes" dironly="yes">
+ <setting path="packages" mask="" recurse="no" dironly="yes">
<property name="svn:ignore">
<value>*.local</value>
<value>*.drc</value>
@@ -218,10 +243,40 @@
<value>*.~*</value>
<value>*.identcache</value>
<value>*.cfg</value>
- <value>ModelSupport</value>
- <value>*.mak</value>
- <value>*.def</value>
</property>
+
+ <setting path="" mask="c? k?" recurse="no" dironly="yes">
+ <property name="svn:ignore">
+ <value>*.drc</value>
+ <value>*.~*</value>
+ <value>*.cfg</value>
+ <value>*.mak</value>
+ <value>*.def</value>
+ </property>
+ </setting>
+
+ <setting path="" mask="d? d?? cs1" recurse="no" dironly="yes">
+ <property name="svn:ignore">
+ <value>*.local</value>
+ <value>*.drc</value>
+ <value>__history</value>
+ <value>*.~*</value>
+ <value>*.identcache</value>
+ <value>*.cfg</value>
+ <value>ModelSupport</value>
+ </property>
+ </setting>
+
+ <setting path="" mask="d?.net d??.net" recurse="no" dironly="yes">
+ <property name="svn:ignore">
+ <value>*.local</value>
+ <value>*.drc</value>
+ <value>__history</value>
+ <value>*.~*</value>
+ <value>*.identcache</value>
+ <value>ModelSupport</value>
+ </property>
+ </setting>
</setting>
<setting path="source" mask="" recurse="no" dironly="yes">
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ou...@us...> - 2007-09-18 09:03:41
|
Revision: 2177
http://jcl.svn.sourceforge.net/jcl/?rev=2177&view=rev
Author: outchy
Date: 2007-09-18 02:03:39 -0700 (Tue, 18 Sep 2007)
Log Message:
-----------
support for comments and empty settings
added header
Modified Paths:
--------------
trunk/thirdparty/svn_cleaner/SvnCleaner.dpr
Modified: trunk/thirdparty/svn_cleaner/SvnCleaner.dpr
===================================================================
--- trunk/thirdparty/svn_cleaner/SvnCleaner.dpr 2007-09-18 08:31:16 UTC (rev 2176)
+++ trunk/thirdparty/svn_cleaner/SvnCleaner.dpr 2007-09-18 09:03:39 UTC (rev 2177)
@@ -1,3 +1,34 @@
+{**************************************************************************************************}
+{ }
+{ Project JEDI Code Library (JCL) }
+{ }
+{ The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); }
+{ you may not use this file except in compliance with the License. You may obtain a copy of the }
+{ License at http://www.mozilla.org/MPL/ }
+{ }
+{ Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF }
+{ ANY KIND, either express or implied. See the License for the specific language governing rights }
+{ and limitations under the License. }
+{ }
+{ The Original Code is SvnCleaner.dpr. }
+{ }
+{ The Initial Developer of the Original Code is Florent Ouchet. }
+{ Portions created by Florent Ouchet are Copyright (C) of Florent Ouchet. All rights reserved. }
+{ }
+{ Contributor(s): }
+{ }
+{**************************************************************************************************}
+{ }
+{ Subversion repository cleaner. }
+{ }
+{**************************************************************************************************}
+{ }
+{ Last modified: $Date:: $ }
+{ Revision: $Rev:: $ }
+{ Author: $Author:: $ }
+{ }
+{**************************************************************************************************}
+
program SvnCleaner;
{$APPTYPE CONSOLE}
@@ -110,6 +141,7 @@
Result.Value := Result.Value + AnsiLineBreak + ValueElem.Value;
end
else
+ if ValueElem.Name <> '' then
raise Exception.CreateFmt('unknown item "%s"', [ValueElem.Name]);
end;
end;
@@ -169,10 +201,14 @@
MySetting.Properties[High(MySetting.Properties)] := LoadProperty(SubElem);
end
else
+ if SubElem.Name <> '' then
raise Exception.CreateFmt('unknown item "%s"', [SubElem.Name]);
end;
- SetLength(FSettings, Length(FSettings) + 1);
- FSettings[High(FSettings)] := MySetting;
+ if Length(MySetting.Properties) > 0 then
+ begin
+ SetLength(FSettings, Length(FSettings) + 1);
+ FSettings[High(FSettings)] := MySetting;
+ end;
end;
var
Elem: TJclSimpleXMLElem;
@@ -194,6 +230,7 @@
if Elem.Name = 'setting' then
LoadSetting(Elem, '.')
else
+ if Elem.Name <> '' then
raise Exception.CreateFmt('Unknown elem name "%s"', [Elem.Name]);
end;
end;
@@ -349,28 +386,32 @@
for TargetIndex := 0 to RootNode.Items.Count - 1 do
begin
TargetNode := RootNode.Items.Item[TargetIndex];
- if TargetNode.Name <> 'target' then
- raise Exception.Create('expecting target node');
- for EntryIndex := 0 to TargetNode.Items.Count - 1 do
+ if TargetNode.Name = 'target' then
begin
- EntryNode := TargetNode.Items.Item[EntryIndex];
- if EntryNode.Name <> 'entry' then
- raise Exception.Create('expecting entry node');
- PathProp := EntryNode.Properties.ItemNamed['path'];
- if not Assigned(PathProp) then
- raise Exception.Create('no path node');
- for WcStatusIndex := 0 to EntryNode.Items.Count - 1 do
+ for EntryIndex := 0 to TargetNode.Items.Count - 1 do
begin
- WcStatusNode := EntryNode.Items.Item[WcStatusIndex];
- if not Assigned(WcStatusNode) then
- raise Exception.Create('expecting wc-status node');
- ItemProp := WcStatusNode.Properties.ItemNamed['item'];
- if not Assigned(ItemProp) then
- raise Exception.Create('expecting item prop');
- if (ItemProp.Value <> 'unversioned') and (PathProp.Value <> ItemName) then
- CleanItem(PathProp.Value);
+ EntryNode := TargetNode.Items.Item[EntryIndex];
+ if EntryNode.Name <> 'entry' then
+ raise Exception.Create('expecting entry node');
+ PathProp := EntryNode.Properties.ItemNamed['path'];
+ if not Assigned(PathProp) then
+ raise Exception.Create('no path node');
+ for WcStatusIndex := 0 to EntryNode.Items.Count - 1 do
+ begin
+ WcStatusNode := EntryNode.Items.Item[WcStatusIndex];
+ if not Assigned(WcStatusNode) then
+ raise Exception.Create('expecting wc-status node');
+ ItemProp := WcStatusNode.Properties.ItemNamed['item'];
+ if not Assigned(ItemProp) then
+ raise Exception.Create('expecting item prop');
+ if (ItemProp.Value <> 'unversioned') and (PathProp.Value <> ItemName) then
+ CleanItem(PathProp.Value);
+ end;
end;
- end;
+ end
+ else
+ if TargetNode.Name <> '' then
+ raise Exception.Create('expecting target node');
end;
finally
DirectoryXml.Free;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ou...@us...> - 2007-09-18 08:32:06
|
Revision: 2176
http://jcl.svn.sourceforge.net/jcl/?rev=2176&view=rev
Author: outchy
Date: 2007-09-18 01:31:16 -0700 (Tue, 18 Sep 2007)
Log Message:
-----------
removing tab chars
Modified Paths:
--------------
trunk/thirdparty/svn_cleaner/SvnCleaner.xml
Modified: trunk/thirdparty/svn_cleaner/SvnCleaner.xml
===================================================================
--- trunk/thirdparty/svn_cleaner/SvnCleaner.xml 2007-09-17 21:41:02 UTC (rev 2175)
+++ trunk/thirdparty/svn_cleaner/SvnCleaner.xml 2007-09-18 08:31:16 UTC (rev 2176)
@@ -2,290 +2,290 @@
<svncleaner root="../..">
<setting path="../.." mask="" recurse="yes" dironly="yes">
- <property name="bugtraq:logregex">
- <value>[Mm]antis #?(\d+)(,? ?#?(\d+))+</value>
- <value>(\d+)</value>
- </property>
- <property name="bugtraq:message">
- <value>(Mantis #%BUGID%)</value>
- </property>
- <property name="bugtraq:url">
- <value>http://homepages.codegear.com/jedi/issuetracker/view.php?id=%BUGID%</value>
- </property>
+ <property name="bugtraq:logregex">
+ <value>[Mm]antis #?(\d+)(,? ?#?(\d+))+</value>
+ <value>(\d+)</value>
+ </property>
+ <property name="bugtraq:message">
+ <value>(Mantis #%BUGID%)</value>
+ </property>
+ <property name="bugtraq:url">
+ <value>http://homepages.codegear.com/jedi/issuetracker/view.php?id=%BUGID%</value>
+ </property>
- <setting path="" mask="*.pas *.cpp *.h *.dpr *.dpk *.inc *.mak *.fpc *.pl *.cs" recurse="yes" dironly="no">
- <property name="svn:keywords">
- <value>URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id</value>
- </property>
- </setting>
- <setting path="" mask="*.pas *.cpp *.inc *.h *.dpr *.dpk *.bpr *.bpk *.bpf *.gmk *.bmk *.def *.conf *.sh *.txt *.bat *.xml *.html *.css *.exc *.bpg *.bdsgroup *.bdsproj *.groupproj *.dof *.kof *.rc *.dfm *.xfm *.dtx *.dsf *.dox *.dfg *.ini *.fpc *.mak *.int *.imp *.pl *.cmd *.manifest *.iss *.cs *.resx" recurse="yes" dironly="no">
- <property name="svn:eol-style">
- <value>native</value>
- </property>
- </setting>
- <setting path="" mask="*.zip *.res *.RES *.dcr *.exe *.dll *.obj *.tlb *.edi *.resources" recurse="yes" dironly="no">
- <property name="svn:mime-type">
- <value>application/octet-stream</value>
- </property>
- </setting>
- <setting path="" mask="*.jpg" recurse="yes" dironly="no">
- <property name="svn:mime-type">
- <value>image/jpeg</value>
- </property>
- </setting>
- <setting path="" mask="*.ico" recurse="yes" dironly="no">
- <property name="svn:mime-type">
- <value>image/x-icon</value>
- </property>
- </setting>
- <setting path="" mask="*.bmp" recurse="yes" dironly="no">
- <property name="svn:mime-type">
- <value>image/bmp</value>
- </property>
- </setting>
- <setting path="" mask="*.txt" recurse="yes" dironly="no">
- <property name="svn:mime-type">
+ <setting path="" mask="*.pas *.cpp *.h *.dpr *.dpk *.inc *.mak *.fpc *.pl *.cs" recurse="yes" dironly="no">
+ <property name="svn:keywords">
+ <value>URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id</value>
+ </property>
+ </setting>
+ <setting path="" mask="*.pas *.cpp *.inc *.h *.dpr *.dpk *.bpr *.bpk *.bpf *.gmk *.bmk *.def *.conf *.sh *.txt *.bat *.xml *.html *.css *.exc *.bpg *.bdsgroup *.bdsproj *.groupproj *.dof *.kof *.rc *.dfm *.xfm *.dtx *.dsf *.dox *.dfg *.ini *.fpc *.mak *.int *.imp *.pl *.cmd *.manifest *.iss *.cs *.resx" recurse="yes" dironly="no">
+ <property name="svn:eol-style">
+ <value>native</value>
+ </property>
+ </setting>
+ <setting path="" mask="*.zip *.res *.RES *.dcr *.exe *.dll *.obj *.tlb *.edi *.resources" recurse="yes" dironly="no">
+ <property name="svn:mime-type">
+ <value>application/octet-stream</value>
+ </property>
+ </setting>
+ <setting path="" mask="*.jpg" recurse="yes" dironly="no">
+ <property name="svn:mime-type">
+ <value>image/jpeg</value>
+ </property>
+ </setting>
+ <setting path="" mask="*.ico" recurse="yes" dironly="no">
+ <property name="svn:mime-type">
+ <value>image/x-icon</value>
+ </property>
+ </setting>
+ <setting path="" mask="*.bmp" recurse="yes" dironly="no">
+ <property name="svn:mime-type">
+ <value>image/bmp</value>
+ </property>
+ </setting>
+ <setting path="" mask="*.txt" recurse="yes" dironly="no">
+ <property name="svn:mime-type">
<value>text/plain</value>
- </property>
- </setting>
- <setting path="" mask="*.tar.gz" recurse="yes" dironly="no">
- <property name="svn:mime-type">
- <value>application/x-compressed-tar</value>
- </property>
- </setting>
- <setting path="" mask="*.sh *.pl" recurse="yes" dironly="no">
- <property name="svn:executable">
- <value>*</value>
- </property>
- </setting>
+ </property>
+ </setting>
+ <setting path="" mask="*.tar.gz" recurse="yes" dironly="no">
+ <property name="svn:mime-type">
+ <value>application/x-compressed-tar</value>
+ </property>
+ </setting>
+ <setting path="" mask="*.sh *.pl" recurse="yes" dironly="no">
+ <property name="svn:executable">
+ <value>*</value>
+ </property>
+ </setting>
- <setting path="help" mask="" recurse="no" dironly="yes">
- <property name="svn:ignore">
- <value>*.doxdb</value>
- </property>
- </setting>
+ <setting path="help" mask="" recurse="no" dironly="yes">
+ <property name="svn:ignore">
+ <value>*.doxdb</value>
+ </property>
+ </setting>
- <setting path="qa/automated/dunit" mask="" recurse="no" dironly="yes">
- <property name="svn:ignore">
- <value>*.exe</value>
- <value>dunit.ini</value>
- </property>
- </setting>
+ <setting path="qa/automated/dunit" mask="" recurse="no" dironly="yes">
+ <property name="svn:ignore">
+ <value>*.exe</value>
+ <value>dunit.ini</value>
+ </property>
+ </setting>
- <setting path="jcl" mask="" recurse="no" dironly="yes">
- <property name="svn:ignore">
- <value>help</value>
- </property>
+ <setting path="jcl" mask="" recurse="no" dironly="yes">
+ <property name="svn:ignore">
+ <value>help</value>
+ </property>
- <setting path="bin" mask="" recurse="no" dironly="yes">
- <property name="svn:ignore">
- <value>*.exe</value>
- <value>*.log</value>
- <value>*.ini</value>
- <value>*.dll</value>
- <value>*.pdb</value>
- <value>QJediInstaller</value>
- </property>
- </setting>
+ <setting path="bin" mask="" recurse="no" dironly="yes">
+ <property name="svn:ignore">
+ <value>*.exe</value>
+ <value>*.log</value>
+ <value>*.ini</value>
+ <value>*.dll</value>
+ <value>*.pdb</value>
+ <value>QJediInstaller</value>
+ </property>
+ </setting>
- <setting path="devtools" mask="jpp" recurse="no" dironly="no">
- <property name="svn:mime-type">
- <value>application/octet-stream</value>
- </property>
- <property name="svn:executable">
- <value>*</value>
- </property>
- </setting>
+ <setting path="devtools" mask="jpp" recurse="no" dironly="no">
+ <property name="svn:mime-type">
+ <value>application/octet-stream</value>
+ </property>
+ <property name="svn:executable">
+ <value>*</value>
+ </property>
+ </setting>
- <setting path="" mask="examples*" recurse="yes" dironly="yes">
- <property name="svn:ignore">
- <value>*.identcache</value>
- <value>*.local</value>
- <value>*.cfg</value>
- <value>*.drc</value>
- <value>*.dcu</value>
- </property>
- </setting>
+ <setting path="" mask="examples*" recurse="yes" dironly="yes">
+ <property name="svn:ignore">
+ <value>*.identcache</value>
+ <value>*.local</value>
+ <value>*.cfg</value>
+ <value>*.drc</value>
+ <value>*.dcu</value>
+ </property>
+ </setting>
- <setting path="experts" mask="*" recurse="yes" dironly="yes">
- <property name="svn:ignore">
- <value>*.~*</value>
- <value>*.hpp</value>
- <value>*.dcu</value>
- <value>__history</value>
- </property>
- </setting>
+ <setting path="experts" mask="*" recurse="yes" dironly="yes">
+ <property name="svn:ignore">
+ <value>*.~*</value>
+ <value>*.hpp</value>
+ <value>*.dcu</value>
+ <value>__history</value>
+ </property>
+ </setting>
- <setting path="" mask="install install/build install/prototypes" recurse="no" dironly="yes">
- <property name="svn:ignore">
- <value>*.drc</value>
- <value>*.dcu</value>
- <value>*.~* </value>
- <value>__history</value>
- <value>*.identcache</value>
- <value>*.local</value>
- <value>*.dproj</value>
- </property>
- </setting>
+ <setting path="" mask="install install/build install/prototypes" recurse="no" dironly="yes">
+ <property name="svn:ignore">
+ <value>*.drc</value>
+ <value>*.dcu</value>
+ <value>*.~* </value>
+ <value>__history</value>
+ <value>*.identcache</value>
+ <value>*.local</value>
+ <value>*.dproj</value>
+ </property>
+ </setting>
- <setting path="install/ClxGui" mask="" recurse="no" dironly="yes">
- <property name="svn:ignore">
- <value>QJediGUIInstall.pas</value>
- <value>QJediGUIMain.pas</value>
- <value>QJediGUIReadme.pas</value>
- <value>*.dcu</value>
- <value>*.dpu</value>
- <value>*.~* </value>
- <value>__history</value>
- </property>
- </setting>
+ <setting path="install/ClxGui" mask="" recurse="no" dironly="yes">
+ <property name="svn:ignore">
+ <value>QJediGUIInstall.pas</value>
+ <value>QJediGUIMain.pas</value>
+ <value>QJediGUIReadme.pas</value>
+ <value>*.dcu</value>
+ <value>*.dpu</value>
+ <value>*.~* </value>
+ <value>__history</value>
+ </property>
+ </setting>
- <setting path="install/VclGui" mask="" recurse="no" dironly="yes">
- <property name="svn:ignore">
- <value>JediGUIInstall.pas</value>
- <value>JediGUIMain.pas</value>
- <value>JediGUIReadme.pas</value>
- <value>*.dcu</value>
- <value>*.~* </value>
- <value>__history</value>
- </property>
- </setting>
+ <setting path="install/VclGui" mask="" recurse="no" dironly="yes">
+ <property name="svn:ignore">
+ <value>JediGUIInstall.pas</value>
+ <value>JediGUIMain.pas</value>
+ <value>JediGUIReadme.pas</value>
+ <value>*.dcu</value>
+ <value>*.~* </value>
+ <value>__history</value>
+ </property>
+ </setting>
- <setting path="install/HeaderTest" mask="" recurse="no" dironly="yes">
- <property name="svn:ignore">
- <value>*.obj</value>
- <value>*.~* </value>
- <value>__history</value>
- </property>
- </setting>
+ <setting path="install/HeaderTest" mask="" recurse="no" dironly="yes">
+ <property name="svn:ignore">
+ <value>*.obj</value>
+ <value>*.~* </value>
+ <value>__history</value>
+ </property>
+ </setting>
- <setting path="lib" mask="d? d?? c? cs1" recurse="yes" dironly="yes">
- <property name="svn:ignore">
- <value>*.dcu</value>
- <value>*.ddp</value>
- <value>*.dcp</value>
- <value>*.lib</value>
- <value>*.res</value>
- <value>*.bpi</value>
- <value>*.obj</value>
- </property>
- </setting>
+ <setting path="lib" mask="d? d?? c? cs1" recurse="yes" dironly="yes">
+ <property name="svn:ignore">
+ <value>*.dcu</value>
+ <value>*.ddp</value>
+ <value>*.dcp</value>
+ <value>*.lib</value>
+ <value>*.res</value>
+ <value>*.bpi</value>
+ <value>*.obj</value>
+ </property>
+ </setting>
- <setting path="lib" mask="d?/debug d??/debug c?/debug" recurse="yes" dironly="yes">
- <property name="svn:ignore">
- <value>*.dcu</value>
- <value>*.obj</value>
- <value>*.res</value>
- </property>
- </setting>
+ <setting path="lib" mask="d?/debug d??/debug c?/debug" recurse="yes" dironly="yes">
+ <property name="svn:ignore">
+ <value>*.dcu</value>
+ <value>*.obj</value>
+ <value>*.res</value>
+ </property>
+ </setting>
- <setting path="lib" mask="k3" recurse="yes" dironly="yes">
- <property name="svn:ignore">
- <value>*.dcu</value>
- <value>*.dpu</value>
- <value>*.dcp</value>
- <value>*.res</value>
- </property>
- </setting>
+ <setting path="lib" mask="k3" recurse="yes" dironly="yes">
+ <property name="svn:ignore">
+ <value>*.dcu</value>
+ <value>*.dpu</value>
+ <value>*.dcp</value>
+ <value>*.res</value>
+ </property>
+ </setting>
- <setting path="lib" mask="k3/debug" recurse="yes" dironly="yes">
- <property name="svn:ignore">
- <value>*.dcu</value>
- <value>*.dpu</value>
- <value>*.res</value>
- </property>
- </setting>
+ <setting path="lib" mask="k3/debug" recurse="yes" dironly="yes">
+ <property name="svn:ignore">
+ <value>*.dcu</value>
+ <value>*.dpu</value>
+ <value>*.res</value>
+ </property>
+ </setting>
- <setting path="lib" mask="d?.net d??.net" recurse="yes" dironly="yes">
- <property name="svn:ignore">
- <value>*.dcuil</value>
- <value>*.dll</value>
- <value>*.pdb</value>
- </property>
- </setting>
+ <setting path="lib" mask="d?.net d??.net" recurse="yes" dironly="yes">
+ <property name="svn:ignore">
+ <value>*.dcuil</value>
+ <value>*.dll</value>
+ <value>*.pdb</value>
+ </property>
+ </setting>
- <setting path="lib" mask="d?.net/debug d??.net/debug" recurse="yes" dironly="yes">
- <property name="svn:ignore">
- <value>*.dcuil</value>
- </property>
- </setting>
+ <setting path="lib" mask="d?.net/debug d??.net/debug" recurse="yes" dironly="yes">
+ <property name="svn:ignore">
+ <value>*.dcuil</value>
+ </property>
+ </setting>
- <setting path="packages" mask="" recurse="yes" dironly="yes">
- <property name="svn:ignore">
- <value>*.local</value>
- <value>*.drc</value>
- <value>__history</value>
- <value>*.~*</value>
- <value>*.identcache</value>
- <value>*.cfg</value>
- <value>ModelSupport</value>
- <value>*.mak</value>
- <value>*.def</value>
- </property>
- </setting>
+ <setting path="packages" mask="" recurse="yes" dironly="yes">
+ <property name="svn:ignore">
+ <value>*.local</value>
+ <value>*.drc</value>
+ <value>__history</value>
+ <value>*.~*</value>
+ <value>*.identcache</value>
+ <value>*.cfg</value>
+ <value>ModelSupport</value>
+ <value>*.mak</value>
+ <value>*.def</value>
+ </property>
+ </setting>
- <setting path="source" mask="" recurse="no" dironly="yes">
- <property name="svn:ignore">
- <value>jclc5.inc</value>
- <value>jclc6.inc</value>
- <value>jcld5.inc</value>
- <value>jcld6.inc</value>
- <value>jcld7.inc</value>
- <value>jclcs1.inc</value>
- <value>jcld8.inc</value>
- <value>jcld9.inc</value>
- <value>jcld9.net.inc</value>
- <value>jcld10.inc</value>
- <value>jcld10.net.inc</value>
- <value>jclkd3.inc</value>
- <value>jclkc3.inc</value>
- <value>jcld11.inc</value>
- <value>jcld11.net.inc</value>
- </property>
+ <setting path="source" mask="" recurse="no" dironly="yes">
+ <property name="svn:ignore">
+ <value>jclc5.inc</value>
+ <value>jclc6.inc</value>
+ <value>jcld5.inc</value>
+ <value>jcld6.inc</value>
+ <value>jcld7.inc</value>
+ <value>jclcs1.inc</value>
+ <value>jcld8.inc</value>
+ <value>jcld9.inc</value>
+ <value>jcld9.net.inc</value>
+ <value>jcld10.inc</value>
+ <value>jcld10.net.inc</value>
+ <value>jclkd3.inc</value>
+ <value>jclkc3.inc</value>
+ <value>jcld11.inc</value>
+ <value>jcld11.net.inc</value>
+ </property>
- <setting path="" mask="*" recurse="no" dironly="yes">
- <property name="svn:ignore">
- <value>*.~*</value>
- <value>*.hpp</value>
- <value>*.dcu</value>
- <value>__history</value>
- </property>
- </setting>
+ <setting path="" mask="*" recurse="no" dironly="yes">
+ <property name="svn:ignore">
+ <value>*.~*</value>
+ <value>*.hpp</value>
+ <value>*.dcu</value>
+ <value>__history</value>
+ </property>
+ </setting>
- <setting path="prototypes" mask="*" recurse="no" dironly="yes">
- <property name="svn:ignore">
- <value>*.~*</value>
- <value>__history</value>
- </property>
- </setting>
+ <setting path="prototypes" mask="*" recurse="no" dironly="yes">
+ <property name="svn:ignore">
+ <value>*.~*</value>
+ <value>__history</value>
+ </property>
+ </setting>
- <setting path="windows/obj/pcre" mask="" recurse="no" dironly="yes">
+ <setting path="windows/obj/pcre" mask="" recurse="no" dironly="yes">
<property name="svn:ignore">
- <value>pcre_default_tables.c</value>
- </property>
- </setting>
- </setting>
+ <value>pcre_default_tables.c</value>
+ </property>
+ </setting>
+ </setting>
- </setting>
+ </setting>
- <setting path="thirdparty/svn_cleaner" mask="" recurse="no" dironly="yes">
- <property name="svn:ignore">
- <value>*.exe</value>
- <value>*.dproj</value>
- <value>*.local</value>
- <value>*.identcache</value>
- <value>*.prop</value>
- </property>
- </setting>
+ <setting path="thirdparty/svn_cleaner" mask="" recurse="no" dironly="yes">
+ <property name="svn:ignore">
+ <value>*.exe</value>
+ <value>*.dproj</value>
+ <value>*.local</value>
+ <value>*.identcache</value>
+ <value>*.prop</value>
+ </property>
+ </setting>
- <setting path="thirdparty/unicode_data_extractor" mask="" recurse="no" dironly="yes">
- <property name="svn:ignore">
- <value>CaseFolding.txt</value>
- <value>SpecialCasing.txt</value>
- <value>UnicodeData.txt</value>
- <value>UDExtract.exe</value>
- <value>JclUnicode.rc</value>
- </property>
- </setting>
+ <setting path="thirdparty/unicode_data_extractor" mask="" recurse="no" dironly="yes">
+ <property name="svn:ignore">
+ <value>CaseFolding.txt</value>
+ <value>SpecialCasing.txt</value>
+ <value>UnicodeData.txt</value>
+ <value>UDExtract.exe</value>
+ <value>JclUnicode.rc</value>
+ </property>
+ </setting>
</setting>
</svncleaner>
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ou...@us...> - 2007-09-17 21:41:10
|
Revision: 2175
http://jcl.svn.sourceforge.net/jcl/?rev=2175&view=rev
Author: outchy
Date: 2007-09-17 14:41:02 -0700 (Mon, 17 Sep 2007)
Log Message:
-----------
repository cleaning:
- standardization of unit headers
- new tool to clean subversion properties in trunk/thirdparty/svn_cleaner
Modified Paths:
--------------
trunk/help/Hardlinks.dtx
trunk/help/IncludedFiles.dtx
trunk/help/pcre.dtx
trunk/jcl/examples/windows/edisdk/vb5/Form1.frm
trunk/jcl/examples/windows/edisdk/vb5/Project1.vbp
trunk/jcl/examples/windows/edisdk/vb5/Project1.vbw
trunk/jcl/experts/common/JclOtaActionConfigureSheet.pas
trunk/jcl/experts/common/JclOtaConfigurationForm.pas
trunk/jcl/experts/common/JclOtaConsts.pas
trunk/jcl/experts/common/JclOtaExceptionForm.pas
trunk/jcl/experts/common/JclOtaResources.pas
trunk/jcl/experts/common/JclOtaUtils.pas
trunk/jcl/experts/common/JclOtaWizardForm.pas
trunk/jcl/experts/common/JclOtaWizardFrame.pas
trunk/jcl/experts/debug/JclDebugThread.pas
trunk/jcl/experts/debug/converter/JclDebugIdeConfigFrame.dfm
trunk/jcl/experts/debug/converter/JclDebugIdeConfigFrame.pas
trunk/jcl/experts/debug/converter/JclDebugIdeImpl.pas
trunk/jcl/experts/debug/converter/JclDebugIdeResult.pas
trunk/jcl/experts/debug/dialog/CreateStdDialogs.dpr
trunk/jcl/experts/debug/dialog/ExceptDlg.Delphi32.pas
trunk/jcl/experts/debug/dialog/ExceptDlg.pas
trunk/jcl/experts/debug/dialog/ExceptDlgMail.pas
trunk/jcl/experts/debug/dialog/JclOtaExcDlgFileFrame.pas
trunk/jcl/experts/debug/dialog/JclOtaExcDlgFormFrame.pas
trunk/jcl/experts/debug/dialog/JclOtaExcDlgIgnoreFrame.pas
trunk/jcl/experts/debug/dialog/JclOtaExcDlgRepository.pas
trunk/jcl/experts/debug/dialog/JclOtaExcDlgSystemFrame.pas
trunk/jcl/experts/debug/dialog/JclOtaExcDlgTraceFrame.pas
trunk/jcl/experts/debug/dialog/JclOtaExcDlgWizard.pas
trunk/jcl/experts/debug/dialog/JclOtaRepositoryReg.pas
trunk/jcl/experts/debug/dialog/JclOtaRepositoryUtils.pas
trunk/jcl/experts/debug/dialog/JclOtaTemplates.pas
trunk/jcl/experts/debug/simdview/JclSIMDCpuInfo.pas
trunk/jcl/experts/debug/simdview/JclSIMDModifyForm.pas
trunk/jcl/experts/debug/simdview/JclSIMDTestBCB.cpp
trunk/jcl/experts/debug/simdview/JclSIMDTestBCBProject.bpr
trunk/jcl/experts/debug/simdview/JclSIMDTestDelphi.dpr
trunk/jcl/experts/debug/simdview/JclSIMDUtils.pas
trunk/jcl/experts/debug/simdview/JclSIMDView.pas
trunk/jcl/experts/debug/simdview/JclSIMDViewForm.pas
trunk/jcl/experts/debug/threadnames/JclIdeThreadStatus.pas
trunk/jcl/experts/debug/threadnames/ThreadExpertSharedNames.pas
trunk/jcl/experts/debug/threadnames/ThreadExpertUnit.pas
trunk/jcl/experts/debug/tools/MakeJclDbg.dpr
trunk/jcl/experts/debug/tools/MapToJdbg.dpr
trunk/jcl/experts/debug/tools/MapToJdbgMain.pas
trunk/jcl/experts/debug/tools/TlbToMap.dpr
trunk/jcl/experts/debug/tools/TlbToMapMain.pas
trunk/jcl/experts/favfolders/IdeOpenDlgFavoriteUnit.pas
trunk/jcl/experts/favfolders/OpenDlgFavAdapter.pas
trunk/jcl/experts/projectanalyzer/ProjAnalyzerFrm.pas
trunk/jcl/experts/projectanalyzer/ProjAnalyzerImpl.pas
trunk/jcl/experts/useswizard/IdentifierList.dpr
trunk/jcl/experts/useswizard/JCLOptionsFrame.pas
trunk/jcl/experts/useswizard/JCLUsesWizard.pas
trunk/jcl/experts/useswizard/JclParseUses.pas
trunk/jcl/experts/useswizard/JclUsesDialog.pas
trunk/jcl/experts/versioncontrol/JclVersionCtrlCVSImpl.pas
trunk/jcl/experts/versioncontrol/JclVersionCtrlCommonOptions.pas
trunk/jcl/experts/versioncontrol/JclVersionCtrlSVNImpl.pas
trunk/jcl/experts/versioncontrol/VersionControlImpl.pas
trunk/jcl/install/JclInstall.pas
trunk/jcl/install/JediInstall.pas
trunk/jcl/install/JediInstallConfigIni.pas
trunk/jcl/install/JediInstaller.dpr
trunk/jcl/install/JediRegInfo.pas
trunk/jcl/install/QJediInstaller.dpr
trunk/jcl/install/RegHelper.dpr
trunk/jcl/install/build/dcc32ex.dpr
trunk/jcl/install/prototypes/JediGUIInstall.pas
trunk/jcl/install/prototypes/JediGUIMain.pas
trunk/jcl/install/prototypes/JediGUIReadme.pas
trunk/jcl/install/prototypes.sh
trunk/jcl/lib/d11.net/common.exc
trunk/jcl/lib/d11.net/vcl.exc
trunk/jcl/lib/d11.net/windows.exc
trunk/jcl/packages/JclNetPackagesD110.groupproj
trunk/jcl/packages/JclPackagesD110.groupproj
trunk/jcl/packages/d10.net/template.bdsproj
trunk/jcl/packages/d10.net/template.dpr
trunk/jcl/packages/d11/Jcl.dpk
trunk/jcl/packages/d11/Jcl.rc
trunk/jcl/packages/d11/JclBaseExpert.dpk
trunk/jcl/packages/d11/JclBaseExpert.rc
trunk/jcl/packages/d11/JclDebugExpert.dpk
trunk/jcl/packages/d11/JclDebugExpert.rc
trunk/jcl/packages/d11/JclDebugExpertDLL.dpr
trunk/jcl/packages/d11/JclDebugExpertDLL.rc
trunk/jcl/packages/d11/JclFavoriteFoldersExpert.dpk
trunk/jcl/packages/d11/JclFavoriteFoldersExpert.rc
trunk/jcl/packages/d11/JclFavoriteFoldersExpertDLL.dpr
trunk/jcl/packages/d11/JclFavoriteFoldersExpertDLL.rc
trunk/jcl/packages/d11/JclProjectAnalysisExpert.dpk
trunk/jcl/packages/d11/JclProjectAnalysisExpert.rc
trunk/jcl/packages/d11/JclProjectAnalysisExpertDLL.dpr
trunk/jcl/packages/d11/JclProjectAnalysisExpertDLL.rc
trunk/jcl/packages/d11/JclRepositoryExpert.dpk
trunk/jcl/packages/d11/JclRepositoryExpert.rc
trunk/jcl/packages/d11/JclRepositoryExpertDLL.dpr
trunk/jcl/packages/d11/JclRepositoryExpertDLL.rc
trunk/jcl/packages/d11/JclSIMDViewExpert.dpk
trunk/jcl/packages/d11/JclSIMDViewExpert.rc
trunk/jcl/packages/d11/JclSIMDViewExpertDLL.dpr
trunk/jcl/packages/d11/JclSIMDViewExpertDLL.rc
trunk/jcl/packages/d11/JclThreadNameExpert.dpk
trunk/jcl/packages/d11/JclThreadNameExpert.rc
trunk/jcl/packages/d11/JclThreadNameExpertDLL.dpr
trunk/jcl/packages/d11/JclThreadNameExpertDLL.rc
trunk/jcl/packages/d11/JclVcl.dpk
trunk/jcl/packages/d11/JclVcl.rc
trunk/jcl/packages/d11/JclVersionControlExpert.dpk
trunk/jcl/packages/d11/JclVersionControlExpert.rc
trunk/jcl/packages/d11/JclVersionControlExpertDLL.dpr
trunk/jcl/packages/d11/JclVersionControlExpertDLL.rc
trunk/jcl/packages/d11/template.dpk
trunk/jcl/packages/d11/template.dpr
trunk/jcl/packages/d11/template.rc
trunk/jcl/packages/d11.net/Jedi.Jcl.dpr
trunk/jcl/packages/d11.net/template.dpr
trunk/jcl/packages/d9.net/template.bdsproj
trunk/jcl/packages/d9.net/template.dpr
trunk/jcl/packages/xml/Jcl-L.xml
trunk/jcl/source/common/Jcl8087.pas
trunk/jcl/source/common/JclAbstractContainers.pas
trunk/jcl/source/common/JclAlgorithms.pas
trunk/jcl/source/common/JclAnsiStrings.pas
trunk/jcl/source/common/JclArrayLists.pas
trunk/jcl/source/common/JclArraySets.pas
trunk/jcl/source/common/JclBase.pas
trunk/jcl/source/common/JclBinaryTrees.pas
trunk/jcl/source/common/JclBorlandTools.pas
trunk/jcl/source/common/JclComplex.pas
trunk/jcl/source/common/JclCompression.pas
trunk/jcl/source/common/JclContainerIntf.pas
trunk/jcl/source/common/JclCounter.pas
trunk/jcl/source/common/JclDateTime.pas
trunk/jcl/source/common/JclEDI.pas
trunk/jcl/source/common/JclEDISEF.pas
trunk/jcl/source/common/JclEDITranslators.pas
trunk/jcl/source/common/JclEDIXML.pas
trunk/jcl/source/common/JclEDI_ANSIX12.pas
trunk/jcl/source/common/JclEDI_ANSIX12_Ext.pas
trunk/jcl/source/common/JclEDI_UNEDIFACT.pas
trunk/jcl/source/common/JclEDI_UNEDIFACT_Ext.pas
trunk/jcl/source/common/JclExprEval.pas
trunk/jcl/source/common/JclFileUtils.pas
trunk/jcl/source/common/JclHashMaps.pas
trunk/jcl/source/common/JclHashSets.pas
trunk/jcl/source/common/JclIniFiles.pas
trunk/jcl/source/common/JclLinkedLists.pas
trunk/jcl/source/common/JclLogic.pas
trunk/jcl/source/common/JclMIDI.pas
trunk/jcl/source/common/JclMath.pas
trunk/jcl/source/common/JclMime.pas
trunk/jcl/source/common/JclPCRE.pas
trunk/jcl/source/common/JclQueues.pas
trunk/jcl/source/common/JclRTTI.pas
trunk/jcl/source/common/JclResources.pas
trunk/jcl/source/common/JclSchedule.pas
trunk/jcl/source/common/JclSimpleXml.pas
trunk/jcl/source/common/JclStacks.pas
trunk/jcl/source/common/JclStatistics.pas
trunk/jcl/source/common/JclStrHashMap.pas
trunk/jcl/source/common/JclStreams.pas
trunk/jcl/source/common/JclStringLists.pas
trunk/jcl/source/common/JclStrings.pas
trunk/jcl/source/common/JclSysInfo.pas
trunk/jcl/source/common/JclSysUtils.pas
trunk/jcl/source/common/JclUnitConv.pas
trunk/jcl/source/common/JclUnitVersioning.pas
trunk/jcl/source/common/JclUnitVersioningProviders.pas
trunk/jcl/source/common/JclValidation.pas
trunk/jcl/source/common/JclVectors.pas
trunk/jcl/source/common/JclWideStrings.pas
trunk/jcl/source/common/bzip2.pas
trunk/jcl/source/common/pcre.pas
trunk/jcl/source/crossplatform.inc
trunk/jcl/source/jcl.inc
trunk/jcl/source/jedi.inc
trunk/jcl/source/prototypes/Hardlinks.pas
trunk/jcl/source/prototypes/JclWin32.pas
trunk/jcl/source/prototypes/_GraphUtils.pas
trunk/jcl/source/prototypes/_Graphics.pas
trunk/jcl/source/prototypes/zlibh.pas
trunk/jcl/source/unix/zlibh.pas
trunk/jcl/source/unixonly.inc
trunk/jcl/source/vcl/JclFont.pas
trunk/jcl/source/vcl/JclGraphUtils.pas
trunk/jcl/source/vcl/JclGraphics.pas
trunk/jcl/source/vcl/JclPrint.pas
trunk/jcl/source/visclx/JclQGraphUtils.pas
trunk/jcl/source/visclx/JclQGraphics.pas
trunk/jcl/source/windows/Hardlinks.pas
trunk/jcl/source/windows/JclAppInst.pas
trunk/jcl/source/windows/JclCIL.pas
trunk/jcl/source/windows/JclCLR.pas
trunk/jcl/source/windows/JclCOM.pas
trunk/jcl/source/windows/JclConsole.pas
trunk/jcl/source/windows/JclDebug.pas
trunk/jcl/source/windows/JclDotNet.pas
trunk/jcl/source/windows/JclHookExcept.pas
trunk/jcl/source/windows/JclLANMan.pas
trunk/jcl/source/windows/JclLocales.pas
trunk/jcl/source/windows/JclMapi.pas
trunk/jcl/source/windows/JclMetadata.pas
trunk/jcl/source/windows/JclMiscel.pas
trunk/jcl/source/windows/JclMsdosSys.pas
trunk/jcl/source/windows/JclMultimedia.pas
trunk/jcl/source/windows/JclNTFS.pas
trunk/jcl/source/windows/JclPeImage.pas
trunk/jcl/source/windows/JclRegistry.pas
trunk/jcl/source/windows/JclSecurity.pas
trunk/jcl/source/windows/JclShell.pas
trunk/jcl/source/windows/JclStructStorage.pas
trunk/jcl/source/windows/JclSvcCtrl.pas
trunk/jcl/source/windows/JclSynch.pas
trunk/jcl/source/windows/JclTD32.pas
trunk/jcl/source/windows/JclTask.pas
trunk/jcl/source/windows/JclUnicode.pas
trunk/jcl/source/windows/JclWideFormat.pas
trunk/jcl/source/windows/JclWin32.pas
trunk/jcl/source/windows/JclWin32Ex.pas
trunk/jcl/source/windows/JclWinMIDI.pas
trunk/jcl/source/windows/MSHelpServices_TLB.pas
trunk/jcl/source/windows/MSTask.pas
trunk/jcl/source/windows/Snmp.pas
trunk/jcl/source/windows/mscoree_TLB.pas
trunk/jcl/source/windows/mscorlib_TLB.pas
trunk/jcl/source/windows/zlibh.pas
trunk/jcl/source/windowsonly.inc
trunk/thirdparty/InnoSetup/ComponentInstallerScript.iss
trunk/thirdparty/InnoSetup/IdeComponents.iss
trunk/thirdparty/InnoSetup/Install.iss
trunk/thirdparty/InnoSetup/Skin/isxskin.iss
trunk/thirdparty/InnoSetup/SourceDirectories.iss
Added Paths:
-----------
trunk/jcl/experts/debug/simdview/JclSIMDTestDelphi.dof
trunk/thirdparty/svn_cleaner/
trunk/thirdparty/svn_cleaner/SvnCleaner.dpr
trunk/thirdparty/svn_cleaner/SvnCleaner.xml
Property Changed:
----------------
trunk/donations/dcl/Install.txt
trunk/donations/dcl/JclAbstractContainer.pas
trunk/donations/dcl/JclAlgorithms.pas
trunk/donations/dcl/JclArrayList.pas
trunk/donations/dcl/JclArraySet.pas
trunk/donations/dcl/JclBinaryTree.pas
trunk/donations/dcl/JclDCLUtil.pas
trunk/donations/dcl/JclDCL_intf.pas
trunk/donations/dcl/JclHashMap.pas
trunk/donations/dcl/JclHashSet.pas
trunk/donations/dcl/JclLinkedList.pas
trunk/donations/dcl/JclQueue.pas
trunk/donations/dcl/JclStack.pas
trunk/donations/dcl/JclVector.pas
trunk/donations/dcl/dcl.inc
trunk/donations/dcl/dcl_d5.dof
trunk/donations/dcl/dcl_d5.dpk
trunk/donations/dcl/dcl_d6.dof
trunk/donations/dcl/dcl_d6.dpk
trunk/donations/dcl/dcl_d7.dof
trunk/donations/dcl/dcl_d7.dpk
trunk/donations/dcl/dcl_k3.dpk
trunk/donations/dcl/demos/Algos/Algos.dof
trunk/donations/dcl/demos/Algos/Algos.dpr
trunk/donations/dcl/demos/Algos/Unit1.dfm
trunk/donations/dcl/demos/Algos/Unit1.pas
trunk/donations/dcl/demos/Hash/Hash.dof
trunk/donations/dcl/demos/Hash/Hash.dpr
trunk/donations/dcl/demos/Hash/Unit1.dfm
trunk/donations/dcl/demos/Hash/Unit1.pas
trunk/donations/dcl/demos/List/List.dof
trunk/donations/dcl/demos/List/List.dpr
trunk/donations/dcl/demos/List/MyObjectList.pas
trunk/donations/dcl/demos/List/Unit1.dfm
trunk/donations/dcl/demos/List/Unit1.pas
trunk/donations/dcl/demos/Perf/Perf.dof
trunk/donations/dcl/demos/Perf/Perf.dpr
trunk/donations/dcl/demos/Perf/Unit1.dfm
trunk/donations/dcl/demos/Perf/Unit1.pas
trunk/donations/dcl/demos/Tree/Main_frm.dfm
trunk/donations/dcl/demos/Tree/Main_frm.pas
trunk/donations/dcl/demos/Tree/Tree.dof
trunk/donations/dcl/demos/Tree/Tree.dpr
trunk/donations/dcl/doc/Algorithms.html
trunk/donations/dcl/doc/Classes/AbstractContainer.html
trunk/donations/dcl/doc/Classes/ArrayList.html
trunk/donations/dcl/doc/Classes/ArraySet.html
trunk/donations/dcl/doc/Classes/BinaryTree.html
trunk/donations/dcl/doc/Classes/HashMap.html
trunk/donations/dcl/doc/Classes/HashSet.html
trunk/donations/dcl/doc/Classes/LinkedList.html
trunk/donations/dcl/doc/Classes/Queue.html
trunk/donations/dcl/doc/Classes/Stack.html
trunk/donations/dcl/doc/Classes/Vector.html
trunk/donations/dcl/doc/Interfaces/Array.html
trunk/donations/dcl/doc/Interfaces/Cloneable.html
trunk/donations/dcl/doc/Interfaces/Collection.html
trunk/donations/dcl/doc/Interfaces/Iterator.html
trunk/donations/dcl/doc/Interfaces/List.html
trunk/donations/dcl/doc/Interfaces/Map.html
trunk/donations/dcl/doc/Interfaces/Queue.html
trunk/donations/dcl/doc/Interfaces/Set.html
trunk/donations/dcl/doc/Interfaces/Stack.html
trunk/donations/dcl/doc/Interfaces/Tree.html
trunk/donations/dcl/doc/SeldonWeb.css
trunk/donations/dcl/doc/index.html
trunk/donations/examples/common/pcre/MainFrm.dfm
trunk/donations/examples/common/pcre/MainFrm.pas
trunk/donations/examples/common/pcre/PCREDemo.dpr
trunk/donations/examples/prototypes/JclDFMTestMain.pas
trunk/donations/examples/prototypes/Makefile.mak
trunk/donations/examples/vcl/dfm/JclDFMTest.dpr
trunk/donations/examples/vcl/dfm/JclDFMTestMain.dfm
trunk/donations/examples/vcl/dfm/JclDFMTestMain.pas
trunk/donations/examples/vcl/unitversioning/UnitVersioningTest.dpr
trunk/donations/examples/vcl/unitversioning/UnitVersioningTestDLL.dpr
trunk/donations/examples/vcl/unitversioning/UnitVersioningTestMain.dfm
trunk/donations/examples/vcl/unitversioning/UnitVersioningTestMain.pas
trunk/donations/examples/visclx/dfm/JclDFMTest.dpr
trunk/donations/examples/visclx/dfm/JclDFMTestMain.pas
trunk/donations/examples/visclx/dfm/JclDFMTestMain.xfm
trunk/donations/source/common/JclBorlandToolsExtensions.pas
trunk/donations/source/common/JclDFM.pas
trunk/donations/source/common/JclDFMUtils.pas
trunk/donations/source/common/JclMiscExtensions.pas
trunk/donations/source/common/JclPCRE.pas
trunk/donations/source/common/JclSharedMMFMem.pas
trunk/donations/source/common/JclStringsDonations.pas
trunk/donations/source/common/JclUnitVersioning.pas
trunk/donations/source/common/JclUnitVersioningProviders.pas
trunk/donations/source/common/dirinfo.txt
trunk/donations/source/common/pcre.pas
trunk/donations/source/prototypes/dirinfo.txt
trunk/donations/source/unix/dirinfo.txt
trunk/donations/source/vcl/JclDFMUtils.pas
trunk/donations/source/vcl/dirinfo.txt
trunk/donations/source/visclx/dirinfo.txt
trunk/donations/source/windows/JclRTF.pas
trunk/donations/source/windows/dirinfo.txt
trunk/help/
trunk/help/8087.dtx
trunk/help/AppInst.dtx
trunk/help/Base.dtx
trunk/help/Bitmap32.dtx
trunk/help/Com.dtx
trunk/help/Complex.dtx
trunk/help/Containers.dtx
trunk/help/Counter.dtx
trunk/help/DateTime.dtx
trunk/help/Debug.dtx
trunk/help/ExprEval.dtx
trunk/help/FileUtils.dtx
trunk/help/Font.dtx
trunk/help/Graphics.dtx
trunk/help/Guidelines.txt
trunk/help/Hardlinks.dtx
trunk/help/IncludedFiles.dtx
trunk/help/IniFiles.dtx
trunk/help/JCL.dfg
trunk/help/JCLHelp.dox
trunk/help/JCLxHelp.dox
trunk/help/LANMan.dtx
trunk/help/Locales.dtx
trunk/help/Logic.dtx
trunk/help/Mapi.dtx
trunk/help/Math.dtx
trunk/help/Midi.dtx
trunk/help/Mime.dtx
trunk/help/Miscel.dtx
trunk/help/Multimedia.dtx
trunk/help/NTFS.dtx
trunk/help/PE.dtx
trunk/help/RTTI.dtx
trunk/help/Regions.dtx
trunk/help/Registry.dtx
trunk/help/Schedule.dtx
trunk/help/Security.dtx
trunk/help/Shell.dtx
trunk/help/Statistics.dtx
trunk/help/StrHashMap.dtx
trunk/help/Streams.dtx
trunk/help/Strings.dtx
trunk/help/SvcCtrl.dtx
trunk/help/Synch.dtx
trunk/help/SysInfo.dtx
trunk/help/SysUtils.dtx
trunk/help/Unicode.dtx
trunk/help/UnitConv.dtx
trunk/help/WideStrings.dtx
trunk/help/Win32.dtx
trunk/help/hlpgrps.dtx
trunk/help/images/
trunk/help/images/TJclBitmap32_RaiseRectTS.bmp
trunk/help/images/TJclBitmap32_SetPixel.bmp
trunk/help/images/TJclLinearTransformation.bmp
trunk/help/images/TJclLinearTransformation_GetTransformedBounds.bmp
trunk/help/images/TJclLinearTransformation_Rotate.bmp
trunk/help/images/TJclLinearTransformation_Scale.bmp
trunk/help/images/TJclLinearTransformation_Skew.bmp
trunk/help/images/TJclLinearTransformation_Translate.bmp
trunk/help/pcre.dtx
trunk/help/schemes.dsf
trunk/help/winconst.inc
trunk/jcl/Install.bat
trunk/jcl/Install.txt
trunk/jcl/bin/dirinfo.txt
trunk/jcl/clean.bat
trunk/jcl/clean.sh
trunk/jcl/devtools/included_files.bat
trunk/jcl/devtools/included_files.sh
trunk/jcl/devtools/jpp
trunk/jcl/devtools/pgEdit.xml
trunk/jcl/docs/Contacting authors.html
trunk/jcl/docs/Contributors.html
trunk/jcl/docs/Contributors.txt
trunk/jcl/docs/Experts.html
trunk/jcl/docs/MPL FAQ.html
trunk/jcl/docs/MPL-1.1.txt
trunk/jcl/docs/Readme.html
trunk/jcl/docs/Readme.txt
trunk/jcl/docs/ThreadSafe.txt
trunk/jcl/docs/cps.html
trunk/jcl/docs/cps_files/test.css
trunk/jcl/docs/styles/default.css
trunk/jcl/examples/
trunk/jcl/examples/C10.exc
trunk/jcl/examples/C5.exc
trunk/jcl/examples/C6.exc
trunk/jcl/examples/D10.exc
trunk/jcl/examples/D5.exc
trunk/jcl/examples/D6.exc
trunk/jcl/examples/D7.exc
trunk/jcl/examples/D9.exc
trunk/jcl/examples/JclDebugExamples.bdsgroup
trunk/jcl/examples/JclDebugExamples.bpg
trunk/jcl/examples/common/
trunk/jcl/examples/common/containers/
trunk/jcl/examples/common/containers/algorithms/
trunk/jcl/examples/common/containers/algorithms/AlgorithmsExample.dof
trunk/jcl/examples/common/containers/algorithms/AlgorithmsExampleMain.dfm
trunk/jcl/examples/common/containers/hashing/
trunk/jcl/examples/common/containers/hashing/HashingExample.dof
trunk/jcl/examples/common/containers/hashing/HashingExampleMain.dfm
trunk/jcl/examples/common/containers/lists/
trunk/jcl/examples/common/containers/lists/ListExample.dof
trunk/jcl/examples/common/containers/lists/ListExampleMain.dfm
trunk/jcl/examples/common/containers/performance/
trunk/jcl/examples/common/containers/performance/ContainerPerformance.dof
trunk/jcl/examples/common/containers/performance/ContainerPerformanceMain.dfm
trunk/jcl/examples/common/containers/trees/
trunk/jcl/examples/common/containers/trees/TreeExample.dof
trunk/jcl/examples/common/containers/trees/TreeExampleMain.dfm
trunk/jcl/examples/common/expreval/
trunk/jcl/examples/common/expreval/ExprEvalExample.dof
trunk/jcl/examples/common/expreval/ExprEvalExampleMain.dfm
trunk/jcl/examples/common/expreval/QExprEvalExample.dof
trunk/jcl/examples/common/expreval/QExprEvalExampleMain.xfm
trunk/jcl/examples/common/filesearch/
trunk/jcl/examples/common/filesearch/QFileSearchDemo.dof
trunk/jcl/examples/common/filesearch/QFileSearchDemoMain.dfm
trunk/jcl/examples/common/filesearch/QFileSearchDemoMain.xfm
trunk/jcl/examples/common/graphics/
trunk/jcl/examples/common/graphics/QClipLineDemo.dof
trunk/jcl/examples/common/graphics/QClipLineDemoMain.dfm
trunk/jcl/examples/common/graphics/QClipLineDemoMain.xfm
trunk/jcl/examples/common/graphics/StretchGraphicDemoMain.dfm
trunk/jcl/examples/common/graphics/StretchGraphicExample.dof
trunk/jcl/examples/common/multimedia/
trunk/jcl/examples/common/multimedia/MidiOutExample.dof
trunk/jcl/examples/common/multimedia/MidiOutExampleMain.dfm
trunk/jcl/examples/common/multimedia/MidiOutExampleTuningDlg.dfm
trunk/jcl/examples/common/numformat/
trunk/jcl/examples/common/numformat/QNumFormatExample.dof
trunk/jcl/examples/common/numformat/QNumFormatExampleMain.xfm
trunk/jcl/examples/common/pcre/
trunk/jcl/examples/common/pcre/PCREDemo.dof
trunk/jcl/examples/common/pcre/PCREDemo.dpr
trunk/jcl/examples/common/pcre/PCREDemo.res
trunk/jcl/examples/common/pcre/PCREDemoMain.dfm
trunk/jcl/examples/common/pcre/PCREDemoMain.pas
trunk/jcl/examples/common/pcre/QPCREDemo.dof
trunk/jcl/examples/common/pcre/QPCREDemo.dpr
trunk/jcl/examples/common/pcre/QPCREDemo.res
trunk/jcl/examples/common/pcre/QPCREDemoMain.pas
trunk/jcl/examples/common/pcre/QPCREDemoMain.xfm
trunk/jcl/examples/common/rtti/
trunk/jcl/examples/common/rtti/QRTTIDemo.dof
trunk/jcl/examples/common/rtti/QRTTIDemoMain.xfm
trunk/jcl/examples/common/rtti/RTTIDemoMain.dfm
trunk/jcl/examples/common/rtti/RTTIExample.dof
trunk/jcl/examples/common/sysinfo/
trunk/jcl/examples/common/sysinfo/QEnvironmentExample.dof
trunk/jcl/examples/common/sysinfo/QEnvironmentExampleMain.xfm
trunk/jcl/examples/common/textreader/
trunk/jcl/examples/common/textreader/TextReaderDemoMain.dfm
trunk/jcl/examples/common/textreader/TextReaderExample.dof
trunk/jcl/examples/common/unitversioning/
trunk/jcl/examples/common/unitversioning/UnitVersioningTest.dof
trunk/jcl/examples/common/unitversioning/UnitVersioningTestDLL.dof
trunk/jcl/examples/common/unitversioning/UnitVersioningTestMain.dfm
trunk/jcl/examples/dotnet/
trunk/jcl/examples/dotnet/JCLNetDemo/
trunk/jcl/examples/dotnet/JCLNetDemo/AssemblyInfo.cs
trunk/jcl/examples/dotnet/JCLNetDemo/JCLNet.bdsproj
trunk/jcl/examples/dotnet/JCLNetDemo/WinForm.cs
trunk/jcl/examples/dotnet/JCLNetDemo/WinForm.resx
trunk/jcl/examples/k3.exc
trunk/jcl/examples/visclx.exc
trunk/jcl/examples/windows/
trunk/jcl/examples/windows/ConsoleExamples.dof
trunk/jcl/examples/windows/appinst/
trunk/jcl/examples/windows/appinst/AppInstDemoMain.dfm
trunk/jcl/examples/windows/appinst/AppInstExample.dof
trunk/jcl/examples/windows/appinst/SingleInstDemoMain.dfm
trunk/jcl/examples/windows/appinst/SingleInstExample.dof
trunk/jcl/examples/windows/asuser/
trunk/jcl/examples/windows/asuser/CreateProcAsUserDemoMain.dfm
trunk/jcl/examples/windows/asuser/CreateProcAsUserExample.dof
trunk/jcl/examples/windows/clr/
trunk/jcl/examples/windows/clr/ClrDemo.dof
trunk/jcl/examples/windows/clr/ClrDemoAbstractFrame.dfm
trunk/jcl/examples/windows/clr/ClrDemoBlobForm.dfm
trunk/jcl/examples/windows/clr/ClrDemoCLRFrame.dfm
trunk/jcl/examples/windows/clr/ClrDemoGuidForm.dfm
trunk/jcl/examples/windows/clr/ClrDemoMain.dfm
trunk/jcl/examples/windows/clr/ClrDemoMetaDataFrame.dfm
trunk/jcl/examples/windows/clr/ClrDemoStringsForm.dfm
trunk/jcl/examples/windows/clr/ClrDemoTableForm.dfm
trunk/jcl/examples/windows/clr/ClrDemoUserStringsForm.dfm
trunk/jcl/examples/windows/debug/
trunk/jcl/examples/windows/debug/framestrack/
trunk/jcl/examples/windows/debug/framestrack/FramesTrackDemoMain.dfm
trunk/jcl/examples/windows/debug/framestrack/FramesTrackExample.dof
trunk/jcl/examples/windows/debug/reportconverter/
trunk/jcl/examples/windows/debug/sourceloc/
trunk/jcl/examples/windows/debug/sourceloc/SourceLocDemoMain.dfm
trunk/jcl/examples/windows/debug/sourceloc/SourceLocExample.dof
trunk/jcl/examples/windows/debug/stacktrack/
trunk/jcl/examples/windows/debug/stacktrack/StackTrackDLLsComLibrary.bdsproj
trunk/jcl/examples/windows/debug/stacktrack/StackTrackDLLsComLibrary.dof
trunk/jcl/examples/windows/debug/stacktrack/StackTrackDLLsDemoMain.dfm
trunk/jcl/examples/windows/debug/stacktrack/StackTrackDLLsDynamicLibrary.bdsproj
trunk/jcl/examples/windows/debug/stacktrack/StackTrackDLLsDynamicLibrary.dof
trunk/jcl/examples/windows/debug/stacktrack/StackTrackDLLsExample.bdsproj
trunk/jcl/examples/windows/debug/stacktrack/StackTrackDLLsExample.dof
trunk/jcl/examples/windows/debug/stacktrack/StackTrackDLLsStaticLibrary.bdsproj
trunk/jcl/examples/windows/debug/stacktrack/StackTrackDLLsStaticLibrary.dof
trunk/jcl/examples/windows/debug/stacktrack/StackTrackDemoMain.dfm
trunk/jcl/examples/windows/debug/stacktrack/StackTrackExample.bdsproj
trunk/jcl/examples/windows/debug/stacktrack/StackTrackExample.dof
trunk/jcl/examples/windows/debug/threadexcept/
trunk/jcl/examples/windows/debug/threadexcept/ThreadExceptDemoMain.dfm
trunk/jcl/examples/windows/debug/threadexcept/ThreadExceptExample.dof
trunk/jcl/examples/windows/delphitools/
trunk/jcl/examples/windows/delphitools/DelphiToolsGroup.bpg
trunk/jcl/examples/windows/delphitools/Readme.txt
trunk/jcl/examples/windows/delphitools/common/
trunk/jcl/examples/windows/delphitools/common/About.dfm
trunk/jcl/examples/windows/delphitools/common/FindDlg.dfm
trunk/jcl/examples/windows/delphitools/dependencyviewer/
trunk/jcl/examples/windows/delphitools/dependencyviewer/DependView.dof
trunk/jcl/examples/windows/delphitools/dependencyviewer/DependViewMain.dfm
trunk/jcl/examples/windows/delphitools/dependencyviewer/FileViewer.dfm
trunk/jcl/examples/windows/delphitools/peviewer/
trunk/jcl/examples/windows/delphitools/peviewer/PeDump.dfm
trunk/jcl/examples/windows/delphitools/peviewer/PeGenDef.dfm
trunk/jcl/examples/windows/delphitools/peviewer/PeResView.dfm
trunk/jcl/examples/windows/delphitools/peviewer/PeSearch.dfm
trunk/jcl/examples/windows/delphitools/peviewer/PeViewer.dof
trunk/jcl/examples/windows/delphitools/peviewer/PeViewerMain.dfm
trunk/jcl/examples/windows/delphitools/resfix/
trunk/jcl/examples/windows/delphitools/resfix/ResFix.dof
trunk/jcl/examples/windows/delphitools/resfix/ResFixMain.dfm
trunk/jcl/examples/windows/delphitools/screenjpg/
trunk/jcl/examples/windows/delphitools/screenjpg/Main.dfm
trunk/jcl/examples/windows/delphitools/screenjpg/ScreenJPG.dof
trunk/jcl/examples/windows/delphitools/toolhelpview/
trunk/jcl/examples/windows/delphitools/toolhelpview/ChangePriority.dfm
trunk/jcl/examples/windows/delphitools/toolhelpview/Global.dfm
trunk/jcl/examples/windows/delphitools/toolhelpview/HeapDump.dfm
trunk/jcl/examples/windows/delphitools/toolhelpview/Main.dfm
trunk/jcl/examples/windows/delphitools/toolhelpview/MemoryDump.dfm
trunk/jcl/examples/windows/delphitools/toolhelpview/ModulesDump.dfm
trunk/jcl/examples/windows/delphitools/toolhelpview/ToolHelpViewer.dof
trunk/jcl/examples/windows/delphitools/toolhelpview/ViewTemplate.dfm
trunk/jcl/examples/windows/edisdk/
trunk/jcl/examples/windows/edisdk/Clean.bat
trunk/jcl/examples/windows/edisdk/EDICOMExample.dof
trunk/jcl/examples/windows/edisdk/EDICOMExampleMain.dfm
trunk/jcl/examples/windows/edisdk/comserver/
trunk/jcl/examples/windows/edisdk/comserver/Clean.bat
trunk/jcl/examples/windows/edisdk/comserver/EDISDK.dof
trunk/jcl/examples/windows/edisdk/vb5/
trunk/jcl/examples/windows/edisdk/vb5/Form1.frm
trunk/jcl/examples/windows/edisdk/vb5/Form1.frx
trunk/jcl/examples/windows/edisdk/vb5/Project1.vbp
trunk/jcl/examples/windows/edisdk/vb5/Project1.vbw
trunk/jcl/examples/windows/filesummary/
trunk/jcl/examples/windows/filesummary/FileSummaryDemoMain.dfm
trunk/jcl/examples/windows/filesummary/FileSummaryExample.dof
trunk/jcl/examples/windows/fileversion/
trunk/jcl/examples/windows/fileversion/VerInfoDemoMain.dfm
trunk/jcl/examples/windows/fileversion/VerInfoExample.dof
trunk/jcl/examples/windows/lanman/
trunk/jcl/examples/windows/lanman/LanManDemoMain.dfm
trunk/jcl/examples/windows/lanman/LanManExample.dof
trunk/jcl/examples/windows/locales/
trunk/jcl/examples/windows/locales/LocalesDemoMain.dfm
trunk/jcl/examples/windows/locales/LocalesExample.dof
trunk/jcl/examples/windows/mapi/
trunk/jcl/examples/windows/mapi/MapiDemoMain.dfm
trunk/jcl/examples/windows/mapi/MapiExample.dof
trunk/jcl/examples/windows/mapi/ReadMailDemoMain.dfm
trunk/jcl/examples/windows/mapi/ReadMailExample.dof
trunk/jcl/examples/windows/multimedia/
trunk/jcl/examples/windows/multimedia/MultiMediaExample.dof
trunk/jcl/examples/windows/multimedia/MultimediaDemoMain.dfm
trunk/jcl/examples/windows/ntfs/
trunk/jcl/examples/windows/ntfs/JEDISoftLinks.dof
trunk/jcl/examples/windows/ntservice/
trunk/jcl/examples/windows/ntservice/NtSvcDemoDependent.dfm
trunk/jcl/examples/windows/ntservice/NtSvcDemoGroups.dfm
trunk/jcl/examples/windows/ntservice/NtSvcDemoMain.dfm
trunk/jcl/examples/windows/ntservice/NtSvcExample.dof
trunk/jcl/examples/windows/peimage/
trunk/jcl/examples/windows/peimage/ApiHookDemoMain.dfm
trunk/jcl/examples/windows/peimage/ApiHookExample.dof
trunk/jcl/examples/windows/peimage/PeFuncDemoMain.dfm
trunk/jcl/examples/windows/peimage/PeFuncExample.dof
trunk/jcl/examples/windows/peimage/UnmangleNameDemoMain.dfm
trunk/jcl/examples/windows/peimage/UnmangleNameExample.dof
trunk/jcl/examples/windows/registry/
trunk/jcl/examples/windows/registry/RegistryDemoMain.dfm
trunk/jcl/examples/windows/registry/RegistryExample.dof
trunk/jcl/examples/windows/structstorage/
trunk/jcl/examples/windows/structstorage/PropsFrm.dfm
trunk/jcl/examples/windows/structstorage/StructStorageExample.dof
trunk/jcl/examples/windows/structstorage/StructStorageExampleMain.dfm
trunk/jcl/examples/windows/sysinfo/
trunk/jcl/examples/windows/sysinfo/SysInfoDemoMain.dfm
trunk/jcl/examples/windows/sysinfo/SysInfoExample.dof
trunk/jcl/examples/windows/tasks/
trunk/jcl/examples/windows/tasks/TaskDemo.dof
trunk/jcl/examples/windows/tasks/TaskDemoDataModule.dfm
trunk/jcl/examples/windows/tasks/TaskDemoMain.dfm
trunk/jcl/examples/windows/widestring/
trunk/jcl/examples/windows/widestring/WideStringDemoMain.dfm
trunk/jcl/examples/windows/widestring/WideStringDemoMain.pas
trunk/jcl/examples/windows/widestring/WideStringExample.dpr
trunk/jcl/experts/common/JclImages.rc
trunk/jcl/experts/common/JclOtaActionConfigureSheet.dfm
trunk/jcl/experts/common/JclOtaConfigurationForm.dfm
trunk/jcl/experts/common/JclOtaExceptionForm.dfm
trunk/jcl/experts/common/JclOtaWizardForm.pas
trunk/jcl/experts/common/JclOtaWizardFrame.pas
trunk/jcl/experts/debug/
trunk/jcl/experts/debug/Howto.txt
trunk/jcl/experts/debug/converter/
trunk/jcl/experts/debug/converter/JclDebugIdeConfigFrame.dfm
trunk/jcl/experts/debug/converter/JclDebugIdeConfigFrame.pas
trunk/jcl/experts/debug/converter/JclDebugIdeResult.dfm
trunk/jcl/experts/debug/dialog/
trunk/jcl/experts/debug/dialog/ClxExceptDlg.xfm
trunk/jcl/experts/debug/dialog/ExceptDlg.CBuilder32.cpp
trunk/jcl/experts/debug/dialog/ExceptDlg.CBuilder32.h
trunk/jcl/experts/debug/dialog/ExceptDlg.Delphi32.pas
trunk/jcl/experts/debug/dialog/ExceptDlg.dfm
trunk/jcl/experts/debug/dialog/ExceptDlgMail.dfm
trunk/jcl/experts/debug/dialog/JclOtaExcDlgFileFrame.pas
trunk/jcl/experts/debug/dialog/JclOtaExcDlgFormFrame.pas
trunk/jcl/experts/debug/dialog/JclOtaExcDlgRepository.pas
trunk/jcl/experts/debug/dialog/JclOtaExcDlgSystemFrame.pas
trunk/jcl/experts/debug/dialog/JclOtaExcDlgTraceFrame.pas
trunk/jcl/experts/debug/dialog/JclOtaExcDlgWizard.pas
trunk/jcl/experts/debug/dialog/JclOtaRepositoryReg.pas
trunk/jcl/experts/debug/dialog/JclOtaRepositoryUtils.pas
trunk/jcl/experts/debug/dialog/JclOtaTemplates.pas
trunk/jcl/experts/debug/simdview/
trunk/jcl/experts/debug/simdview/JclSIMDCpuInfo.dfm
trunk/jcl/experts/debug/simdview/JclSIMDModifyForm.dfm
trunk/jcl/experts/debug/simdview/JclSIMDTestBCBProject.bpf
trunk/jcl/experts/debug/simdview/JclSIMDTestBCBProject.bpr
trunk/jcl/experts/debug/simdview/JclSIMDViewForm.dfm
trunk/jcl/experts/debug/threadnames/
trunk/jcl/experts/debug/tools/
trunk/jcl/experts/debug/tools/MakeJclDbg.dof
trunk/jcl/experts/debug/tools/MapToJdbg.dof
trunk/jcl/experts/debug/tools/MapToJdbgMain.dfm
trunk/jcl/experts/debug/tools/TlbToMap.dof
trunk/jcl/experts/debug/tools/TlbToMapMain.dfm
trunk/jcl/experts/debug/tools/Tools.bpg
trunk/jcl/experts/favfolders/
trunk/jcl/experts/favfolders/FavDlg.rc
trunk/jcl/experts/projectanalyzer/
trunk/jcl/experts/projectanalyzer/ProjAnalyzerFrm.dfm
trunk/jcl/experts/useswizard/
trunk/jcl/experts/useswizard/Hardlinks.txt
trunk/jcl/experts/useswizard/History.txt
trunk/jcl/experts/useswizard/JCLOptionsFrame.dfm
trunk/jcl/experts/useswizard/Jcl8087.txt
trunk/jcl/experts/useswizard/JclAbstractContainers.txt
trunk/jcl/experts/useswizard/JclAlgorithms.txt
trunk/jcl/experts/useswizard/JclAnsiStrings.txt
trunk/jcl/experts/useswizard/JclAppInst.txt
trunk/jcl/experts/useswizard/JclArrayLists.txt
trunk/jcl/experts/useswizard/JclArraySets.txt
trunk/jcl/experts/useswizard/JclBase.txt
trunk/jcl/experts/useswizard/JclBinaryTrees.txt
trunk/jcl/experts/useswizard/JclBorlandTools.txt
trunk/jcl/experts/useswizard/JclCIL.txt
trunk/jcl/experts/useswizard/JclCLR.txt
trunk/jcl/experts/useswizard/JclCOM.txt
trunk/jcl/experts/useswizard/JclComplex.txt
trunk/jcl/experts/useswizard/JclCompression.txt
trunk/jcl/experts/useswizard/JclConsole.txt
trunk/jcl/experts/useswizard/JclContainerIntf.txt
trunk/jcl/experts/useswizard/JclCounter.txt
trunk/jcl/experts/useswizard/JclDateTime.txt
trunk/jcl/experts/useswizard/JclDebug.txt
trunk/jcl/experts/useswizard/JclDotNet.txt
trunk/jcl/experts/useswizard/JclEDI.txt
trunk/jcl/experts/useswizard/JclEDISEF.txt
trunk/jcl/experts/useswizard/JclEDITranslators.txt
trunk/jcl/experts/useswizard/JclEDIXML.txt
trunk/jcl/experts/useswizard/JclEDI_ANSIX12.txt
trunk/jcl/experts/useswizard/JclEDI_ANSIX12_Ext.txt
trunk/jcl/experts/useswizard/JclEDI_UNEDIFACT.txt
trunk/jcl/experts/useswizard/JclEDI_UNEDIFACT_Ext.txt
trunk/jcl/experts/useswizard/JclExprEval.txt
trunk/jcl/experts/useswizard/JclFileUtils.txt
trunk/jcl/experts/useswizard/JclGraphUtils.txt
trunk/jcl/experts/useswizard/JclGraphics.txt
trunk/jcl/experts/useswizard/JclHashMaps.txt
trunk/jcl/experts/useswizard/JclHashSets.txt
trunk/jcl/experts/useswizard/JclHookExcept.txt
trunk/jcl/experts/useswizard/JclIniFiles.txt
trunk/jcl/experts/useswizard/JclLANMan.txt
trunk/jcl/experts/useswizard/JclLinkedLists.txt
trunk/jcl/experts/useswizard/JclLocales.txt
trunk/jcl/experts/useswizard/JclLogic.txt
trunk/jcl/experts/useswizard/JclMIDI.txt
trunk/jcl/experts/useswizard/JclMapi.txt
trunk/jcl/experts/useswizard/JclMath.txt
trunk/jcl/experts/useswizard/JclMetadata.txt
trunk/jcl/experts/useswizard/JclMime.txt
trunk/jcl/experts/useswizard/JclMiscel.txt
trunk/jcl/experts/useswizard/JclMsdosSys.txt
trunk/jcl/experts/useswizard/JclMultimedia.txt
trunk/jcl/experts/useswizard/JclNTFS.txt
trunk/jcl/experts/useswizard/JclPCRE.txt
trunk/jcl/experts/useswizard/JclPeImage.txt
trunk/jcl/experts/useswizard/JclPrint.txt
trunk/jcl/experts/useswizard/JclQGraphUtils.txt
trunk/jcl/experts/useswizard/JclQGraphics.txt
trunk/jcl/experts/useswizard/JclQueues.txt
trunk/jcl/experts/useswizard/JclRTF.txt
trunk/jcl/experts/useswizard/JclRTTI.txt
trunk/jcl/experts/useswizard/JclRegistry.txt
trunk/jcl/experts/useswizard/JclResources.txt
trunk/jcl/experts/useswizard/JclSchedule.txt
trunk/jcl/experts/useswizard/JclSecurity.txt
trunk/jcl/experts/useswizard/JclShell.txt
trunk/jcl/experts/useswizard/JclStacks.txt
trunk/jcl/experts/useswizard/JclStatistics.txt
trunk/jcl/experts/useswizard/JclStrHashMap.txt
trunk/jcl/experts/useswizard/JclStreams.txt
trunk/jcl/experts/useswizard/JclStrings.txt
trunk/jcl/experts/useswizard/JclStructStorage.txt
trunk/jcl/experts/useswizard/JclSvcCtrl.txt
trunk/jcl/experts/useswizard/JclSynch.txt
trunk/jcl/experts/useswizard/JclSysInfo.txt
trunk/jcl/experts/useswizard/JclSysUtils.txt
trunk/jcl/experts/useswizard/JclTD32.txt
trunk/jcl/experts/useswizard/JclTask.txt
trunk/jcl/experts/useswizard/JclUnicode.txt
trunk/jcl/experts/useswizard/JclUnitConv.txt
trunk/jcl/experts/useswizard/JclUnitVersioning.txt
trunk/jcl/experts/useswizard/JclUnitVersioningProviders.txt
trunk/jcl/experts/useswizard/JclUsesDialog.dfm
trunk/jcl/experts/useswizard/JclValidation.txt
trunk/jcl/experts/useswizard/JclVectors.txt
trunk/jcl/experts/useswizard/JclWideFormat.txt
trunk/jcl/experts/useswizard/JclWideStrings.txt
trunk/jcl/experts/useswizard/JclWin32.txt
trunk/jcl/experts/useswizard/JclWin32Ex.txt
trunk/jcl/experts/useswizard/JclWinMIDI.txt
trunk/jcl/experts/useswizard/JediUsesWizard.ini
trunk/jcl/experts/useswizard/ReadMe.txt
trunk/jcl/experts/useswizard/pcre.txt
trunk/jcl/experts/versioncontrol/
trunk/jcl/experts/versioncontrol/JclVersionCtrlCommonOptions.dfm
trunk/jcl/install/
trunk/jcl/install/BCB5-dcc32.cfg.mak
trunk/jcl/install/ClxGui/
trunk/jcl/install/ClxGui/QJediGUIInstall.xfm
trunk/jcl/install/ClxGui/QJediGUIMain.xfm
trunk/jcl/install/HeaderTest/
trunk/jcl/install/JediInstaller.bdsproj
trunk/jcl/install/JediInstaller.dof
trunk/jcl/install/QJediInstaller.conf
trunk/jcl/install/QJediInstaller.dof
trunk/jcl/install/QJediInstaller.kof
trunk/jcl/install/VclGui/
trunk/jcl/install/VclGui/FrmCompile.dfm
trunk/jcl/install/VclGui/JediGUIInstall.dfm
trunk/jcl/install/VclGui/JediGUIMain.dfm
trunk/jcl/install/build/
trunk/jcl/install/build/dcc32ex.dpr
trunk/jcl/install/prototypes.sh
trunk/jcl/install.sh
trunk/jcl/lib/
trunk/jcl/lib/c5/
trunk/jcl/lib/c5/debug/
trunk/jcl/lib/c5/debug/dirinfo.txt
trunk/jcl/lib/c5/dirinfo.txt
trunk/jcl/lib/c6/
trunk/jcl/lib/c6/debug/
trunk/jcl/lib/c6/debug/dirinfo.txt
trunk/jcl/lib/c6/dirinfo.txt
trunk/jcl/lib/cs1/
trunk/jcl/lib/cs1/dirinfo.txt
trunk/jcl/lib/d10/
trunk/jcl/lib/d10/debug/
trunk/jcl/lib/d10/debug/dirinfo.txt
trunk/jcl/lib/d10/dirinfo.txt
trunk/jcl/lib/d10.net/debug/dirinfo.txt
trunk/jcl/lib/d10.net/dirinfo.txt
trunk/jcl/lib/d11/
trunk/jcl/lib/d11/debug/
trunk/jcl/lib/d11/debug/dirinfo.txt
trunk/jcl/lib/d11/dirinfo.txt
trunk/jcl/lib/d11.net/
trunk/jcl/lib/d11.net/common.exc
trunk/jcl/lib/d11.net/debug/
trunk/jcl/lib/d11.net/debug/dirinfo.txt
trunk/jcl/lib/d11.net/dirinfo.txt
trunk/jcl/lib/d11.net/vcl.exc
trunk/jcl/lib/d11.net/windows.exc
trunk/jcl/lib/d5/
trunk/jcl/lib/d5/debug/
trunk/jcl/lib/d5/debug/dirinfo.txt
trunk/jcl/lib/d5/dirinfo.txt
trunk/jcl/lib/d6/
trunk/jcl/lib/d6/debug/
trunk/jcl/lib/d6/debug/dirinfo.txt
trunk/jcl/lib/d6/dirinfo.txt
trunk/jcl/lib/d7/
trunk/jcl/lib/d7/debug/
trunk/jcl/lib/d7/debug/dirinfo.txt
trunk/jcl/lib/d7/dirinfo.txt
trunk/jcl/lib/d8/
trunk/jcl/lib/d8/dirinfo.txt
trunk/jcl/lib/d9/
trunk/jcl/lib/d9/debug/
trunk/jcl/lib/d9/debug/dirinfo.txt
trunk/jcl/lib/d9/dirinfo.txt
trunk/jcl/lib/d9.net/debug/dirinfo.txt
trunk/jcl/lib/d9.net/dirinfo.txt
trunk/jcl/lib/dirinfo.txt
trunk/jcl/lib/k3/
trunk/jcl/lib/k3/debug/
trunk/jcl/lib/k3/debug/dirinfo.txt
trunk/jcl/lib/k3/dirinfo.txt
trunk/jcl/packages/
trunk/jcl/packages/BCB.bmk
trunk/jcl/packages/JclNetPackagesD110.groupproj
trunk/jcl/packages/JclPackagesC50.bpg
trunk/jcl/packages/JclPackagesC60.bpg
trunk/jcl/packages/JclPackagesCK3.bpg
trunk/jcl/packages/JclPackagesD100.bdsgroup
trunk/jcl/packages/JclPackagesD110.groupproj
trunk/jcl/packages/JclPackagesD50.bpg
trunk/jcl/packages/JclPackagesD60.bpg
trunk/jcl/packages/JclPackagesD70.bpg
trunk/jcl/packages/JclPackagesD90.bdsgroup
trunk/jcl/packages/JclPackagesDK3.bpg
trunk/jcl/packages/bcb.gmk
trunk/jcl/packages/c5/
trunk/jcl/packages/c5/JclBaseExpertC50.bpk
trunk/jcl/packages/c5/JclBaseExpertC50.dof
trunk/jcl/packages/c5/JclBaseExpertC50.rc
trunk/jcl/packages/c5/JclC50.bpk
trunk/jcl/packages/c5/JclC50.dof
trunk/jcl/packages/c5/JclC50.rc
trunk/jcl/packages/c5/JclDebugExpertC50.bpk
trunk/jcl/packages/c5/JclDebugExpertC50.dof
trunk/jcl/packages/c5/JclDebugExpertC50.rc
trunk/jcl/packages/c5/JclDebugExpertDLLC50.bpf
trunk/jcl/packages/c5/JclDebugExpertDLLC50.bpr
trunk/jcl/packages/c5/JclDebugExpertDLLC50.dof
trunk/jcl/packages/c5/JclDebugExpertDLLC50.rc
trunk/jcl/packages/c5/JclFavoriteFoldersExpertC50.bpk
trunk/jcl/packages/c5/JclFavoriteFoldersExpertC50.dof
trunk/jcl/packages/c5/JclFavoriteFoldersExpertC50.rc
trunk/jcl/packages/c5/JclFavoriteFoldersExpertDLLC50.bpf
trunk/jcl/packages/c5/JclFavoriteFoldersExpertDLLC50.bpr
trunk/jcl/packages/c5/JclFavoriteFoldersExpertDLLC50.dof
trunk/jcl/packages/c5/JclFavoriteFoldersExpertDLLC50.rc
trunk/jcl/packages/c5/JclProjectAnalysisExpertC50.bpk
trunk/jcl/packages/c5/JclProjectAnalysisExpertC50.dof
trunk/jcl/packages/c5/JclProjectAnalysisExpertC50.rc
trunk/jcl/packages/c5/JclProjectAnalysisExpertDLLC50.bpf
trunk/jcl/packages/c5/JclProjectAnalysisExpertDLLC50.bpr
trunk/jcl/packages/c5/JclProjectAnalysisExpertDLLC50.dof
trunk/jcl/packages/c5/JclProjectAnalysisExpertDLLC50.rc
trunk/jcl/packages/c5/JclRepositoryExpertC50.cpp
trunk/jcl/packages/c5/JclRepositoryExpertC50.dpk
trunk/jcl/packages/c5/JclRepositoryExpertDLLC50.cpp
trunk/jcl/packages/c5/JclSIMDViewExpertC50.bpk
trunk/jcl/packages/c5/JclSIMDViewExpertC50.dof
trunk/jcl/packages/c5/JclSIMDViewExpertC50.rc
trunk/jcl/packages/c5/JclSIMDViewExpertDLLC50.bpf
trunk/jcl/packages/c5/JclSIMDViewExpertDLLC50.bpr
trunk/jcl/packages/c5/JclSIMDViewExpertDLLC50.dof
trunk/jcl/packages/c5/JclSIMDViewExpertDLLC50.rc
trunk/jcl/packages/c5/JclThreadNameExpertC50.bpk
trunk/jcl/packages/c5/JclThreadNameExpertC50.dof
trunk/jcl/packages/c5/JclThreadNameExpertC50.rc
trunk/jcl/packages/c5/JclThreadNameExpertDLLC50.bpf
trunk/jcl/packages/c5/JclThreadNameExpertDLLC50.bpr
trunk/jcl/packages/c5/JclThreadNameExpertDLLC50.dof
trunk/jcl/packages/c5/JclThreadNameExpertDLLC50.rc
trunk/jcl/packages/c5/JclUsesExpertC50.bpk
trunk/jcl/packages/c5/JclUsesExpertC50.dof
trunk/jcl/packages/c5/JclUsesExpertC50.rc
trunk/jcl/packages/c5/JclUsesExpertDLLC50.bpf
trunk/jcl/packages/c5/JclUsesExpertDLLC50.bpr
trunk/jcl/packages/c5/JclUsesExpertDLLC50.dof
trunk/jcl/packages/c5/JclUsesExpertDLLC50.rc
trunk/jcl/packages/c5/JclVersionControlExpertC50.bpk
trunk/jcl/packages/c5/JclVersionControlExpertC50.dof
trunk/jcl/packages/c5/JclVersionControlExpertC50.rc
trunk/jcl/packages/c5/JclVersionControlExpertDLLC50.bpf
trunk/jcl/packages/c5/JclVersionControlExpertDLLC50.bpr
trunk/jcl/packages/c5/JclVersionControlExpertDLLC50.dof
trunk/jcl/packages/c5/JclVersionControlExpertDLLC50.rc
trunk/jcl/packages/c5/dirinfo.txt
trunk/jcl/packages/c5/template.bpf
trunk/jcl/packages/c5/template.bpk
trunk/jcl/packages/c5/template.bpr
trunk/jcl/packages/c5/template.dof
trunk/jcl/packages/c5/template.rc
trunk/jcl/packages/c6/
trunk/jcl/packages/c6/Jcl.bpk
trunk/jcl/packages/c6/Jcl.dof
trunk/jcl/packages/c6/Jcl.rc
trunk/jcl/packages/c6/JclBaseExpert.bpk
trunk/jcl/packages/c6/JclBaseExpert.dof
trunk/jcl/packages/c6/JclBaseExpert.rc
trunk/jcl/packages/c6/JclDebugExpert.bpk
trunk/jcl/packages/c6/JclDebugExpert.dof
trunk/jcl/packages/c6/JclDebugExpert.rc
trunk/jcl/packages/c6/JclDebugExpertDLL.bpf
trunk/jcl/packages/c6/JclDebugExpertDLL.bpr
trunk/jcl/packages/c6/JclDebugExpertDLL.dof
trunk/jcl/packages/c6/JclDebugExpertDLL.rc
trunk/jcl/packages/c6/JclFavoriteFoldersExpert.bpk
trunk/jcl/packages/c6/JclFavoriteFoldersExpert.dof
trunk/jcl/packages/c6/JclFavoriteFoldersExpert.rc
trunk/jcl/packages/c6/JclFavoriteFoldersExpertDLL.bpf
trunk/jcl/packages/c6/JclFavoriteFoldersExpertDLL.bpr
trunk/jcl/packages/c6/JclFavoriteFoldersExpertDLL.dof
trunk/jcl/packages/c6/JclFavoriteFoldersExpertDLL.rc
trunk/jcl/packages/c6/JclProjectAnalysisExpert.bpk
trunk/jcl/packages/c6/JclProjectAnalysisExpert.dof
trunk/jcl/packages/c6/JclProjectAnalysisExpert.rc
trunk/jcl/packages/c6/JclProjectAnalysisExpertDLL.bpf
trunk/jcl/packages/c6/JclProjectAnalysisExpertDLL.bpr
trunk/jcl/packages/c6/JclProjectAnalysisExpertDLL.dof
trunk/jcl/packages/c6/JclProjectAnalysisExpertDLL.rc
trunk/jcl/packages/c6/JclRepositoryExpert.cpp
trunk/jcl/packages/c6/JclRepositoryExpert.dpk
trunk/jcl/packages/c6/JclRepositoryExpertDLL.cpp
trunk/jcl/packages/c6/JclSIMDViewExpert.bpk
trunk/jcl/packages/c6/JclSIMDViewExpert.dof
trunk/jcl/packages/c6/JclSIMDViewExpert.rc
trunk/jcl/packages/c6/JclSIMDViewExpertDLL.bpf
trunk/jcl/packages/c6/JclSIMDViewExpertDLL.bpr
trunk/jcl/packages/c6/JclSIMDViewExpertDLL.dof
trunk/jcl/packages/c6/JclSIMDViewExpertDLL.rc
trunk/jcl/packages/c6/JclThreadNameExpert.bpk
trunk/jcl/packages/c6/JclThreadNameExpert.dof
trunk/jcl/packages/c6/JclThreadNameExpert.rc
trunk/jcl/packages/c6/JclThreadNameExpertDLL.bpf
trunk/jcl/packages/c6/JclThreadNameExpertDLL.bpr
trunk/jcl/packages/c6/JclThreadNameExpertDLL.dof
trunk/jcl/packages/c6/JclThreadNameExpertDLL.rc
trunk/jcl/packages/c6/JclUsesExpert.bpk
trunk/jcl/packages/c6/JclUsesExpert.dof
trunk/jcl/packages/c6/JclUsesExpert.rc
trunk/jcl/packages/c6/JclUsesExpertDLL.bpf
trunk/jcl/packages/c6/JclUsesExpertDLL.bpr
trunk/jcl/packages/c6/JclUsesExpertDLL.dof
trunk/jcl/packages/c6/JclUsesExpertDLL.rc
trunk/jcl/packages/c6/JclVClx.bpk
trunk/jcl/packages/c6/JclVClx.dof
trunk/jcl/packages/c6/JclVClx.rc
trunk/jcl/packages/c6/JclVcl.bpk
trunk/jcl/packages/c6/JclVcl.dof
trunk/jcl/packages/c6/JclVcl.rc
trunk/jcl/packages/c6/JclVersionControlExpert.bpk
trunk/jcl/packages/c6/JclVersionControlExpert.dof
trunk/jcl/packages/c6/JclVersionControlExpert.rc
trunk/jcl/packages/c6/JclVersionControlExpertDLL.bpf
trunk/jcl/packages/c6/JclVersionControlExpertDLL.bpr
trunk/jcl/packages/c6/JclVersionControlExpertDLL.dof
trunk/jcl/packages/c6/JclVersionControlExpertDLL.rc
trunk/jcl/packages/c6/dirinfo.txt
trunk/jcl/packages/c6/template.bpf
trunk/jcl/packages/c6/template.bpk
trunk/jcl/packages/c6/template.bpr
trunk/jcl/packages/c6/template.dof
trunk/jcl/packages/c6/template.rc
trunk/jcl/packages/cs1/
trunk/jcl/packages/cs1/Jcl.bdsproj
trunk/jcl/packages/cs1/Jcl.rc
trunk/jcl/packages/cs1/JclBaseExpert.bdsproj
trunk/jcl/packages/cs1/JclBaseExpert.rc
trunk/jcl/packages/cs1/JclFavoriteFoldersExpertDLL.bdsproj
trunk/jcl/packages/cs1/JclFavoriteFoldersExpertDLL.rc
trunk/jcl/packages/cs1/JclVersionControlExpertDLL.bdsproj
trunk/jcl/packages/cs1/JclVersionControlExpertDLL.rc
trunk/jcl/packages/cs1/template.bdsproj
trunk/jcl/packages/cs1/template.rc
trunk/jcl/packages/d10/
trunk/jcl/packages/d10/Jcl.bdsproj
trunk/jcl/packages/d10/Jcl.rc
trunk/jcl/packages/d10/JclBaseExpert.bdsproj
trunk/jcl/packages/d10/JclBaseExpert.rc
trunk/jcl/packages/d10/JclDebugExpert.bdsproj
trunk/jcl/packages/d10/JclDebugExpert.rc
trunk/jcl/packages/d10/JclDebugExpertDLL.bdsproj
trunk/jcl/packages/d10/JclDebugExpertDLL.rc
trunk/jcl/packages/d10/JclExperts.bdsgroup
trunk/jcl/packages/d10/JclFavoriteFoldersExpert.bdsproj
trunk/jcl/packages/d10/JclFavoriteFoldersExpert.rc
trunk/jcl/packages/d10/JclFavoriteFoldersExpertDLL.bdsproj
trunk/jcl/packages/d10/JclFavoriteFoldersExpertDLL.rc
trunk/jcl/packages/d10/JclProjectAnalysisExpert.bdsproj
trunk/jcl/packages/d10/JclProjectAnalysisExpert.rc
trunk/jcl/packages/d10/JclProjectAnalysisExpertDLL.bdsproj
trunk/jcl/packages/d10/JclProjectAnalysisExpertDLL.rc
trunk/jcl/packages/d10/JclRepositoryExpert.dpk
trunk/jcl/packages/d10/JclRepositoryExpertDLL.dpr
trunk/jcl/packages/d10/JclSIMDViewExpert.bdsproj
trunk/jcl/packages/d10/JclSIMDViewExpert.rc
trunk/jcl/packages/d10/JclSIMDViewExpertDLL.bdsproj
trunk/jcl/packages/d10/JclSIMDViewExpertDLL.rc
trunk/jcl/packages/d10/JclThreadNameExpert.bdsproj
trunk/jcl/packages/d10/JclThreadNameExpert.rc
trunk/jcl/packages/d10/JclThreadNameExpertDLL.bdsproj
trunk/jcl/packages/d10/JclThreadNameExpertDLL.rc
trunk/jcl/packages/d10/JclVcl.bdsproj
trunk/jcl/packages/d10/JclVcl.rc
trunk/jcl/packages/d10/JclVersionControlExpert.bdsproj
trunk/jcl/packages/d10/JclVersionControlExpert.rc
trunk/jcl/packages/d10/JclVersionControlExpertDLL.bdsproj
trunk/jcl/packages/d10/JclVersionControlExpertDLL.rc
trunk/jcl/packages/d10/template.bdsproj
trunk/jcl/packages/d10/template.rc
trunk/jcl/packages/d10.net/
trunk/jcl/packages/d10.net/Jedi.Jcl.bdsproj
trunk/jcl/packages/d10.net/template.bdsproj
trunk/jcl/packages/d10.net/template.dpr
trunk/jcl/packages/d11/
trunk/jcl/packages/d11/Jcl.dpk
trunk/jcl/packages/d11/Jcl.rc
trunk/jcl/packages/d11/JclBaseExpert.dpk
trunk/jcl/packages/d11/JclBaseExpert.rc
trunk/jcl/packages/d11/JclDebugExpert.dpk
trunk/jcl/packages/d11/JclDebugExpert.rc
trunk/jcl/packages/d11/JclDebugExpertDLL.dpr
trunk/jcl/packages/d11/JclDebugExpertDLL.rc
trunk/jcl/packages/d11/JclFavoriteFoldersExpert.dpk
trunk/jcl/packages/d11/JclFavoriteFoldersExpert.rc
trunk/jcl/packages/d11/JclFavoriteFoldersExpertDLL.dpr
trunk/jcl/packages/d11/JclFavoriteFoldersExpertDLL.rc
trunk/jcl/packages/d11/JclProjectAnalysisExpert.dpk
trunk/jcl/packages/d11/JclProjectAnalysisExpert.rc
trunk/jcl/packages/d11/JclProjectAnalysisExpertDLL.dpr
trunk/jcl/packages/d11/JclProjectAnalysisExpertDLL.rc
trunk/jcl/packages/d11/JclRepositoryExpert.dpk
trunk/jcl/packages/d11/JclRepositoryExpert.rc
trunk/jcl/packages/d11/JclRepositoryExpertDLL.dpr
trunk/jcl/packages/d11/JclRepositoryExpertDLL.rc
trunk/jcl/packages/d11/JclSIMDViewExpert.dpk
trunk/jcl/packages/d11/JclSIMDViewExpert.rc
trunk/jcl/packages/d11/JclSIMDViewExpertDLL.dpr
trunk/jcl/packages/d11/JclSIMDViewExpertDLL.rc
trunk/jcl/packages/d11/JclThreadNameExpert.dpk
trunk/jcl/packages/d11/JclThreadNameExpert.rc
trunk/jcl/packages/d11/JclThreadNameExpertDLL.dpr
trunk/jcl/packages/d11/JclThreadNameExpertDLL.rc
trunk/jcl/packages/d11/JclVcl.dpk
trunk/jcl/packages/d11/JclVcl.rc
trunk/jcl/packages/d11/JclVersionControlExpert.dpk
trunk/jcl/packages/d11/JclVersionControlExpert.rc
trunk/jcl/packages/d11/JclVersionControlExpertDLL.dpr
trunk/jcl/packages/d11/JclVersionControlExpertDLL.rc
trunk/jcl/packages/d11/template.dpk
trunk/jcl/packages/d11/template.dpr
trunk/jcl/packages/d11/template.rc
trunk/jcl/packages/d11.net/
trunk/jcl/packages/d11.net/Jedi.Jcl.dpr
trunk/jcl/packages/d11.net/Jedi.Jcl.dproj
trunk/jcl/packages/d11.net/template.dpr
trunk/jcl/packages/d11.net/template.dproj
trunk/jcl/packages/d5/
trunk/jcl/packages/d5/JclBaseExpertD50.dof
trunk/jcl/packages/d5/JclBaseExpertD50.rc
trunk/jcl/packages/d5/JclD50.dof
trunk/jcl/packages/d5/JclD50.rc
trunk/jcl/packages/d5/JclDebugExpertD50.dof
trunk/jcl/packages/d5/JclDebugExpertD50.rc
trunk/jcl/packages/d5/JclDebugExpertDLLD50.dof
trunk/jcl/packages/d5/JclDebugExpertDLLD50.rc
trunk/jcl/packages/d5/JclFavoriteFoldersExpertD50.dof
trunk/jcl/packages/d5/JclFavoriteFoldersExpertD50.rc
trunk/jcl/packages/d5/JclFavoriteFoldersExpertDLLD50.dof
trunk/jcl/packages/d5/JclFavoriteFoldersExpertDLLD50.rc
trunk/jcl/packages/d5/JclProjectAnalysisExpertD50.dof
trunk/jcl/packages/d5/JclProjectAnalysisExpertD50.rc
trunk/jcl/packages/d5/JclProjectAnalysisExpertDLLD50.dof
trunk/jcl/packages/d5/JclProjectAnalysisExpertDLLD50.rc
trunk/jcl/packages/d5/JclRepositoryExpertD50.dpk
trunk/jcl/packages/d5/JclRepositoryExpertDLLD50.dpr
trunk/jcl/packages/d5/JclSIMDViewExpertD50.dof
trunk/jcl/packages/d5/JclSIMDViewExpertD50.rc
trunk/jcl/packages/d5/JclSIMDViewExpertDLLD50.dof
trunk/jcl/packages/d5/JclSIMDViewExpertDLLD50.rc
trunk/jcl/packages/d5/JclThreadNameExpertD50.dof
trunk/jcl/packages/d5/JclThreadNameExpertD50.rc
trunk/jcl/packages/d5/JclThreadNameExpertDLLD50.dof
trunk/jcl/packages/d5/JclThreadNameExpertDLLD50.rc
trunk/jcl/packages/d5/JclUsesExpertD50.dof
trunk/jcl/packages/d5/JclUsesExpertD50.rc
trunk/jcl/packages/d5/JclUsesExpertDLLD50.dof
trunk/jcl/packages/d5/JclUsesExpertDLLD50.rc
trunk/jcl/packages/d5/JclVersionControlExpertD50.dof
trunk/jcl/packages/d5/JclVersionControlExpertD50.rc
trunk/jcl/packages/d5/JclVersionControlExpertDLLD50.dof
trunk/jcl/packages/d5/JclVersionControlExpertDLLD50.rc
trunk/jcl/packages/d5/dirinfo.txt
trunk/jcl/packages/d5/template.dof
trunk/jcl/packages/d5/template.rc
trunk/jcl/packages/d6/
trunk/jcl/packages/d6/Jcl.dof
trunk/jcl/packages/d6/Jcl.rc
trunk/jcl/packages/d6/JclBaseExpert.dof
trunk/jcl/packages/d6/JclBaseExpert.rc
trunk/jcl/packages/d6/JclDebugExpert.dof
trunk/jcl/packages/d6/JclDebugExpert.rc
trunk/jcl/packages/d6/JclDebugExpertDLL.dof
trunk/jcl/packages/d6/JclDebugExpertDLL.rc
trunk/jcl/packages/d6/JclFavoriteFoldersExpert.dof
trunk/jcl/packages/d6/JclFavoriteFoldersExpert.rc
trunk/jcl/packages/d6/JclFavoriteFoldersExpertDLL.dof
trunk/jcl/packages/d6/JclFavoriteFoldersExpertDLL.rc
trunk/jcl/packages/d6/JclProjectAnalysisExpert.dof
trunk/jcl/packages/d6/JclProjectAnalysisExpert.rc
trunk/jcl/packages/d6/JclProjectAnalysisExpertDLL.dof
trunk/jcl/packages/d6/JclProjectAnalysisExpertDLL.rc
trunk/jcl/packages/d6/JclRepositoryExpert.dpk
trunk/jcl/packages/d6/JclRepositoryExpertDLL.dpr
trunk/jcl/packages/d6/JclSIMDViewExpert.dof
trunk/jcl/packages/d6/JclSIMDViewExpert.rc
trunk/jcl/packages/d6/JclSIMDViewExpertDLL.dof
trunk/jcl/packages/d6/JclSIMDViewExpertDLL.rc
trunk/jcl/packages/d6/JclThreadNameExpert.dof
trunk/jcl/packages/d6/JclThreadNameExpert.rc
trunk/jcl/packages/d6/JclThreadNameExpertDLL.dof
trunk/jcl/packages/d6/JclThreadNameExpertDLL.rc
trunk/jcl/packages/d6/JclUsesExpert.dof
trunk/jcl/packages/d6/JclUsesExpert.rc
trunk/jcl/packages/d6/JclUsesExpertDLL.dof
trunk/jcl/packages/d6/JclUsesExpertDLL.rc
trunk/jcl/packages/d6/JclVClx.dof
trunk/jcl/packages/d6/JclVClx.rc
trunk/jcl/packages/d6/JclVcl.dof
trunk/jcl/packages/d6/JclVcl.rc
trunk/jcl/packages/d6/JclVersionControlExpert.dof
trunk/jcl/packages/d6/JclVersionControlExpert.rc
trunk/jcl/packages/d6/JclVersionControlExpertDLL.dof
trunk/jcl/packages/d6/JclVersionControlExpertDLL.rc
trunk/jcl/packages/d6/dirinfo.txt
trunk/jcl/packages/d6/template.dof
trunk/jcl/packages/d6/template.rc
trunk/jcl/packages/d7/
trunk/jcl/packages/d7/Jcl.dof
trunk/jcl/packages/d7/Jcl.rc
trunk/jcl/packages/d7/JclBaseExpert.dof
trunk/jcl/packages/d7/JclBaseExpert.rc
trunk/jcl/packages/d7/JclDebugExpert.dof
trunk/jcl/packages/d7/JclDebugExpert.rc
trunk/jcl/packages/d7/JclDebugExpertDLL.dof
trunk/jcl/packages/d7/JclDebugExpertDLL.rc
trunk/jcl/packages/d7/JclFavoriteFoldersExpert.dof
trunk/jcl/packages/d7/JclFavoriteFoldersExpert.rc
trunk/jcl/packages/d7/JclFavoriteFoldersExpertDLL.dof
trunk/jcl/packages/d7/JclFavoriteFoldersExpertDLL.rc
trunk/jcl/packages/d7/JclProjectAnalysisExpert.dof
trunk/jcl/packages/d7/JclProjectAnalysisExpert.rc
trunk/jcl/packages/d7/JclProjectAnalysisExpertDLL.dof
trunk/jcl/packages/d7/JclProjectAnalysisExpertDLL.rc
trunk/jcl/packages/d7/JclRepositoryExpert.dpk
trunk/jcl/packages/d7/JclRepositoryExpertDLL.dpr
trunk/jcl/packages/d7/JclSIMDViewExpert.dof
trunk/jcl/packages/d7/JclSIMDViewExpert.rc
trunk/jcl/packages/d7/JclSIMDViewExpertDLL.dof
trunk/jcl/packages/d7/JclSIMDViewExpertDLL.rc
trunk/jcl/packages/d7/JclThreadNameExpert.dof
trunk/jcl/packages/d7/JclThreadNameExpert.rc
trunk/jcl/packages/d7/JclThreadNameExpertDLL.dof
trunk/jcl/packages/d7/JclThreadNameExpertDLL.rc
trunk/jcl/packages/d7/JclUsesExpert.dof
trunk/jcl/packages/d7/JclUsesExpert.rc
trunk/jcl/packages/d7/JclUsesExpertDLL.dof
trunk/jcl/packages/d7/JclUsesExpertDLL.rc
trunk/jcl/packages/d7/JclVClx.dof
trunk/jcl/packages/d7/JclVClx.rc
trunk/jcl/packages/d7/JclVcl.dof
trunk/jcl/packages/d7/JclVcl.rc
trunk/jcl/packages/d7/JclVersionControlExpert.dof
trunk/jcl/packages/d7/JclVersionControlExpert.rc
trunk/jcl/packages/d7/JclVersionControlExpertDLL.dof
trunk/jcl/packages/d7/JclVersionControlExpertDLL.rc
trunk/jcl/packages/d7/dirinfo.txt
trunk/jcl/packages/d7/template.dof
trunk/jcl/packages/d7/template.rc
trunk/jcl/packages/d8/
trunk/jcl/packages/d8/Jcl.bdsproj
trunk/jcl/packages/d8/Jcl.rc
trunk/jcl/packages/d8/JclBaseExpert.bdsproj
trunk/jcl/packages/d8/JclBaseExpert.rc
trunk/jcl/packages/d8/JclFavoriteFoldersExpertDLL.bdsproj
trunk/jcl/packages/d8/JclFavoriteFoldersExpertDLL.rc
trunk/jcl/packages/d8/JclVersionControlExpertDLL.bdsproj
trunk/jcl/packages/d8/JclVersionControlExpertDLL.rc
trunk/jcl/packages/d8/template.bdsproj
trunk/jcl/packages/d8/template.rc
trunk/jcl/packages/d9/
trunk/jcl/packages/d9/Jcl.bdsproj
trunk/jcl/packages/d9/Jcl.rc
trunk/jcl/packages/d9/JclBaseExpert.bdsproj
trunk/jcl/packages/d9/JclBaseExpert.rc
trunk/jcl/packages/d9/JclDebugExpert.bdsproj
trunk/jcl/packages/d9/JclDebugExpert.rc
trunk/jcl/packages/d9/JclDebugExpertDLL.bdsproj
trunk/jcl/packages/d9/JclDebugExpertDLL.rc
trunk/jcl/packages/d9/JclExperts.bdsgroup
trunk/jcl/packages/d9/JclFavoriteFoldersExpert.bdsproj
trunk/jcl/packages/d9/JclFavoriteFoldersExpert.rc
trunk/jcl/packages/d9/JclFavoriteFoldersExpertDLL.bdsproj
trunk/jcl/packages/d9/JclFavoriteFoldersExpertDLL.rc
trunk/jcl/packages/d9/JclProjectAnalysisExpert.bdsproj
trunk/jcl/packages/d9/JclProjectAnalysisExpert.rc
trunk/jcl/packages/d9/JclProjectAnalysisExpertDLL.bdsproj
trunk/jcl/packages/d9/JclProjectAnalysisExpertDLL.rc
trunk/jcl/packages/d9/JclRepositoryExpert.dpk
trunk/jcl/packages/d9/JclRepositoryExpertDLL.dpr
trunk/jcl/packages/d9/...
[truncated message content] |
|
From: <ou...@us...> - 2007-09-17 06:45:41
|
Revision: 2174
http://jcl.svn.sourceforge.net/jcl/?rev=2174&view=rev
Author: outchy
Date: 2007-09-16 23:45:37 -0700 (Sun, 16 Sep 2007)
Log Message:
-----------
missing file for Delphi.net 2007 support
Added Paths:
-----------
trunk/jcl/lib/d11.net/
trunk/jcl/lib/d11.net/common.exc
trunk/jcl/lib/d11.net/debug/
trunk/jcl/lib/d11.net/debug/dirinfo.txt
trunk/jcl/lib/d11.net/dirinfo.txt
trunk/jcl/lib/d11.net/vcl.exc
trunk/jcl/lib/d11.net/windows.exc
trunk/jcl/packages/JclNetPackagesD110.groupproj
trunk/jcl/packages/d11.net/
trunk/jcl/packages/d11.net/Jedi.Jcl.dpr
trunk/jcl/packages/d11.net/Jedi.Jcl.dproj
trunk/jcl/packages/d11.net/template.dpr
trunk/jcl/packages/d11.net/template.dproj
Added: trunk/jcl/lib/d11.net/common.exc
===================================================================
--- trunk/jcl/lib/d11.net/common.exc (rev 0)
+++ trunk/jcl/lib/d11.net/common.exc 2007-09-17 06:45:37 UTC (rev 2174)
@@ -0,0 +1,25 @@
+bzip2.pas
+Jcl8087.pas
+JclBorlandTools.pas
+JclCompression.pas
+JclCounter.pas
+JclEDI.pas
+JclEDISEF.pas
+JclEDITranslators.pas
+JclEDIXML.pas
+JclEDI_ANSIX12.pas
+JclEDI_ANSIX12_Ext.pas
+JclEDI_UNEDIFACT.pas
+JclEDI_UNEDIFACT_Ext.pas
+JclExprEval.pas
+JclMIDI.pas
+JclPCRE.pas
+JclSchedule.pas
+JclStreams.pas
+JclStrHashMap.pas
+JclStringLists.pas
+JclUnitVersioning.pas
+JclUnitVersioningProviders.pas
+JclValidation.pas
+JclWideStrings.pas
+pcre.pas
\ No newline at end of file
Property changes on: trunk/jcl/lib/d11.net/common.exc
___________________________________________________________________
Name: svn:keywords
+ URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id
Added: trunk/jcl/lib/d11.net/debug/dirinfo.txt
===================================================================
--- trunk/jcl/lib/d11.net/debug/dirinfo.txt (rev 0)
+++ trunk/jcl/lib/d11.net/debug/dirinfo.txt 2007-09-17 06:45:37 UTC (rev 2174)
@@ -0,0 +1 @@
+This directory is intended a common place for .dcuil files of Delphi 2007 .NET packages with debug information.
\ No newline at end of file
Property changes on: trunk/jcl/lib/d11.net/debug/dirinfo.txt
___________________________________________________________________
Name: svn:keywords
+ URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id
Added: trunk/jcl/lib/d11.net/dirinfo.txt
===================================================================
--- trunk/jcl/lib/d11.net/dirinfo.txt (rev 0)
+++ trunk/jcl/lib/d11.net/dirinfo.txt 2007-09-17 06:45:37 UTC (rev 2174)
@@ -0,0 +1 @@
+This directory is intended a common place for .dcuil files of Delphi 2007 .NET packages.
\ No newline at end of file
Property changes on: trunk/jcl/lib/d11.net/dirinfo.txt
___________________________________________________________________
Name: svn:keywords
+ URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id
Added: trunk/jcl/lib/d11.net/vcl.exc
===================================================================
--- trunk/jcl/lib/d11.net/vcl.exc (rev 0)
+++ trunk/jcl/lib/d11.net/vcl.exc 2007-09-17 06:45:37 UTC (rev 2174)
@@ -0,0 +1,3 @@
+JclGraphics.pas
+JclGraphUtils.pas
+JclPrint.pas
\ No newline at end of file
Property changes on: trunk/jcl/lib/d11.net/vcl.exc
___________________________________________________________________
Name: svn:keywords
+ URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id
Added: trunk/jcl/lib/d11.net/windows.exc
===================================================================
--- trunk/jcl/lib/d11.net/windows.exc (rev 0)
+++ trunk/jcl/lib/d11.net/windows.exc 2007-09-17 06:45:37 UTC (rev 2174)
@@ -0,0 +1,37 @@
+Hardlinks.pas
+JclAppInst.pas
+JclCIL.pas
+JclCLR.pas
+JclCOM.pas
+JclConsole.pas
+JclDebug.pas
+JclDotNet.pas
+JclHookExcept.pas
+JclLANMan.pas
+JclLocales.pas
+JclMapi.pas
+JclMetadata.pas
+JclMiscel.pas
+JclMsdosSys.pas
+JclMultimedia.pas
+JclNTFS.pas
+JclPeImage.pas
+JclRegistry.pas
+JclSecurity.pas
+JclShell.pas
+JclStructStorage.pas
+JclSvcCtrl.pas
+JclSynch.pas
+JclTask.pas
+JclTD32.pas
+JclUnicode.pas
+JclWideFormat.pas
+JclWin32.pas
+JclWin32Ex.pas
+JclWinMIDI.pas
+mscoree_TLB.pas
+mscorlib_TLB.pas
+MSHelpServices_TLB.pas
+MSTask.pas
+Snmp.pas
+zlibh.pas
\ No newline at end of file
Property changes on: trunk/jcl/lib/d11.net/windows.exc
___________________________________________________________________
Name: svn:keywords
+ URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id
Added: trunk/jcl/packages/JclNetPackagesD110.groupproj
===================================================================
--- trunk/jcl/packages/JclNetPackagesD110.groupproj (rev 0)
+++ trunk/jcl/packages/JclNetPackagesD110.groupproj 2007-09-17 06:45:37 UTC (rev 2174)
@@ -0,0 +1,34 @@
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <ProjectGuid>{468f50c8-84e0-4b79-bb57-72d64fff9348}</ProjectGuid>
+ </PropertyGroup>
+ <ItemGroup />
+ <ItemGroup>
+ <Projects Include="d11.net\Jedi.Jcl.dproj" />
+ </ItemGroup>
+ <ProjectExtensions>
+ <Borland.Personality>Default.Personality</Borland.Personality>
+ <Borland.ProjectType />
+ <BorlandProject>
+ <BorlandProject xmlns=""> <Default.Personality> </Default.Personality> </BorlandProject></BorlandProject>
+ </ProjectExtensions>
+ <Target Name="Jedi_Jcl">
+ <MSBuild Projects="d11.net\Jedi.Jcl.dproj" Targets="" />
+ </Target>
+ <Target Name="Jedi_Jcl:Clean">
+ <MSBuild Projects="d11.net\Jedi.Jcl.dproj" Targets="Clean" />
+ </Target>
+ <Target Name="Jedi_Jcl:Make">
+ <MSBuild Projects="d11.net\Jedi.Jcl.dproj" Targets="Make" />
+ </Target>
+ <Target Name="Build">
+ <CallTarget Targets="Jedi_Jcl" />
+ </Target>
+ <Target Name="Clean">
+ <CallTarget Targets="Jedi_Jcl:Clean" />
+ </Target>
+ <Target Name="Make">
+ <CallTarget Targets="Jedi_Jcl:Make" />
+ </Target>
+ <Import Condition="Exists('$(MSBuildBinPath)\Borland.Group.Targets')" Project="$(MSBuildBinPath)\Borland.Group.Targets" />
+</Project>
\ No newline at end of file
Added: trunk/jcl/packages/d11.net/Jedi.Jcl.dpr
===================================================================
--- trunk/jcl/packages/d11.net/Jedi.Jcl.dpr (rev 0)
+++ trunk/jcl/packages/d11.net/Jedi.Jcl.dpr 2007-09-17 06:45:37 UTC (rev 2174)
@@ -0,0 +1,64 @@
+Library Jedi.Jcl;
+
+uses
+ System.Reflection,
+ System.Runtime.InteropServices
+ ,
+ JclAbstractContainers in '..\..\source\common\JclAbstractContainers.pas' ,
+ JclAlgorithms in '..\..\source\common\JclAlgorithms.pas' ,
+ JclAnsiStrings in '..\..\source\common\JclAnsiStrings.pas' ,
+ JclArrayLists in '..\..\source\common\JclArrayLists.pas' ,
+ JclArraySets in '..\..\source\common\JclArraySets.pas' ,
+ JclBase in '..\..\source\common\JclBase.pas' ,
+ JclBinaryTrees in '..\..\source\common\JclBinaryTrees.pas' ,
+ JclComplex in '..\..\source\common\JclComplex.pas' ,
+ JclContainerIntf in '..\..\source\common\JclContainerIntf.pas' ,
+ JclDateTime in '..\..\source\common\JclDateTime.pas' ,
+ JclFileUtils in '..\..\source\common\JclFileUtils.pas' ,
+ JclHashMaps in '..\..\source\common\JclHashMaps.pas' ,
+ JclHashSets in '..\..\source\common\JclHashSets.pas' ,
+ JclIniFiles in '..\..\source\common\JclIniFiles.pas' ,
+ JclLinkedLists in '..\..\source\common\JclLinkedLists.pas' ,
+ JclLogic in '..\..\source\common\JclLogic.pas' ,
+ JclMath in '..\..\source\common\JclMath.pas' ,
+ JclMime in '..\..\source\common\JclMime.pas' ,
+ JclQueues in '..\..\source\common\JclQueues.pas' ,
+ JclResources in '..\..\source\common\JclResources.pas' ,
+ JclRTTI in '..\..\source\common\JclRTTI.pas' ,
+ JclStacks in '..\..\source\common\JclStacks.pas' ,
+ JclStatistics in '..\..\source\common\JclStatistics.pas' ,
+ JclStrings in '..\..\source\common\JclStrings.pas' ,
+ JclSysInfo in '..\..\source\common\JclSysInfo.pas' ,
+ JclSysUtils in '..\..\source\common\JclSysUtils.pas' ,
+ JclUnitConv in '..\..\source\common\JclUnitConv.pas' ,
+ JclValidation in '..\..\source\common\JclValidation.pas' ,
+ JclVectors in '..\..\source\common\JclVectors.pas'
+ ;
+
+{$LIBSUFFIX '11'}
+
+[assembly: AssemblyTitle('JEDI Code Library')]
+[assembly: AssemblyDescription('JEDI Code Library RTL package')]
+[assembly: AssemblyConfiguration('')]
+[assembly: AssemblyCompany('Project JEDI')]
+[assembly: AssemblyProduct('JEDI Code Library')]
+[assembly: AssemblyCopyright('Copyright (C) 1999, 2007 Project JEDI')]
+[assembly: AssemblyTrademark('')]
+[assembly: AssemblyCulture('')]
+
+// MajorVersion.MinorVersion.BuildNumber.Revision
+[assembly: AssemblyVersion('1.102.0.2726')]
+
+// Package signature
+[assembly: AssemblyDelaySign(false)]
+[assembly: AssemblyKeyFile('')]
+[assembly: AssemblyKeyName('')]
+
+// Com visibility of the assembly
+[assembly: ComVisible(False)]
+//[assembly: Guid('')]
+//[assembly: TypeLibVersion(1, 0)]
+
+
+begin
+end.
Property changes on: trunk/jcl/packages/d11.net/Jedi.Jcl.dpr
___________________________________________________________________
Name: svn:keywords
+ URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id
Added: trunk/jcl/packages/d11.net/Jedi.Jcl.dproj
===================================================================
--- trunk/jcl/packages/d11.net/Jedi.Jcl.dproj (rev 0)
+++ trunk/jcl/packages/d11.net/Jedi.Jcl.dproj 2007-09-17 06:45:37 UTC (rev 2174)
@@ -0,0 +1,121 @@
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <ProjectGuid>{44DB645B-C167-410D-9334-38AF9F0C7913}</ProjectGuid>
+ <MainSource>Jedi.Jcl.dpr</MainSource>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <DCC_DCCCompiler>DCCIL</DCC_DCCCompiler>
+ <DCC_DependencyCheckOutputName>Jedi.Jcl110.dll</DCC_DependencyCheckOutputName>
+ <DCC_EnabledPackages>true</DCC_EnabledPackages>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <Version>7.0</Version>
+ <DCC_DebugInformation>False</DCC_DebugInformation>
+ <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols>
+ <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
+ <DCC_Define>RELEASE</DCC_Define>
+ <DCC_DcuOutput>..\..\lib\d11.net</DCC_DcuOutput>
+ <DCC_ObjOutput>..\..\lib\d11.net</DCC_ObjOutput>
+ <DCC_HppOutput>..\..\lib\d11.net</DCC_HppOutput>
+ <DCC_DcpOutput>..\..\lib\d11.net</DCC_DcpOutput>
+ <DCC_UnitSearchPath>..\..\lib\d11.net;..\..\source</DCC_UnitSearchPath>
+ <DCC_ResourcePath>..\..\lib\d11.net;..\..\source</DCC_ResourcePath>
+ <DCC_ObjPath>..\..\lib\d11.net;..\..\source</DCC_ObjPath>
+ <DCC_IncludePath>..\..\lib\d11.net;..\..\source</DCC_IncludePath>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <Version>7.0</Version>
+ <DCC_DebugInfoInExe>True</DCC_DebugInfoInExe>
+ <DCC_DebugVN>True</DCC_DebugVN>
+ <DCC_Define>DEBUG</DCC_Define>
+ <DCC_DcuOutput>..\..\lib\d11.net</DCC_DcuOutput>
+ <DCC_ObjOutput>..\..\lib\d11.net</DCC_ObjOutput>
+ <DCC_HppOutput>..\..\lib\d11.net</DCC_HppOutput>
+ <DCC_DcpOutput>..\..\lib\d11.net</DCC_DcpOutput>
+ <DCC_UnitSearchPath>..\..\lib\d11.net;..\..\source</DCC_UnitSearchPath>
+ <DCC_ResourcePath>..\..\lib\d11.net;..\..\source</DCC_ResourcePath>
+ <DCC_ObjPath>..\..\lib\d11.net;..\..\source</DCC_ObjPath>
+ <DCC_IncludePath>..\..\lib\d11.net;..\..\source</DCC_IncludePath>
+ </PropertyGroup>
+ <ProjectExtensions>
+ <Borland.Personality>DelphiDotNet.Personality</Borland.Personality>
+ <Borland.ProjectType>Library</Borland.ProjectType>
+ <BorlandProject>
+ <BorlandProject xmlns="">
+ <DelphiDotNet.Personality>
+ <Parameters>
+ <Parameters Name="UseLauncher">False</Parameters>
+ <Parameters Name="LoadAllSymbols">True</Parameters>
+ <Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
+ </Parameters>
+ <VersionInfo>
+ <VersionInfo Name="IncludeVerInfo">True</VersionInfo>
+ <VersionInfo Name="AutoIncBuild">False</VersionInfo>
+ <VersionInfo Name="MajorVer">1</VersionInfo>
+ <VersionInfo Name="MinorVer">102</VersionInfo>
+ <VersionInfo Name="Release">0</VersionInfo>
+ <VersionInfo Name="Build">2726</VersionInfo>
+ <VersionInfo Name="Debug">False</VersionInfo>
+ <VersionInfo Name="PreRelease">False</VersionInfo>
+ <VersionInfo Name="Special">False</VersionInfo>
+ <VersionInfo Name="Private">False</VersionInfo>
+ <VersionInfo Name="DLL">True</VersionInfo>
+ <VersionInfo Name="Locale">1031</VersionInfo>
+ <VersionInfo Name="CodePage">1252</VersionInfo>
+ </VersionInfo>
+ <VersionInfoKeys>
+ <VersionInfoKeys Name="CompanyName">Project JEDI</VersionInfoKeys>
+ <VersionInfoKeys Name="FileDescription">JEDI Code Library RTL package</VersionInfoKeys>
+ <VersionInfoKeys Name="FileVersion">1.102.0.2726</VersionInfoKeys>
+ <VersionInfoKeys Name="InternalName">Jedi.Jcl</VersionInfoKeys>
+ <VersionInfoKeys Name="LegalCopyright">Copyright (C) 1999, 2007 Project JEDI</VersionInfoKeys>
+ <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
+ <VersionInfoKeys Name="OriginalFilename">Jedi.Jcl110.dll</VersionInfoKeys>
+ <VersionInfoKeys Name="ProductName">JEDI Code Library</VersionInfoKeys>
+ <VersionInfoKeys Name="ProductVersion">1.102 Build 2726</VersionInfoKeys>
+ <VersionInfoKeys Name="Comments"></VersionInfoKeys>
+ </VersionInfoKeys>
+ <Source>
+ <Source Name="MainSource">Jedi.Jcl.dpr</Source>
+ </Source>
+ </DelphiDotNet.Personality>
+ </BorlandProject>
+ </BorlandProject>
+ </ProjectExtensions>
+ <ItemGroup />
+ <ItemGroup>
+ <DelphiCompile Include="Jedi.Jcl.dpr">
+ <MainSource>MainSource</MainSource>
+ </DelphiCompile>
+ <DCCReference Include="..\..\source\common\JclAbstractContainers.pas"/>
+ <DCCReference Include="..\..\source\common\JclAlgorithms.pas"/>
+ <DCCReference Include="..\..\source\common\JclAnsiStrings.pas"/>
+ <DCCReference Include="..\..\source\common\JclArrayLists.pas"/>
+ <DCCReference Include="..\..\source\common\JclArraySets.pas"/>
+ <DCCReference Include="..\..\source\common\JclBase.pas"/>
+ <DCCReference Include="..\..\source\common\JclBinaryTrees.pas"/>
+ <DCCReference Include="..\..\source\common\JclComplex.pas"/>
+ <DCCReference Include="..\..\source\common\JclContainerIntf.pas"/>
+ <DCCReference Include="..\..\source\common\JclDateTime.pas"/>
+ <DCCReference Include="..\..\source\common\JclFileUtils.pas"/>
+ <DCCReference Include="..\..\source\common\JclHashMaps.pas"/>
+ <DCCReference Include="..\..\source\common\JclHashSets.pas"/>
+ <DCCReference Include="..\..\source\common\JclIniFiles.pas"/>
+ <DCCReference Include="..\..\source\common\JclLinkedLists.pas"/>
+ <DCCReference Include="..\..\source\common\JclLogic.pas"/>
+ <DCCReference Include="..\..\source\common\JclMath.pas"/>
+ <DCCReference Include="..\..\source\common\JclMime.pas"/>
+ <DCCReference Include="..\..\source\common\JclQueues.pas"/>
+ <DCCReference Include="..\..\source\common\JclResources.pas"/>
+ <DCCReference Include="..\..\source\common\JclRTTI.pas"/>
+ <DCCReference Include="..\..\source\common\JclStacks.pas"/>
+ <DCCReference Include="..\..\source\common\JclStatistics.pas"/>
+ <DCCReference Include="..\..\source\common\JclStrings.pas"/>
+ <DCCReference Include="..\..\source\common\JclSysInfo.pas"/>
+ <DCCReference Include="..\..\source\common\JclSysUtils.pas"/>
+ <DCCReference Include="..\..\source\common\JclUnitConv.pas"/>
+ <DCCReference Include="..\..\source\common\JclValidation.pas"/>
+ <DCCReference Include="..\..\source\common\JclVectors.pas"/>
+ </ItemGroup>
+ <Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" />
+</Project>
Property changes on: trunk/jcl/packages/d11.net/Jedi.Jcl.dproj
___________________________________________________________________
Name: svn:keywords
+ URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id
Added: trunk/jcl/packages/d11.net/template.dpr
===================================================================
--- trunk/jcl/packages/d11.net/template.dpr (rev 0)
+++ trunk/jcl/packages/d11.net/template.dpr 2007-09-17 06:45:37 UTC (rev 2174)
@@ -0,0 +1,39 @@
+%PROJECT% %NAME%;
+
+uses
+<%%% START REQUIRES %%%>
+ %NAME%,
+<%%% END REQUIRES %%%>
+ ,
+<%%% START FILES %%%>
+ %UNITNAME% in '%FILENAME%' {%FORMNAMEANDTYPE%},
+<%%% END FILES %%%>
+ ;
+
+{$LIBSUFFIX '11'}
+
+[assembly: AssemblyTitle('JEDI Code Library')]
+[assembly: AssemblyDescription('%DESCRIPTION%')]
+[assembly: AssemblyConfiguration('')]
+[assembly: AssemblyCompany('Project JEDI')]
+[assembly: AssemblyProduct('JEDI Code Library')]
+[assembly: AssemblyCopyright('Copyright (C) 1999, 2007 Project JEDI')]
+[assembly: AssemblyTrademark('')]
+[assembly: AssemblyCulture('')]
+
+// MajorVersion.MinorVersion.BuildNumber.Revision
+[assembly: AssemblyVersion('%VERSION_MAJOR_NUMBER%.%VERSION_MINOR_NUMBER%.%RELEASE_NUMBER%.%BUILD_NUMBER%')]
+
+// Package signature
+[assembly: AssemblyDelaySign(false)]
+[assembly: AssemblyKeyFile('')]
+[assembly: AssemblyKeyName('')]
+
+// Com visibility of the assembly
+[assembly: ComVisible(False)]
+//[assembly: Guid('')]
+//[assembly: TypeLibVersion(1, 0)]
+
+
+begin
+end.
Property changes on: trunk/jcl/packages/d11.net/template.dpr
___________________________________________________________________
Name: svn:keywords
+ URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id
Added: trunk/jcl/packages/d11.net/template.dproj
===================================================================
--- trunk/jcl/packages/d11.net/template.dproj (rev 0)
+++ trunk/jcl/packages/d11.net/template.dproj 2007-09-17 06:45:37 UTC (rev 2174)
@@ -0,0 +1,95 @@
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <ProjectGuid>%GUID%</ProjectGuid>
+ <MainSource>%NAME%%SOURCEEXTENSION%</MainSource>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <DCC_DCCCompiler>DCCIL</DCC_DCCCompiler>
+ <DCC_DependencyCheckOutputName>%NAME%110%BINEXTENSION%</DCC_DependencyCheckOutputName>
+ <DCC_EnabledPackages>true</DCC_EnabledPackages>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <Version>7.0</Version>
+ <DCC_DebugInformation>False</DCC_DebugInformation>
+ <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols>
+ <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
+ <DCC_Define>RELEASE</DCC_Define>
+ <DCC_DcuOutput>..\..\lib\d11.net</DCC_DcuOutput>
+ <DCC_ObjOutput>..\..\lib\d11.net</DCC_ObjOutput>
+ <DCC_HppOutput>..\..\lib\d11.net</DCC_HppOutput>
+ <DCC_DcpOutput>..\..\lib\d11.net</DCC_DcpOutput>
+ <DCC_UnitSearchPath>..\..\lib\d11.net;..\..\source</DCC_UnitSearchPath>
+ <DCC_ResourcePath>..\..\lib\d11.net;..\..\source</DCC_ResourcePath>
+ <DCC_ObjPath>..\..\lib\d11.net;..\..\source</DCC_ObjPath>
+ <DCC_IncludePath>..\..\lib\d11.net;..\..\source</DCC_IncludePath>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <Version>7.0</Version>
+ <DCC_DebugInfoInExe>True</DCC_DebugInfoInExe>
+ <DCC_DebugVN>True</DCC_DebugVN>
+ <DCC_Define>DEBUG</DCC_Define>
+ <DCC_DcuOutput>..\..\lib\d11.net</DCC_DcuOutput>
+ <DCC_ObjOutput>..\..\lib\d11.net</DCC_ObjOutput>
+ <DCC_HppOutput>..\..\lib\d11.net</DCC_HppOutput>
+ <DCC_DcpOutput>..\..\lib\d11.net</DCC_DcpOutput>
+ <DCC_UnitSearchPath>..\..\lib\d11.net;..\..\source</DCC_UnitSearchPath>
+ <DCC_ResourcePath>..\..\lib\d11.net;..\..\source</DCC_ResourcePath>
+ <DCC_ObjPath>..\..\lib\d11.net;..\..\source</DCC_ObjPath>
+ <DCC_IncludePath>..\..\lib\d11.net;..\..\source</DCC_IncludePath>
+ </PropertyGroup>
+ <ProjectExtensions>
+ <Borland.Personality>DelphiDotNet.Personality</Borland.Personality>
+ <Borland.ProjectType>Library</Borland.ProjectType>
+ <BorlandProject>
+ <BorlandProject xmlns="">
+ <DelphiDotNet.Personality>
+ <Parameters>
+ <Parameters Name="UseLauncher">False</Parameters>
+ <Parameters Name="LoadAllSymbols">True</Parameters>
+ <Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
+ </Parameters>
+ <VersionInfo>
+ <VersionInfo Name="IncludeVerInfo">True</VersionInfo>
+ <VersionInfo Name="AutoIncBuild">False</VersionInfo>
+ <VersionInfo Name="MajorVer">%VERSION_MAJOR_NUMBER%</VersionInfo>
+ <VersionInfo Name="MinorVer">%VERSION_MINOR_NUMBER%</VersionInfo>
+ <VersionInfo Name="Release">%RELEASE_NUMBER%</VersionInfo>
+ <VersionInfo Name="Build">%BUILD_NUMBER%</VersionInfo>
+ <VersionInfo Name="Debug">False</VersionInfo>
+ <VersionInfo Name="PreRelease">False</VersionInfo>
+ <VersionInfo Name="Special">False</VersionInfo>
+ <VersionInfo Name="Private">False</VersionInfo>
+ <VersionInfo Name="DLL">%ISDLL%</VersionInfo>
+ <VersionInfo Name="Locale">1031</VersionInfo>
+ <VersionInfo Name="CodePage">1252</VersionInfo>
+ </VersionInfo>
+ <VersionInfoKeys>
+ <VersionInfoKeys Name="CompanyName">Project JEDI</VersionInfoKeys>
+ <VersionInfoKeys Name="FileDescription">%DESCRIPTION%</VersionInfoKeys>
+ <VersionInfoKeys Name="FileVersion">%VERSION_MAJOR_NUMBER%.%VERSION_MINOR_NUMBER%.%RELEASE_NUMBER%.%BUILD_NUMBER%</VersionInfoKeys>
+ <VersionInfoKeys Name="InternalName">%NAME%</VersionInfoKeys>
+ <VersionInfoKeys Name="LegalCopyright">Copyright (C) 1999, 2007 Project JEDI</VersionInfoKeys>
+ <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
+ <VersionInfoKeys Name="OriginalFilename">%NAME%110%BINEXTENSION%</VersionInfoKeys>
+ <VersionInfoKeys Name="ProductName">JEDI Code Library</VersionInfoKeys>
+ <VersionInfoKeys Name="ProductVersion">%VERSION_MAJOR_NUMBER%.%VERSION_MINOR_NUMBER% Build %BUILD_NUMBER%</VersionInfoKeys>
+ <VersionInfoKeys Name="Comments"></VersionInfoKeys>
+ </VersionInfoKeys>
+ <Source>
+ <Source Name="MainSource">%NAME%%SOURCEEXTENSION%</Source>
+ </Source>
+ </DelphiDotNet.Personality>
+ </BorlandProject>
+ </BorlandProject>
+ </ProjectExtensions>
+ <ItemGroup />
+ <ItemGroup>
+ <DelphiCompile Include="%NAME%%SOURCEEXTENSION%">
+ <MainSource>MainSource</MainSource>
+ </DelphiCompile>
+<%%% START FILES %%%>
+ <DCCReference Include="%FILENAME%"/>
+<%%% END FILES %%%>
+ </ItemGroup>
+ <Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" />
+</Project>
\ No newline at end of file
Property changes on: trunk/jcl/packages/d11.net/template.dproj
___________________________________________________________________
Name: svn:keywords
+ URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ou...@us...> - 2007-09-16 10:02:33
|
Revision: 2173
http://jcl.svn.sourceforge.net/jcl/?rev=2173&view=rev
Author: outchy
Date: 2007-09-16 03:02:31 -0700 (Sun, 16 Sep 2007)
Log Message:
-----------
adding double colon
Modified Paths:
--------------
trunk/jcl/source/common/Jcl8087.pas
Modified: trunk/jcl/source/common/Jcl8087.pas
===================================================================
--- trunk/jcl/source/common/Jcl8087.pas 2007-09-16 09:59:38 UTC (rev 2172)
+++ trunk/jcl/source/common/Jcl8087.pas 2007-09-16 10:02:31 UTC (rev 2173)
@@ -31,8 +31,8 @@
{ }
{**************************************************************************************************}
{ }
-{ Last modified: $Date $ }
-{ Revision: $Rev $ }
+{ Last modified: $Date:: $ }
+{ Revision: $Rev:: $ }
{ }
{**************************************************************************************************}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ou...@us...> - 2007-09-16 09:59:39
|
Revision: 2172
http://jcl.svn.sourceforge.net/jcl/?rev=2172&view=rev
Author: outchy
Date: 2007-09-16 02:59:38 -0700 (Sun, 16 Sep 2007)
Log Message:
-----------
testing fixed-width Date and Rev props
Modified Paths:
--------------
trunk/jcl/source/common/Jcl8087.pas
Modified: trunk/jcl/source/common/Jcl8087.pas
===================================================================
--- trunk/jcl/source/common/Jcl8087.pas 2007-09-16 09:55:01 UTC (rev 2171)
+++ trunk/jcl/source/common/Jcl8087.pas 2007-09-16 09:59:38 UTC (rev 2172)
@@ -31,7 +31,8 @@
{ }
{**************************************************************************************************}
{ }
-{ $Id $ }
+{ Last modified: $Date $ }
+{ Revision: $Rev $ }
{ }
{**************************************************************************************************}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ou...@us...> - 2007-09-16 09:55:03
|
Revision: 2171
http://jcl.svn.sourceforge.net/jcl/?rev=2171&view=rev
Author: outchy
Date: 2007-09-16 02:55:01 -0700 (Sun, 16 Sep 2007)
Log Message:
-----------
testing fixed width Id tag in header
Modified Paths:
--------------
trunk/jcl/source/common/Jcl8087.pas
Modified: trunk/jcl/source/common/Jcl8087.pas
===================================================================
--- trunk/jcl/source/common/Jcl8087.pas 2007-09-16 09:20:40 UTC (rev 2170)
+++ trunk/jcl/source/common/Jcl8087.pas 2007-09-16 09:55:01 UTC (rev 2171)
@@ -30,9 +30,11 @@
{ retrieving the coprocessor's status word. }
{ }
{**************************************************************************************************}
+{ }
+{ $Id $ }
+{ }
+{**************************************************************************************************}
-// Last modified: $Date$
-
unit Jcl8087;
{$I jcl.inc}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ou...@us...> - 2007-09-16 09:20:42
|
Revision: 2170
http://jcl.svn.sourceforge.net/jcl/?rev=2170&view=rev
Author: outchy
Date: 2007-09-16 02:20:40 -0700 (Sun, 16 Sep 2007)
Log Message:
-----------
Mantis 4229 JclPrint.DirectPrint does not print anything; new parameter to set document name.
Modified Paths:
--------------
trunk/jcl/source/vcl/JclPrint.pas
Modified: trunk/jcl/source/vcl/JclPrint.pas
===================================================================
--- trunk/jcl/source/vcl/JclPrint.pas 2007-09-16 08:25:13 UTC (rev 2169)
+++ trunk/jcl/source/vcl/JclPrint.pas 2007-09-16 09:20:40 UTC (rev 2170)
@@ -22,6 +22,8 @@
{ Contributors: }
{ Marcel van Brakel }
{ Matthias Thoma (mthoma) }
+{ Karl Ivar Hansen }
+{ Martin Cakrt }
{ }
{**************************************************************************************************}
@@ -153,7 +155,7 @@
property DpiY: Integer read FiDpiY write FiDpiY;
end;
-procedure DirectPrint(const Printer, Data: string);
+procedure DirectPrint(const Printer, Data: string; const DocumentName: string = '');
procedure SetPrinterPixelsPerInch;
function GetPrinterResolution: TPoint;
function CharFitsWithinDots(const Text: string; const Dots: Integer): Integer;
@@ -201,7 +203,7 @@
cPrintSpool = 'winspool.drv';
// Misc. functions
-procedure DirectPrint(const Printer, Data: string);
+procedure DirectPrint(const Printer, Data, DocumentName: string);
const
cRaw = 'RAW';
type
@@ -227,7 +229,10 @@
if not OpenPrinter(PChar(Printer), PrinterHandle, @Defaults) then
raise EJclPrinterError.CreateRes(@RsInvalidPrinter);
// Fill in the structure with info about this "document"
- DocInfo.DocName := PChar(RsSpoolerDocName);
+ if DocumentName = '' then
+ DocInfo.DocName := PChar(RsSpoolerDocName)
+ else
+ DocInfo.DocName := PChar(DocumentName);
DocInfo.OutputFile := nil;
DocInfo.Datatype := cRaw;
try
@@ -240,7 +245,7 @@
EJclPrinterError.CreateRes(@RsNAStartPage);
try
// Send the data to the printer
- if not WritePrinter(PrinterHandle, @Data, Count, BytesWritten) then
+ if not WritePrinter(PrinterHandle, PChar(Data), Count, BytesWritten) then
EJclPrinterError.CreateRes(@RsNASendData);
finally
// End the page
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ou...@us...> - 2007-09-16 08:25:15
|
Revision: 2169
http://jcl.svn.sourceforge.net/jcl/?rev=2169&view=rev
Author: outchy
Date: 2007-09-16 01:25:13 -0700 (Sun, 16 Sep 2007)
Log Message:
-----------
Donation from Andreas Schmidt: StringToFile to append data to the end.
Modified Paths:
--------------
trunk/jcl/source/common/JclAnsiStrings.pas
trunk/jcl/source/common/JclStrings.pas
Modified: trunk/jcl/source/common/JclAnsiStrings.pas
===================================================================
--- trunk/jcl/source/common/JclAnsiStrings.pas 2007-09-15 18:31:36 UTC (rev 2168)
+++ trunk/jcl/source/common/JclAnsiStrings.pas 2007-09-16 08:25:13 UTC (rev 2169)
@@ -38,6 +38,7 @@
{ Robert Lee }
{ Robert Marquardt (marquardt) }
{ Robert Rossmair (rrossmair) }
+{ Andreas Schmidt }
{ }
{**************************************************************************************************}
{ }
@@ -339,7 +340,7 @@
function BooleanToStr(B: Boolean): AnsiString;
{$ENDIF KEEP_DEPRECATED}
function FileToString(const FileName: AnsiString): AnsiString;
-procedure StringToFile(const FileName, Contents: AnsiString);
+procedure StringToFile(const FileName, Contents: AnsiString; Append: Boolean = False);
function StrToken(var S: AnsiString; Separator: AnsiChar): AnsiString;
{$IFNDEF CLR}
procedure StrTokens(const S: AnsiString; const List: TStrings);
@@ -377,7 +378,7 @@
{$IFDEF HAS_UNIT_LIBC}
Libc,
{$ENDIF HAS_UNIT_LIBC}
- JclLogic, JclResources;
+ JclLogic, JclResources, JclStreams;
//=== Internal ===============================================================
@@ -3746,13 +3747,18 @@
end;
end;
-procedure StringToFile(const FileName: AnsiString; const Contents: AnsiString);
+procedure StringToFile(const FileName: AnsiString; const Contents: AnsiString; Append: Boolean);
var
FS: TFileStream;
Len: Integer;
begin
- FS := TFileStream.Create(FileName, fmCreate);
+ if Append and FileExists(filename) then
+ FS := TFileStream.Create(FileName, fmOpenReadWrite or fmShareDenyWrite)
+ else
+ FS := TFileStream.Create(FileName, fmCreate);
try
+ if Append then
+ StreamSeek(FS, 0, soEnd); // faster than .Position := .Size
Len := Length(Contents);
if Len > 0 then
{$IFDEF CLR}
Modified: trunk/jcl/source/common/JclStrings.pas
===================================================================
--- trunk/jcl/source/common/JclStrings.pas 2007-09-15 18:31:36 UTC (rev 2168)
+++ trunk/jcl/source/common/JclStrings.pas 2007-09-16 08:25:13 UTC (rev 2169)
@@ -39,6 +39,7 @@
{ Robert Lee }
{ Robert Marquardt (marquardt) }
{ Robert Rossmair (rrossmair) }
+{ Andreas Schmidt }
{ }
{**************************************************************************************************}
{ }
@@ -350,7 +351,7 @@
function BooleanToStr(B: Boolean): string;
{$ENDIF KEEP_DEPRECATED}
function FileToString(const FileName: string): AnsiString;
-procedure StringToFile(const FileName: string; const Contents: AnsiString);
+procedure StringToFile(const FileName: string; const Contents: AnsiString; Append: Boolean = False);
function StrToken(var S: string; Separator: Char): string;
procedure StrTokens(const S: string; const List: TStrings);
procedure StrTokenToStrings(S: string; Separator: Char; const List: TStrings);
@@ -499,7 +500,7 @@
{$IFDEF HAS_UNIT_LIBC}
Libc,
{$ENDIF HAS_UNIT_LIBC}
- JclLogic, JclResources;
+ JclLogic, JclResources, JclStreams;
//=== Internal ===============================================================
@@ -3975,25 +3976,29 @@
end;
end;
-procedure StringToFile(const FileName: string; const Contents: AnsiString);
+procedure StringToFile(const FileName: string; const Contents: AnsiString; Append: Boolean);
var
- fs: TFileStream;
+ FS: TFileStream;
Len: Integer;
begin
- fs := TFileStream.Create(FileName, fmCreate);
+ if Append and FileExists(filename) then
+ FS := TFileStream.Create(FileName, fmOpenReadWrite or fmShareDenyWrite)
+ else
+ FS := TFileStream.Create(FileName, fmCreate);
try
+ if Append then
+ StreamSeek(FS, 0, soEnd); // faster than .Position := .Size
Len := Length(Contents);
if Len > 0 then
{$IFDEF CLR}
- fs.WriteBuffer(BytesOf(Contents), Len);
+ FS.WriteBuffer(BytesOf(Contents), Len);
{$ELSE}
- fs.WriteBuffer(Contents[1], Len);
+ FS.WriteBuffer(Contents[1], Len);
{$ENDIF CLR}
finally
- fs.Free;
+ FS.Free;
end;
end;
-
function StrToken(var S: string; Separator: Char): string;
var
I: Integer;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ah...@us...> - 2007-09-15 18:31:41
|
Revision: 2168
http://jcl.svn.sourceforge.net/jcl/?rev=2168&view=rev
Author: ahuser
Date: 2007-09-15 11:31:36 -0700 (Sat, 15 Sep 2007)
Log Message:
-----------
Better bug/workaround description
Modified Paths:
--------------
trunk/jcl/source/windows/JclHookExcept.pas
Modified: trunk/jcl/source/windows/JclHookExcept.pas
===================================================================
--- trunk/jcl/source/windows/JclHookExcept.pas 2007-09-15 17:10:44 UTC (rev 2167)
+++ trunk/jcl/source/windows/JclHookExcept.pas 2007-09-15 18:31:36 UTC (rev 2168)
@@ -37,7 +37,12 @@
{$I jcl.inc}
{$IFDEF COMPILER5}
-{$Y+} // workaround for Delphi 5 compiler internal compiler error L1496
+{ The Delphi 5 compiler crashes with the internal compiler error L1496 if the Y+
+ option is missing for this file. Without this Y+ line the compiler can BUILD the
+ JCL package but cannot MAKE it without failing with an internal error.
+ Furthermore the JVCL Installer cannot be compiled without the compiler internal
+ error L1496. }
+{$Y+}
{$ENDIF COMPILER5}
uses
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ah...@us...> - 2007-09-15 17:10:46
|
Revision: 2167
http://jcl.svn.sourceforge.net/jcl/?rev=2167&view=rev
Author: ahuser
Date: 2007-09-15 10:10:44 -0700 (Sat, 15 Sep 2007)
Log Message:
-----------
Removed Workaround for Delphi 5 (Workaround is now in JclHookExcept.pas)
Modified Paths:
--------------
trunk/jcl/install/build/dcc32ex.dpr
trunk/jcl/install/build/dcc32ex.exe
Modified: trunk/jcl/install/build/dcc32ex.dpr
===================================================================
--- trunk/jcl/install/build/dcc32ex.dpr 2007-09-15 17:08:42 UTC (rev 2166)
+++ trunk/jcl/install/build/dcc32ex.dpr 2007-09-15 17:10:44 UTC (rev 2167)
@@ -17,6 +17,7 @@
ExtraUnitDirs: string;
UseSearchPaths: Boolean;
Verbose: Boolean;
+ PreserveConfig: Boolean;
RequireJcl: Boolean;
RequireJvcl: Boolean;
UseJclSource: Boolean;
@@ -408,7 +409,7 @@
Result.JclVersion := RegReadStr(Reg, 'Version');
RegCloseKey(Reg);
Dir := RootDir + '\lib\' + Result.Id;
- if not UseJclSource and not (Result.Version = 5) and // Delphi 5 compiler produces defect JCL dcu files
+ if not UseJclSource and
FileExists(Dir + '\JclBase.dcu') then
begin
if not SameText(Dir, DcpDir) then
@@ -739,6 +740,9 @@
if SameText(S, '--verbose') then
Verbose := True
else
+ if SameText(S, '--preserve-config') then
+ PreserveConfig := True
+ else
if SameText(S, '--use-search-paths') then
UseSearchPaths := True
else
@@ -782,6 +786,7 @@
PreferedVersion: Integer;
Err: Integer;
Target: TTarget;
+ Dcc32CmdLine: string;
begin
CmdLine := GetCommandLine;
CmdLine := SkipOption(CmdLine); // skip executable name
@@ -858,12 +863,32 @@
Dcc32Cfg := '';
end;
+ Dcc32CmdLine := '"' + Target.RootDir + '\bin\dcc32.exe" ' + ExtraOpts + CmdLine;
if Verbose then
+ begin
WriteLn('Using search path: ', Target.LibDirs);
+ if PreserveConfig then
+ begin
+ WriteLn('===============================================================================');
+ WriteLn(Dcc32CmdLine);
+ WriteLn('===============================================================================');
+ end;
+ end;
WriteLn;
- Status := Execute('"' + Target.RootDir + '\bin\dcc32.exe" ' + ExtraOpts + CmdLine, CurDir, False);
- if Dcc32Cfg <> '' then
+ if PreserveConfig then
+ begin
+ AssignFile(f, CurDir + '\dcc32_command.cmd');
+ {$I-}
+ Rewrite(f);
+ WriteLn(f, Dcc32CmdLine);
+ CloseFile(f);
+ {$I+}
+ IOResult; // ignore all errors
+ end;
+
+ Status := Execute(Dcc32CmdLine, CurDir, False);
+ if (Dcc32Cfg <> '') and not PreserveConfig then
DeleteFile(PChar(Dcc32Cfg));
if ParamCount = 0 then
@@ -873,6 +898,7 @@
WriteLn(' --delphi-version=d11 Prefer this version, overrides environment variable');
WriteLn(' --verbose Show warnings and errors during the compiler detection');
WriteLn(' --use-search-paths Use the IDE''s search paths');
+ WriteLn(' --preserve-config Keep the dcc32.cfg file and create a dcc32_command.cmd');
WriteLn(' --requires-jcl Requires an installed JCL');
WriteLn(' --requires-jvcl Requires an installed JVCL');
WriteLn(' --use-jcl-source Use the source code instead of the DCUs for the JCL');
Modified: trunk/jcl/install/build/dcc32ex.exe
===================================================================
(Binary files differ)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ah...@us...> - 2007-09-15 17:08:55
|
Revision: 2166
http://jcl.svn.sourceforge.net/jcl/?rev=2166&view=rev
Author: ahuser
Date: 2007-09-15 10:08:42 -0700 (Sat, 15 Sep 2007)
Log Message:
-----------
Workaround for Delphi 5 compiler bug
Modified Paths:
--------------
trunk/jcl/source/windows/JclHookExcept.pas
Modified: trunk/jcl/source/windows/JclHookExcept.pas
===================================================================
--- trunk/jcl/source/windows/JclHookExcept.pas 2007-09-15 13:48:14 UTC (rev 2165)
+++ trunk/jcl/source/windows/JclHookExcept.pas 2007-09-15 17:08:42 UTC (rev 2166)
@@ -36,6 +36,10 @@
{$I jcl.inc}
+{$IFDEF COMPILER5}
+{$Y+} // workaround for Delphi 5 compiler internal compiler error L1496
+{$ENDIF COMPILER5}
+
uses
{$IFDEF UNITVERSIONING}
JclUnitVersioning,
@@ -76,7 +80,7 @@
function JclHookedExceptModulesList(var ModulesList: TJclModuleArray): Boolean;
// Hooking routines location info helper
-function JclBelongsHookedCode(Addr: Pointer): Boolean;
+function JclBelongsHookedCode(Address: Pointer): Boolean;
{$IFDEF UNITVERSIONING}
const
@@ -293,11 +297,11 @@
// Do not change ordering of HookedRaiseException, HookedExceptObjProc and JclBelongsHookedCode routines
-function JclBelongsHookedCode(Addr: Pointer): Boolean;
+function JclBelongsHookedCode(Address: Pointer): Boolean;
begin
Result := (Cardinal(@HookedRaiseException) < Cardinal(@JclBelongsHookedCode)) and
- (Cardinal(@HookedRaiseException) <= Cardinal(Addr)) and
- (Cardinal(@JclBelongsHookedCode) > Cardinal(Addr));
+ (Cardinal(@HookedRaiseException) <= Cardinal(Address)) and
+ (Cardinal(@JclBelongsHookedCode) > Cardinal(Address));
end;
function JclAddExceptNotifier(const NotifyProc: TJclExceptNotifyProc; Priority: TJclExceptNotifyPriority): Boolean;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ah...@us...> - 2007-09-15 13:48:15
|
Revision: 2165
http://jcl.svn.sourceforge.net/jcl/?rev=2165&view=rev
Author: ahuser
Date: 2007-09-15 06:48:14 -0700 (Sat, 15 Sep 2007)
Log Message:
-----------
Updated from JVCL svn
Modified Paths:
--------------
trunk/jcl/install/build/dcc32ex.dpr
trunk/jcl/install/build/dcc32ex.exe
Modified: trunk/jcl/install/build/dcc32ex.dpr
===================================================================
--- trunk/jcl/install/build/dcc32ex.dpr 2007-09-15 12:40:36 UTC (rev 2164)
+++ trunk/jcl/install/build/dcc32ex.dpr 2007-09-15 13:48:14 UTC (rev 2165)
@@ -19,6 +19,8 @@
Verbose: Boolean;
RequireJcl: Boolean;
RequireJvcl: Boolean;
+ UseJclSource: Boolean;
+ UseJvclSource: Boolean;
RequireJclVersion: string;
RequireJvclVersion: string;
@@ -406,19 +408,20 @@
Result.JclVersion := RegReadStr(Reg, 'Version');
RegCloseKey(Reg);
Dir := RootDir + '\lib\' + Result.Id;
- if FileExists(Dir + '\JclBase.dcu') then
+ if not UseJclSource and not (Result.Version = 5) and // Delphi 5 compiler produces defect JCL dcu files
+ FileExists(Dir + '\JclBase.dcu') then
begin
if not SameText(Dir, DcpDir) then
JediLibDirs := JediLibDirs + ';' + Dir + ';' + DcpDir
else
JediLibDirs := JediLibDirs + ';' + Dir;
- JediLibDirs := JediLibDirs + ';' + RootDir + '\source';
+ JediLibDirs := JediLibDirs + ';' + RootDir + '\source';
Result.InstalledJcl := True;
end
else if FileExists(RootDir + '\source\common\JclBase.pas') then
begin
- JediLibDirs := JediLibDirs + ';' + RootDir + '\source;' + RootDir + '\source\common;' + RootDir + '\source\vcl;' + RootDir + '\source\visclx';
- JediLibDirs := JediLibDirs + ';' + RootDir + '\source\windows';
+ JediLibDirs := ';' + RootDir + '\source;' + RootDir + '\source\common;' + RootDir + '\source\vcl;' + RootDir + '\source\visclx;' +
+ RootDir + '\source\windows' + JediLibDirs; // JediLibDirs has leading ';'
Result.InstalledJcl := True;
end;
end;
@@ -433,14 +436,20 @@
Result.JvclVersion := RegReadStr(Reg, 'Version');
RegCloseKey(Reg);
Dir := RootDir + '\lib\' + Result.Id;
- if FileExists(Dir + '\JVCLVer.dcu') then
+ if not UseJvclSource and FileExists(Dir + '\JVCLVer.dcu') then
begin
if not SameText(Dir, DcpDir) then
JediLibDirs := JediLibDirs + ';' + Dir + ';' + DcpDir
else
JediLibDirs := JediLibDirs + ';' + Dir;
- JediLibDirs := JediLibDirs + ';' + RootDir + '\common;' + RootDir + '\Resources';
+ JediLibDirs := JediLibDirs + ';' + RootDir + '\common;' + RootDir + '\Resources';
Result.InstalledJvcl := True;
+ end
+ else if FileExists(RootDir + '\run\JVCLVer.pas') then
+ begin
+ JediLibDirs := ';' + RootDir + '\run;' + RootDir + '\common;' + RootDir + '\Resources' +
+ JediLibDirs; // JediLibDirs has leading ';'
+ Result.InstalledJvcl := True;
end;
end;
if JediLibDirs <> '' then
@@ -751,6 +760,12 @@
RequireJvclVersion := Copy(S, 16, MaxInt);
end
else
+ if SameText('--use-jcl-source', S) then
+ UseJclSource := True
+ else
+ if SameText('--use-jvcl-source', S) then
+ UseJvclSource := True
+ else
Break;
Result := CmdLine;
end;
@@ -860,6 +875,8 @@
WriteLn(' --use-search-paths Use the IDE''s search paths');
WriteLn(' --requires-jcl Requires an installed JCL');
WriteLn(' --requires-jvcl Requires an installed JVCL');
+ WriteLn(' --use-jcl-source Use the source code instead of the DCUs for the JCL');
+ WriteLn(' --use-jvcl-source Use the source code instead of the DCUs for the JVCL');
WriteLn;
WriteLn('Environment variables:');
WriteLn(' DELPHIVERSION = d11 Prefer this Delphi/BCB/BDS version');
Modified: trunk/jcl/install/build/dcc32ex.exe
===================================================================
(Binary files differ)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ah...@us...> - 2007-09-15 12:40:39
|
Revision: 2164
http://jcl.svn.sourceforge.net/jcl/?rev=2164&view=rev
Author: ahuser
Date: 2007-09-15 05:40:36 -0700 (Sat, 15 Sep 2007)
Log Message:
-----------
Removed Delphi 5 compiler hints
Modified Paths:
--------------
trunk/jcl/source/windows/JclHookExcept.pas
Modified: trunk/jcl/source/windows/JclHookExcept.pas
===================================================================
--- trunk/jcl/source/windows/JclHookExcept.pas 2007-09-14 14:18:54 UTC (rev 2163)
+++ trunk/jcl/source/windows/JclHookExcept.pas 2007-09-15 12:40:36 UTC (rev 2164)
@@ -122,6 +122,7 @@
SysUtils_ExceptObjProc: function (P: PExceptionRecord): Exception;
Notifiers: TThreadList;
+{$IFDEF HOOK_DLL_EXCEPTIONS}
const
JclHookExceptDebugHookName = '__JclHookExcept';
@@ -146,7 +147,6 @@
HookExceptModuleList: TJclHookExceptModuleList;
JclHookExceptDebugHook: Pointer;
-{$IFDEF HOOK_DLL_EXCEPTIONS}
exports
JclHookExceptDebugHook name JclHookExceptDebugHookName;
{$ENDIF HOOK_DLL_EXCEPTIONS}
@@ -470,6 +470,7 @@
TJclPeMapImgHooks.ReplaceImport(Pointer(Module), kernel32, @HookedRaiseException, @Kernel32_RaiseException);
end;
+{$IFDEF HOOK_DLL_EXCEPTIONS}
// Exceptions hooking in libraries
procedure JclHookExceptDebugHookProc(Module: HMODULE; Hook: Boolean); stdcall;
@@ -494,6 +495,7 @@
HookExceptProc(Module, True);
end;
end;
+{$ENDIF HOOK_DLL_EXCEPTIONS}
function JclInitializeLibrariesHookExcept: Boolean;
begin
@@ -522,6 +524,7 @@
{$ENDIF HOOK_DLL_EXCEPTIONS}
end;
+{$IFDEF HOOK_DLL_EXCEPTIONS}
procedure FinalizeLibrariesHookExcept;
begin
FreeAndNil(HookExceptModuleList);
@@ -614,6 +617,7 @@
FModules.UnlockList;
end;
end;
+{$ENDIF HOOK_DLL_EXCEPTIONS}
initialization
Notifiers := TThreadList.Create;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ou...@us...> - 2007-09-14 14:18:57
|
Revision: 2163
http://jcl.svn.sourceforge.net/jcl/?rev=2163&view=rev
Author: outchy
Date: 2007-09-14 07:18:54 -0700 (Fri, 14 Sep 2007)
Log Message:
-----------
Original idea from Andreas Hausladen (ahuser): automatic installation
Available parameters are:
- AcceptInformations: automatically accepts all information dialogs
- AcceptConfirmations: automatically accepts all confirmation dialogs
- AcceptWarnings: automatically accepts all warning dialogs
- AcceptErrors: automatically accepts all error dialogs
- CloseOnFailure: automatically close the installer if the process succeeded
- CloseOnSuccess: automatically close the installer if the process failed
- Install: automatically start an installation process
- Uninstall: automatically start an uninstallation process
Typical command line for an automatic installation given predefined settings in myfile.ini is:
set JCL_INSTALL_INI=myfile.ini
install /AcceptInformations /AcceptConfirmations /CloseOnSuccess /Install
Minor change: setting active control to InstallBtn for VCL GUI.
Modified Paths:
--------------
trunk/jcl/install/ClxGui/QJediGUIMain.xfm
trunk/jcl/install/JclInstall.pas
trunk/jcl/install/JediInstall.pas
trunk/jcl/install/VclGui/JediGUIMain.dfm
trunk/jcl/install/prototypes/JediGUIMain.pas
Modified: trunk/jcl/install/ClxGui/QJediGUIMain.xfm
===================================================================
--- trunk/jcl/install/ClxGui/QJediGUIMain.xfm 2007-09-13 10:17:44 UTC (rev 2162)
+++ trunk/jcl/install/ClxGui/QJediGUIMain.xfm 2007-09-14 14:18:54 UTC (rev 2163)
@@ -19,6 +19,7 @@
ShowHint = True
OnCreate = FormCreate
OnDestroy = FormDestroy
+ OnShow = FormShow
PixelsPerInch = 96
TextHeight = 15
TextWidth = 6
Modified: trunk/jcl/install/JclInstall.pas
===================================================================
--- trunk/jcl/install/JclInstall.pas 2007-09-13 10:17:44 UTC (rev 2162)
+++ trunk/jcl/install/JclInstall.pas 2007-09-14 14:18:54 UTC (rev 2163)
@@ -280,8 +280,8 @@
// IJediProduct
procedure Init;
- procedure Install;
- procedure Uninstall;
+ function Install: Boolean;
+ function Uninstall: Boolean;
procedure Close;
property JclPath: string read FJclPath;
@@ -3321,10 +3321,10 @@
InitInstallations;
end;
-procedure TJclDistribution.Install;
+function TJclDistribution.Install: Boolean;
var
I: Integer;
- KeepSettings, Success: Boolean;
+ KeepSettings: Boolean;
AInstallation: TJclInstallation;
begin
KeepSettings := True;
@@ -3333,6 +3333,7 @@
begin
if Assigned(GUI) then
GUI.Dialog(RsCloseRADTool, dtError, [drCancel]);
+ Result := False;
Exit;
end;
@@ -3362,7 +3363,7 @@
if TargetInstalls[I].Enabled then
Inc(FNbEnabled);
- Success := True;
+ Result := True;
for I := 0 to TargetInstallCount - 1 do
begin
AInstallation := TargetInstalls[I];
@@ -3372,20 +3373,20 @@
if (AInstallation.CLRVersion = '') and not KeepSettings then
AInstallation.RemoveSettings;
AInstallation.Uninstall(False);
- Success := AInstallation.Install;
- if not Success then
+ Result := AInstallation.Install;
+ if not Result then
Break;
Inc(FNbInstalled);
end;
end;
{$IFDEF MSWINDOWS}
- Success := Success and RegHelpExecuteCommands(True);
+ Result := Result and RegHelpExecuteCommands(True);
{$ENDIF MSWINDOWS}
if Assigned(GUI) then
begin
- if Success then
+ if Result then
GUI.Dialog('Installation success', dtInformation, [drOK])
else
GUI.Dialog('Installation failed, see logs for details', dtError, [drOK]);
@@ -3588,10 +3589,9 @@
end;
{$ENDIF MSWINDOWS}
-procedure TJclDistribution.Uninstall;
+function TJclDistribution.Uninstall: Boolean;
var
I: Integer;
- Success: Boolean;
AInstallation: TJclInstallation;
begin
try
@@ -3599,6 +3599,7 @@
begin
if Assigned(GUI) then
GUI.Dialog(RsCloseRADTool, dtError, [drCancel]);
+ Result := False;
Exit;
end;
@@ -3609,13 +3610,13 @@
RegHelpClearCommands;
{$ENDIF MSWINDOWS}
- Success := True;
+ Result := True;
for I := 0 to TargetInstallCount - 1 do
begin
AInstallation := TargetInstalls[I];
AInstallation.Silent := False;
if AInstallation.Enabled and ((not AInstallation.RemoveSettings) or not AInstallation.Uninstall(True)) then
- Success := False;
+ Result := False;
end;
{$IFDEF MSWINDOWS}
@@ -3624,7 +3625,7 @@
if Assigned(GUI) then
begin
- if Success then
+ if Result then
GUI.Dialog('Uninstallation success', dtInformation, [drOK])
else
GUI.Dialog('Uninstallation failed, see logs for details', dtError, [drOK]);
Modified: trunk/jcl/install/JediInstall.pas
===================================================================
--- trunk/jcl/install/JediInstall.pas 2007-09-13 10:17:44 UTC (rev 2162)
+++ trunk/jcl/install/JediInstall.pas 2007-09-14 14:18:54 UTC (rev 2163)
@@ -46,6 +46,7 @@
type
TDialogType = (dtWarning, dtError, dtInformation, dtConfirmation);
+ TDialogTypes = set of TDialogType;
TDialogResponse = (drYes, drNo, drOK, drCancel);
TDialogResponses = set of TDialogResponse;
@@ -163,8 +164,23 @@
procedure SetCaption(const Value: string);
function GetProgress: Integer;
procedure SetProgress(Value: Integer);
+ function GetAutoAcceptDialogs: TDialogTypes;
+ procedure SetAutoAcceptDialogs(Value: TDialogTypes);
+ function GetAutoCloseOnFailure: Boolean;
+ procedure SetAutoCloseOnFailure(Value: Boolean);
+ function GetAutoCloseOnSuccess: Boolean;
+ procedure SetAutoCloseOnSuccess(Value: Boolean);
+ function GetAutoInstall: Boolean;
+ procedure SetAutoInstall(Value: Boolean);
+ function GetAutoUninstall: Boolean;
+ procedure SetAutoUninstall(Value: Boolean);
procedure Execute;
+ property AutoAcceptDialogs: TDialogTypes read GetAutoAcceptDialogs write SetAutoAcceptDialogs;
+ property AutoCloseOnFailure: Boolean read GetAutoCloseOnFailure write SetAutoCloseOnFailure;
+ property AutoCloseOnSuccess: Boolean read GetAutoCloseOnSuccess write SetAutoCloseOnSuccess;
+ property AutoInstall: Boolean read GetAutoInstall write SetAutoInstall;
+ property AutoUninstall: Boolean read GetAutoUninstall write SetAutoUninstall;
property PageCount: Integer read GetPageCount;
property Pages[Index: Integer]: IJediPage read GetPage;
property Status: string read GetStatus write SetStatus;
@@ -175,8 +191,8 @@
IJediProduct = interface
['{CF5BE67A-4A49-43FB-8F6E-217A51023DA4}']
procedure Init;
- procedure Install;
- procedure Uninstall;
+ function Install: Boolean;
+ function Uninstall: Boolean;
procedure Close;
end;
@@ -212,8 +228,8 @@
function AddProduct(AProduct: IJediProduct): Integer;
procedure Execute;
- procedure Install;
- procedure Uninstall;
+ function Install: Boolean;
+ function Uninstall: Boolean;
procedure Close;
function AddInstallOption(const Name: string): Integer;
function GetInstallOptionName(Id: Integer): string;
@@ -254,7 +270,7 @@
implementation
uses
- JclArrayLists;
+ JclArrayLists, JclFileUtils;
var
InternalInstallCore: TJediInstallCore = nil;
@@ -342,13 +358,30 @@
end;
function TJediInstallCore.GetInstallGUI: IJediInstallGUI;
+var
{$IFDEF VisualCLX}
-var
CompRef: IInterfaceComponentReference;
{$ENDIF VisualCLX}
+ AutoAcceptDialogs: TDialogTypes;
begin
if Assigned(FInstallGUICreator) and not Assigned(FInstallGUI) then
+ begin
FInstallGUI := InstallGUICreator;
+ AutoAcceptDialogs := [];
+ if ParamPos('AcceptInformations') >= 1 then
+ Include(AutoAcceptDialogs, dtInformation);
+ if ParamPos('AcceptConfirmations') >= 1 then
+ Include(AutoAcceptDialogs, dtConfirmation);
+ if ParamPos('AcceptWarnings') >= 1 then
+ Include(AutoAcceptDialogs, dtWarning);
+ if ParamPos('AcceptErrors') >= 1 then
+ Include(AutoAcceptDialogs, dtError);
+ FInstallGUI.AutoAcceptDialogs := AutoAcceptDialogs;
+ FInstallGUI.AutoCloseOnFailure := ParamPos('CloseOnFailure') >= 1;
+ FInstallGUI.AutoCloseOnSuccess := ParamPos('CloseOnSuccess') >= 1;
+ FInstallGUI.AutoInstall := ParamPos('Install') >= 1;
+ FInstallGUI.AutoUninstall := ParamPos('Uninstall') >= 1;
+ end;
Result := FInstallGUI;
{$IFDEF VisualCLX}
Result.QueryInterface(IInterfaceComponentReference, CompRef);
@@ -380,12 +413,17 @@
Result := FProducts.Size;
end;
-procedure TJediInstallCore.Install;
+function TJediInstallCore.Install: Boolean;
var
Index: Integer;
begin
+ Result := True;
for Index := FProducts.Size - 1 downto 0 do
- (FProducts.GetObject(Index) as IJediProduct).Install;
+ begin
+ Result := (FProducts.GetObject(Index) as IJediProduct).Install;
+ if not Result then
+ Break;
+ end;
end;
{$IFDEF VisualCLX}
@@ -503,12 +541,13 @@
Page.AddText(Line);
end;
-procedure TJediInstallCore.Uninstall;
+function TJediInstallCore.Uninstall: Boolean;
var
Index: Integer;
begin
+ Result := True;
for Index := FProducts.Size - 1 downto 0 do
- (FProducts.GetObject(Index) as IJediProduct).Uninstall;
+ Result := (FProducts.GetObject(Index) as IJediProduct).Uninstall and Result;
end;
initialization
Modified: trunk/jcl/install/VclGui/JediGUIMain.dfm
===================================================================
--- trunk/jcl/install/VclGui/JediGUIMain.dfm 2007-09-13 10:17:44 UTC (rev 2162)
+++ trunk/jcl/install/VclGui/JediGUIMain.dfm 2007-09-14 14:18:54 UTC (rev 2163)
@@ -1,7 +1,7 @@
object MainForm: TMainForm
Left = 347
Top = 123
- ActiveControl = QuitBtn
+ ActiveControl = InstallBtn
Caption = 'JEDI Installer'
ClientHeight = 582
ClientWidth = 792
@@ -19,6 +19,7 @@
ShowHint = True
OnCreate = FormCreate
OnDestroy = FormDestroy
+ OnShow = FormShow
PixelsPerInch = 96
TextHeight = 14
object StatusBevel: TBevel
@@ -352,8 +353,8 @@
Left = 32
Top = 416
Bitmap = {
- 494C010107000900040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
- 0000000000003600000028000000400000003000000001002000000000000030
+ 494C010107000800040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
+ 0000000000003600000028000000400000002000000001002000000000000020
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
@@ -371,134 +372,6 @@
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
000000000000C0C0C000C0C0C000808080008080800080808000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000C0C0C000C0C0C000808080008080800080808000000000000000
@@ -739,12 +612,8 @@
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000424D3E000000000000003E000000
- 2800000040000000300000000100010000000000800100000000000000000000
- 000000000000000000000000FFFFFF0000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 0000000000000000000000000000000000000000000000000000000000000000
- 00000000000000000000000000000000FFFFFFFFFFFF0000F83FF83FF83F0000
+ 2800000040000000200000000100010000000000000100000000000000000000
+ 000000000000000000000000FFFFFF00FFFFFFFFFFFF0000F83FF83FF83F0000
E00FE00FE00F0000C007C007C007000085438543854300008823882388230000
1011101110110000000100010001000050115011501100004401440144010000
531153115311000080038003800300008003800380030000C007C007C0070000
Modified: trunk/jcl/install/prototypes/JediGUIMain.pas
===================================================================
--- trunk/jcl/install/prototypes/JediGUIMain.pas 2007-09-13 10:17:44 UTC (rev 2162)
+++ trunk/jcl/install/prototypes/JediGUIMain.pas 2007-09-14 14:18:54 UTC (rev 2163)
@@ -50,6 +50,9 @@
{$ENDIF}
JclBorlandTools, JclContainerIntf, JediInstall;
+const
+ WM_AFTERSHOW = WM_USER + 10;
+
type
TMainForm = class(TForm, IJediInstallGUI)
InstallBtn: TBitBtn;
@@ -66,14 +69,21 @@
ImageList: TImageList;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
+ procedure FormShow(Sender: TObject);
procedure QuitBtnClick(Sender: TObject);
procedure InstallBtnClick(Sender: TObject);
procedure UninstallBtnClick(Sender: TObject);
procedure JediImageClick(Sender: TObject);
protected
FPages: IJclIntfList;
+ FAutoAcceptDialogs: TDialogTypes;
+ FAutoCloseOnFailure: Boolean;
+ FAutoCloseOnSuccess: Boolean;
+ FAutoInstall: Boolean;
+ FAutoUninstall: Boolean;
procedure HandleException(Sender: TObject; E: Exception);
procedure SetFrameIcon(Sender: TObject; const FileName: string);
+ procedure WMAfterShow(var Message: TMessage); Message WM_AFTERSHOW;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
@@ -92,6 +102,16 @@
procedure SetCaption(const Value: string);
function GetProgress: Integer;
procedure SetProgress(Value: Integer);
+ function GetAutoAcceptDialogs: TDialogTypes;
+ procedure SetAutoAcceptDialogs(Value: TDialogTypes);
+ function GetAutoCloseOnFailure: Boolean;
+ procedure SetAutoCloseOnFailure(Value: Boolean);
+ function GetAutoCloseOnSuccess: Boolean;
+ procedure SetAutoCloseOnSuccess(Value: Boolean);
+ function GetAutoInstall: Boolean;
+ procedure SetAutoInstall(Value: Boolean);
+ function GetAutoUninstall: Boolean;
+ procedure SetAutoUninstall(Value: Boolean);
procedure Execute;
end;
@@ -179,6 +199,11 @@
InstallCore.Close;
end;
+procedure TMainForm.FormShow(Sender: TObject);
+begin
+ PostMessage(Handle, WM_AFTERSHOW, 0, 0);
+end;
+
procedure TMainForm.ShowFeatureHint(var HintStr: {$IFDEF VisualCLX}WideString{$ELSE ~VisualCLX}string{$ENDIF ~VisualCLX};
var CanShow: Boolean; var HintInfo: THintInfo);
var
@@ -237,12 +262,16 @@
end;
procedure TMainForm.InstallBtnClick(Sender: TObject);
+var
+ Success: Boolean;
begin
ProgressBar.Position := 0;
ProgressBar.Visible := True;
Screen.Cursor := crHourGlass;
try
- InstallCore.Install;
+ Success := InstallCore.Install;
+ if (Success and FAutoCloseOnSuccess) or (not Success and FAutoCloseOnFailure) then
+ Close;
finally
ProgressBar.Visible := False;
Screen.Cursor := crDefault;
@@ -251,11 +280,32 @@
end;
procedure TMainForm.UninstallBtnClick(Sender: TObject);
+var
+ Success: Boolean;
begin
- InstallCore.Uninstall;
+ ProgressBar.Position := 0;
+ ProgressBar.Visible := True;
+ Screen.Cursor := crHourGlass;
+ try
+ Success := InstallCore.Uninstall;
+ if (Success and FAutoCloseOnSuccess) or (not Success and FAutoCloseOnFailure) then
+ Close;
+ finally
+ ProgressBar.Visible := False;
+ Screen.Cursor := crDefault;
+ end;
QuitBtn.SetFocus;
end;
+procedure TMainForm.WMAfterShow(var Message: TMessage);
+begin
+ if FAutoInstall then
+ InstallBtnClick(InstallBtn)
+ else
+ if FAutoUninstall then
+ UninstallBtnClick(UninstallBtn);
+end;
+
procedure TMainForm.JediImageClick(Sender: TObject);
begin
{ TODO : implement for Unix }
@@ -274,7 +324,17 @@
Buttons: TMsgDlgButtons;
Res: Integer;
OldCursor: TCursor;
+ DialogResponse: TDialogResponse;
begin
+ if DialogType in FAutoAcceptDialogs then
+ begin
+ for DialogResponse := Low(TDialogResponse) to High(TDialogResponse) do
+ if DialogResponse in Options then
+ begin
+ Result := DialogResponse;
+ Exit;
+ end;
+ end;
OldCursor := Screen.Cursor;
try
Screen.Cursor := crDefault;
@@ -360,11 +420,61 @@
Application.ProcessMessages; //Update;
end;
+function TMainForm.GetAutoAcceptDialogs: TDialogTypes;
+begin
+ Result := FAutoAcceptDialogs;
+end;
+
+function TMainForm.GetAutoCloseOnFailure: Boolean;
+begin
+ Result := FAutoCloseOnFailure;
+end;
+
+function TMainForm.GetAutoCloseOnSuccess: Boolean;
+begin
+ Result := FAutoCloseOnSuccess;
+end;
+
+function TMainForm.GetAutoInstall: Boolean;
+begin
+ Result := FAutoInstall;
+end;
+
+function TMainForm.GetAutoUninstall: Boolean;
+begin
+ Result := FAutoUninstall;
+end;
+
function TMainForm.GetCaption: string;
begin
Result := Caption;
end;
+procedure TMainForm.SetAutoAcceptDialogs(Value: TDialogTypes);
+begin
+ FAutoAcceptDialogs := Value;
+end;
+
+procedure TMainForm.SetAutoCloseOnFailure(Value: Boolean);
+begin
+ FAutoCloseOnFailure := Value;
+end;
+
+procedure TMainForm.SetAutoCloseOnSuccess(Value: Boolean);
+begin
+ FAutoCloseOnSuccess := Value;
+end;
+
+procedure TMainForm.SetAutoInstall(Value: Boolean);
+begin
+ FAutoInstall := Value;
+end;
+
+procedure TMainForm.SetAutoUninstall(Value: Boolean);
+begin
+ FAutoUninstall := Value;
+end;
+
procedure TMainForm.SetCaption(const Value: string);
begin
Caption := Value;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|