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...> - 2010-07-27 14:34:23
|
Revision: 3267 http://jcl.svn.sourceforge.net/jcl/?rev=3267&view=rev Author: outchy Date: 2010-07-27 14:34:16 +0000 (Tue, 27 Jul 2010) Log Message: ----------- Style cleaning. Modified Paths: -------------- trunk/jcl/source/common/JclLinkedLists.pas trunk/jcl/source/prototypes/JclLinkedLists.pas trunk/jcl/source/prototypes/containers/JclLinkedLists.imp Modified: trunk/jcl/source/common/JclLinkedLists.pas =================================================================== --- trunk/jcl/source/common/JclLinkedLists.pas 2010-07-25 11:44:27 UTC (rev 3266) +++ trunk/jcl/source/common/JclLinkedLists.pas 2010-07-27 14:34:16 UTC (rev 3267) @@ -980,12 +980,12 @@ public constructor Create(const AOwnList: IJclPtrList; ACursor: TJclPtrLinkedListItem; AValid: Boolean; AStart: TItrStart); { IJclPtrIterator } - function Add(AValue: Pointer): Boolean; + function Add(APtr: Pointer): Boolean; procedure Extract; function GetPointer: Pointer; function HasNext: Boolean; function HasPrevious: Boolean; - function Insert(AValue: Pointer): Boolean; + function Insert(APtr: Pointer): Boolean; function IteratorEquals(const AIterator: IJclPtrIterator): Boolean; function Next: Pointer; function NextIndex: Integer; @@ -993,7 +993,7 @@ function PreviousIndex: Integer; procedure Remove; procedure Reset; - procedure SetPointer(AValue: Pointer); + procedure SetPointer(APtr: Pointer); {$IFDEF SUPPORTS_FOR_IN} function MoveNext: Boolean; property Current: Pointer read GetPointer; @@ -1231,7 +1231,7 @@ uses SysUtils; -//=== { TJclLinkedList<T> } ================================================== +//=== { TJclIntfLinkedList } ================================================== constructor TJclIntfLinkedList.Create(const ACollection: IJclIntfCollection); begin @@ -2488,7 +2488,7 @@ end; -//=== { TJclLinkedList<T> } ================================================== +//=== { TJclAnsiStrLinkedList } ================================================== constructor TJclAnsiStrLinkedList.Create(const ACollection: IJclAnsiStrCollection); begin @@ -3743,7 +3743,7 @@ {$ENDIF THREADSAFE} end; -//=== { TJclLinkedList<T> } ================================================== +//=== { TJclWideStrLinkedList } ================================================== constructor TJclWideStrLinkedList.Create(const ACollection: IJclWideStrCollection); begin @@ -4999,7 +4999,7 @@ end; {$IFDEF SUPPORTS_UNICODE_STRING} -//=== { TJclLinkedList<T> } ================================================== +//=== { TJclUnicodeStrLinkedList } ================================================== constructor TJclUnicodeStrLinkedList.Create(const ACollection: IJclUnicodeStrCollection); begin @@ -6255,7 +6255,7 @@ end; {$ENDIF SUPPORTS_UNICODE_STRING} -//=== { TJclLinkedList<T> } ================================================== +//=== { TJclSingleLinkedList } ================================================== constructor TJclSingleLinkedList.Create(const ACollection: IJclSingleCollection); begin @@ -7510,7 +7510,7 @@ {$ENDIF THREADSAFE} end; -//=== { TJclLinkedList<T> } ================================================== +//=== { TJclDoubleLinkedList } ================================================== constructor TJclDoubleLinkedList.Create(const ACollection: IJclDoubleCollection); begin @@ -8765,7 +8765,7 @@ {$ENDIF THREADSAFE} end; -//=== { TJclLinkedList<T> } ================================================== +//=== { TJclExtendedLinkedList } ================================================== constructor TJclExtendedLinkedList.Create(const ACollection: IJclExtendedCollection); begin @@ -10020,7 +10020,7 @@ {$ENDIF THREADSAFE} end; -//=== { TJclLinkedList<T> } ================================================== +//=== { TJclIntegerLinkedList } ================================================== constructor TJclIntegerLinkedList.Create(const ACollection: IJclIntegerCollection); begin @@ -11275,7 +11275,7 @@ {$ENDIF THREADSAFE} end; -//=== { TJclLinkedList<T> } ================================================== +//=== { TJclCardinalLinkedList } ================================================== constructor TJclCardinalLinkedList.Create(const ACollection: IJclCardinalCollection); begin @@ -12530,7 +12530,7 @@ {$ENDIF THREADSAFE} end; -//=== { TJclLinkedList<T> } ================================================== +//=== { TJclInt64LinkedList } ================================================== constructor TJclInt64LinkedList.Create(const ACollection: IJclInt64Collection); begin @@ -13785,7 +13785,7 @@ {$ENDIF THREADSAFE} end; -//=== { TJclLinkedList<T> } ================================================== +//=== { TJclPtrLinkedList } ================================================== constructor TJclPtrLinkedList.Create(const ACollection: IJclPtrCollection); begin @@ -14728,9 +14728,9 @@ FEqualityComparer := AOwnList as IJclPtrEqualityComparer; end; -function TJclPtrLinkedListIterator.Add(AValue: Pointer): Boolean; +function TJclPtrLinkedListIterator.Add(APtr: Pointer): Boolean; begin - Result := FOwnList.Add(AValue); + Result := FOwnList.Add(APtr); end; procedure TJclPtrLinkedListIterator.AssignPropertiesTo(Dest: TJclAbstractIterator); @@ -14827,7 +14827,7 @@ {$ENDIF THREADSAFE} end; -function TJclPtrLinkedListIterator.Insert(AValue: Pointer): Boolean; +function TJclPtrLinkedListIterator.Insert(APtr: Pointer): Boolean; var NewCursor: TJclPtrLinkedListItem; begin @@ -14841,17 +14841,17 @@ Result := FCursor <> nil; if Result then begin - Result := FOwnList.AllowDefaultElements or not FEqualityComparer.ItemsEqual(AValue, nil); + Result := FOwnList.AllowDefaultElements or not FEqualityComparer.ItemsEqual(APtr, nil); if Result then begin case FOwnList.Duplicates of dupIgnore: - Result := not FOwnList.Contains(AValue); + Result := not FOwnList.Contains(APtr); dupAccept: Result := True; dupError: begin - Result := FOwnList.Contains(AValue); + Result := FOwnList.Contains(APtr); if not Result then raise EJclDuplicateElementError.Create; end; @@ -14859,7 +14859,7 @@ if Result then begin NewCursor := TJclPtrLinkedListItem.Create; - NewCursor.Value := AValue; + NewCursor.Value := APtr; NewCursor.Next := FCursor; NewCursor.Previous := FCursor.Previous; if FCursor.Previous <> nil then @@ -15022,7 +15022,7 @@ {$ENDIF THREADSAFE} end; -procedure TJclPtrLinkedListIterator.SetPointer(AValue: Pointer); +procedure TJclPtrLinkedListIterator.SetPointer(APtr: Pointer); begin if FOwnList.ReadOnly then raise EJclReadOnlyError.Create; @@ -15032,7 +15032,7 @@ {$ENDIF THREADSAFE} CheckValid; FCursor.Value := nil; - FCursor.Value := AValue; + FCursor.Value := APtr; {$IFDEF THREADSAFE} finally FOwnList.WriteUnlock; @@ -15040,7 +15040,7 @@ {$ENDIF THREADSAFE} end; -//=== { TJclLinkedList<T> } ================================================== +//=== { TJclLinkedList } ================================================== constructor TJclLinkedList.Create(const ACollection: IJclCollection; AOwnsObjects: Boolean); begin Modified: trunk/jcl/source/prototypes/JclLinkedLists.pas =================================================================== --- trunk/jcl/source/prototypes/JclLinkedLists.pas 2010-07-25 11:44:27 UTC (rev 3266) +++ trunk/jcl/source/prototypes/JclLinkedLists.pas 2010-07-27 14:34:16 UTC (rev 3267) @@ -160,7 +160,7 @@ protected function CreateEmptyContainer: TJclAbstractContainerBase; override;,,,,APtr,Pointer,GetPointer,SetPointer)*) -(*$JPPEXPANDMACRO JCLLINKEDLISTITRINT(TJclPtrLinkedListIterator,IJclPtrIterator,IJclPtrList,IJclPtrEqualityComparer,TJclPtrLinkedListItem,,AValue,Pointer,nil,GetPointer,SetPointer)*) +(*$JPPEXPANDMACRO JCLLINKEDLISTITRINT(TJclPtrLinkedListIterator,IJclPtrIterator,IJclPtrList,IJclPtrEqualityComparer,TJclPtrLinkedListItem,,APtr,Pointer,nil,GetPointer,SetPointer)*) (*$JPPEXPANDMACRO JCLLINKEDLISTTYPESINT(TJclLinkedListItem,TObject)*) @@ -372,7 +372,7 @@ end; {$JPPDEFINEMACRO ITEMFREE(Item)Item := nil} -(*$JPPEXPANDMACRO JCLLINKEDLISTITRIMP(TJclPtrLinkedListIterator,IJclPtrIterator,IJclPtrList,IJclPtrEqualityComparer,TJclPtrLinkedListItem,,AValue,Pointer,nil,GetPointer,SetPointer)*) +(*$JPPEXPANDMACRO JCLLINKEDLISTITRIMP(TJclPtrLinkedListIterator,IJclPtrIterator,IJclPtrList,IJclPtrEqualityComparer,TJclPtrLinkedListItem,,APtr,Pointer,nil,GetPointer,SetPointer)*) {$JPPUNDEFMACRO ITEMFREE(Item)} {$JPPEXPANDMACRO JCLLINKEDLISTIMP(TJclLinkedList,TJclLinkedListItem,IJclCollection,IJclList,IJclIterator,TJclLinkedListIterator,; AOwnsObjects: Boolean,AOwnsObjects,,AObject,TObject,nil,GetObject,SetObject,FreeObject)} Modified: trunk/jcl/source/prototypes/containers/JclLinkedLists.imp =================================================================== --- trunk/jcl/source/prototypes/containers/JclLinkedLists.imp 2010-07-25 11:44:27 UTC (rev 3266) +++ trunk/jcl/source/prototypes/containers/JclLinkedLists.imp 2010-07-27 14:34:16 UTC (rev 3267) @@ -247,7 +247,7 @@ (*$JPPDEFINEMACRO JCLLINKEDLISTIMP(SELFCLASSNAME, ITEMCLASSNAME, COLLECTIONINTERFACENAME, LISTINTERFACENAME, ITRINTERFACENAME, ITRCLASSNAME, OWNERSHIPDECLARATION, OWNERSHIPPARAMETER, CONSTKEYWORD, PARAMETERNAME, TYPENAME, DEFAULTVALUE, GETTERNAME, SETTERNAME, RELEASERNAME) -//=== { TJclLinkedList<T> } ================================================== +//=== { SELFCLASSNAME } ================================================== constructor SELFCLASSNAME.Create(const ACollection: COLLECTIONINTERFACENAMEOWNERSHIPDECLARATION); begin This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-07-25 11:44:33
|
Revision: 3266 http://jcl.svn.sourceforge.net/jcl/?rev=3266&view=rev Author: outchy Date: 2010-07-25 11:44:27 +0000 (Sun, 25 Jul 2010) Log Message: ----------- update for 7zip 9.15. Modified Paths: -------------- trunk/jcl/source/common/JclCompression.pas trunk/jcl/source/common/JclResources.pas trunk/jcl/source/windows/sevenzip.pas Modified: trunk/jcl/source/common/JclCompression.pas =================================================================== --- trunk/jcl/source/common/JclCompression.pas 2010-07-24 01:17:28 UTC (rev 3265) +++ trunk/jcl/source/common/JclCompression.pas 2010-07-25 11:44:27 UTC (rev 3266) @@ -1720,6 +1720,14 @@ class function ArchiveName: string; override; end; + TJclPpmdDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) + protected + function GetCLSID: TGUID; override; + public + class function ArchiveExtensions: string; override; + class function ArchiveName: string; override; + end; + //sevenzip classes for updates (read and write) type TJclSevenzipUpdateArchive = class(TJclOutOfPlaceUpdateArchive, IInterface) @@ -7962,6 +7970,23 @@ Result := CLSID_CFormatAPM; end; +//=== { TJclPpmdDecompressArchive } ========================================== + +class function TJclPpmdDecompressArchive.ArchiveExtensions: string; +begin + Result := LoadResString(@RsCompressionPpmdExtensions); +end; + +class function TJclPpmdDecompressArchive.ArchiveName: string; +begin + Result := LoadResString(@RsCompressionPpmdName); +end; + +function TJclPpmdDecompressArchive.GetCLSID: TGUID; +begin + Result := CLSID_CFormatPpmd; +end; + //=== { TJclSevenzipUpdateArchive } ========================================== destructor TJclSevenzipUpdateArchive.Destroy; Modified: trunk/jcl/source/common/JclResources.pas =================================================================== --- trunk/jcl/source/common/JclResources.pas 2010-07-24 01:17:28 UTC (rev 3265) +++ trunk/jcl/source/common/JclResources.pas 2010-07-25 11:44:27 UTC (rev 3266) @@ -1092,6 +1092,8 @@ RsCompressionSwfcExtensions = '*.swf'; RsCompressionApmName = 'APM archive'; RsCompressionApmExtensions = '*.'; + RsCompressionPpmdName = 'PPMD archive'; + RsCompressionPpmdExtensions = '*.pmd'; RsCompressionDuplicate = 'The file %s already exists in the archive'; RsCompressionReplaceError = 'At least one compression volumes could not be replaced after an archive out-of-place update'; Modified: trunk/jcl/source/windows/sevenzip.pas =================================================================== --- trunk/jcl/source/windows/sevenzip.pas 2010-07-24 01:17:28 UTC (rev 3265) +++ trunk/jcl/source/windows/sevenzip.pas 2010-07-25 11:44:27 UTC (rev 3266) @@ -102,6 +102,7 @@ CLSID_CFormatLzma : TGUID = '{23170F69-40C1-278A-1000-0001100A0000}'; CLSID_CFormatLzma86 : TGUID = '{23170F69-40C1-278A-1000-0001100B0000}'; CLSID_CFormatXz : TGUID = '{23170F69-40C1-278A-1000-0001100C0000}'; + CLSID_CFormatPpmd : TGUID = '{23170F69-40C1-278A-1000-0001100D0000}'; CLSID_CFormatAPM : TGUID = '{23170F69-40C1-278A-1000-000110D40000}'; CLSID_CFormatMslz : TGUID = '{23170F69-40C1-278A-1000-000110D50000}'; CLSID_CFormatFlv : TGUID = '{23170F69-40C1-278A-1000-000110D60000}'; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wp...@us...> - 2010-07-24 01:18:11
|
Revision: 3265 http://jcl.svn.sourceforge.net/jcl/?rev=3265&view=rev Author: wpostma Date: 2010-07-24 01:17:28 +0000 (Sat, 24 Jul 2010) Log Message: ----------- de-utf8'd zlibh.pas - builds again in d7 Modified Paths: -------------- trunk/jcl/source/common/zlibh.pas Modified: trunk/jcl/source/common/zlibh.pas =================================================================== --- trunk/jcl/source/common/zlibh.pas 2010-07-21 12:34:17 UTC (rev 3264) +++ trunk/jcl/source/common/zlibh.pas 2010-07-24 01:17:28 UTC (rev 3265) @@ -1,4 +1,4 @@ -{**************************************************************************************************} +{**************************************************************************************************} { } { Project JEDI Code Library (JCL) } { } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-07-21 12:34:23
|
Revision: 3264 http://jcl.svn.sourceforge.net/jcl/?rev=3264&view=rev Author: outchy Date: 2010-07-21 12:34:17 +0000 (Wed, 21 Jul 2010) Log Message: ----------- minor help update. Modified Paths: -------------- trunk/help/PE.dtx trunk/help/Streams.dtx trunk/help/Unicode.dtx Modified: trunk/help/PE.dtx =================================================================== --- trunk/help/PE.dtx 2010-07-21 12:19:09 UTC (rev 3263) +++ trunk/help/PE.dtx 2010-07-21 12:34:17 UTC (rev 3264) @@ -623,7 +623,7 @@ Donator: Petr Vones -------------------------------------------------------------------------------- -@@TJclPeImportLibItem.ThunkData +@@TJclPeImportLibItem.ThunkData32 Summary: TODO Description: @@ -631,6 +631,14 @@ Donator: Petr Vones -------------------------------------------------------------------------------- +@@TJclPeImportLibItem.ThunkData64 +Summary: + TODO +Description: + TODO +Donator: + Petr Vones +-------------------------------------------------------------------------------- @@TJclPeImportLibItem.TotalResolveCheck Summary: Specifies whether all imported functions in this import directory could be resolved. @@ -2159,7 +2167,7 @@ Donator: Petr Vones -------------------------------------------------------------------------------- -@@TJclPeImage.OptionalHeader +@@TJclPeImage.OptionalHeader32 Summary: Allows access to the image optional header. Description: @@ -2175,6 +2183,22 @@ Donator: Petr Vones -------------------------------------------------------------------------------- +@@TJclPeImage.OptionalHeader64 +Summary: + Allows access to the image optional header. +Description: + Read OptionalHeader to gain access to the optional header of the loaded PE file. + The optional header contains fields standard to all COFF implementations, Windows + specific fields such as the target subsytem and allows access to all data + directories. Generally speaking, it provides all information for the Windows + loader to successfully load the image. Note that not all valid PE image files + have an optional header. Specifically an object file (.obj) doesn't necessarily + have one (that's why it's called optional). See "Portable Executable and Common + Object File Format Specification" Revision 6.0 February 1999 in the MSDN library + for a description of the fields in the returned record. +Donator: + Petr Vones +-------------------------------------------------------------------------------- @@TJclPeImage.RelocationList Summary: Allows access to the relocations section of the PE file. Modified: trunk/help/Streams.dtx =================================================================== --- trunk/help/Streams.dtx 2010-07-21 12:19:09 UTC (rev 3263) +++ trunk/help/Streams.dtx 2010-07-21 12:34:17 UTC (rev 3264) @@ -876,7 +876,7 @@ TJclEasyStream.WriteShortString TJclEasyStream.WriteSingle TJclEasyStream.WriteSizedString - TJclEasyStream.WriteStringDelimitedByNull + TJclEasyStream.WriteCString Donator: Heinz Zastrau -------------------------------------------------------------------------------- @@ -898,7 +898,7 @@ TJclEasyStream.WriteShortString TJclEasyStream.WriteSingle TJclEasyStream.WriteSizedString - TJclEasyStream.WriteStringDelimitedByNull + TJclEasyStream.WriteCString Donator: Heinz Zastrau -------------------------------------------------------------------------------- @@ -942,7 +942,7 @@ TJclEasyStream.WriteShortString TJclEasyStream.WriteSingle TJclEasyStream.WriteSizedString - TJclEasyStream.WriteStringDelimitedByNull + TJclEasyStream.WriteCString Donator: Heinz Zastrau -------------------------------------------------------------------------------- @@ -964,7 +964,7 @@ TJclEasyStream.WriteShortString TJclEasyStream.WriteSingle TJclEasyStream.WriteSizedString - TJclEasyStream.WriteStringDelimitedByNull + TJclEasyStream.WriteCString Donator: Heinz Zastrau -------------------------------------------------------------------------------- @@ -986,7 +986,7 @@ TJclEasyStream.WriteShortString TJclEasyStream.WriteSingle TJclEasyStream.WriteSizedString - TJclEasyStream.WriteStringDelimitedByNull + TJclEasyStream.WriteCString Donator: Heinz Zastrau -------------------------------------------------------------------------------- @@ -1008,7 +1008,7 @@ TJclEasyStream.WriteShortString TJclEasyStream.WriteSingle TJclEasyStream.WriteSizedString - TJclEasyStream.WriteStringDelimitedByNull + TJclEasyStream.WriteCString Donator: Heinz Zastrau -------------------------------------------------------------------------------- @@ -1030,7 +1030,7 @@ TJclEasyStream.WriteShortString TJclEasyStream.WriteSingle TJclEasyStream.WriteSizedString - TJclEasyStream.WriteStringDelimitedByNull + TJclEasyStream.WriteCString Donator: Heinz Zastrau -------------------------------------------------------------------------------- @@ -1052,7 +1052,7 @@ TJclEasyStream.WriteShortString TJclEasyStream.WriteSingle TJclEasyStream.WriteSizedString - TJclEasyStream.WriteStringDelimitedByNull + TJclEasyStream.WriteCString Donator: Heinz Zastrau -------------------------------------------------------------------------------- @@ -1074,7 +1074,7 @@ TJclEasyStream.WriteInteger TJclEasyStream.WriteSingle TJclEasyStream.WriteSizedString - TJclEasyStream.WriteStringDelimitedByNull + TJclEasyStream.WriteCString Donator: Heinz Zastrau -------------------------------------------------------------------------------- @@ -1096,7 +1096,7 @@ TJclEasyStream.WriteInteger TJclEasyStream.WriteShortString TJclEasyStream.WriteSizedString - TJclEasyStream.WriteStringDelimitedByNull + TJclEasyStream.WriteCString Donator: Heinz Zastrau -------------------------------------------------------------------------------- @@ -1118,13 +1118,13 @@ TJclEasyStream.WriteInteger TJclEasyStream.WriteShortString TJclEasyStream.WriteSingle - TJclEasyStream.WriteStringDelimitedByNull + TJclEasyStream.WriteCString Donator: Heinz Zastrau -------------------------------------------------------------------------------- -@@TJclEasyStream.WriteStringDelimitedByNull@string +@@TJclEasyStream.WriteCString@string Description: - The WriteStringDelimitedByNull method writes a C-like string + The WriteCString method writes a C-like string value to this stream (max 2G characters). Parameters: Value - String value. Modified: trunk/help/Unicode.dtx =================================================================== --- trunk/help/Unicode.dtx 2010-07-21 12:19:09 UTC (rev 3263) +++ trunk/help/Unicode.dtx 2010-07-21 12:34:17 UTC (rev 3264) @@ -1965,7 +1965,7 @@ TODO @@TCharacterCategory.ccRightToLeftEmbedding TODO -@@TCharacterCategory.ccRightToLeftoverride +@@TCharacterCategory.ccRightToLeftOverride TODO @@TCharacterCategory.ccPopDirectionalFormat TODO @@ -1999,8 +1999,6 @@ Quotation mark @@TCharacterCategory.ccMirroring TODO -@@TCharacterCategory.ccSpaceOther - Undefined spacing character @@TCharacterCategory.ccAssigned Defined character in Unicode-standard @@TCharacterCategories This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-07-21 12:19:15
|
Revision: 3263 http://jcl.svn.sourceforge.net/jcl/?rev=3263&view=rev Author: outchy Date: 2010-07-21 12:19:09 +0000 (Wed, 21 Jul 2010) Log Message: ----------- Unicode compatibility with C++ compilers. Modified Paths: -------------- trunk/jcl/devtools/jpp/JppState.pas Modified: trunk/jcl/devtools/jpp/JppState.pas =================================================================== --- trunk/jcl/devtools/jpp/JppState.pas 2010-07-19 14:26:12 UTC (rev 3262) +++ trunk/jcl/devtools/jpp/JppState.pas 2010-07-21 12:19:09 UTC (rev 3263) @@ -43,10 +43,10 @@ // Modifications by Robert Rossmair: Addition of TTriState type, TriState methods unit JppState; +{$I jcl.inc} + interface -{$I jcl.inc} - uses SysUtils, Classes, {$IFDEF UNITVERSIONING} @@ -355,11 +355,11 @@ PI := GetPropInfo(Self, ASymbol); if Assigned(PI) then begin - {$IFDEF DELPHI8_UP} + {$IFDEF COMPILER8_UP} PV := GetPropValue(Self, PI); - {$ELSE} + {$ELSE ~COMPILER8_UP} PV := GetPropValue(Self, PI^.Name); - {$ENDIF} + {$ENDIF ~COMPILER8_UP} if Boolean(PV) then Result := ttDefined else @@ -484,17 +484,17 @@ if Assigned(PI) then begin if Value = ttDefined then - {$IFDEF DELPHI8_UP} + {$IFDEF COMPILER8_UP} SetPropValue(Self, PI, True) - {$ELSE} + {$ELSE ~COMPILER8_UP} SetPropValue(Self, PI^.Name, True) - {$ENDIF} + {$ENDIF ~COMPILER8_UP} else - {$IFDEF DELPHI8_UP} + {$IFDEF COMPILER8_UP} SetPropValue(Self, PI, False); - {$ELSE} + {$ELSE ~COMPILER8_UP} SetPropValue(Self, PI^.Name, False); - {$ENDIF} + {$ENDIF ~COMPILER8_UP} Exit; end; end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-07-19 14:26:22
|
Revision: 3262 http://jcl.svn.sourceforge.net/jcl/?rev=3262&view=rev Author: outchy Date: 2010-07-19 14:26:12 +0000 (Mon, 19 Jul 2010) Log Message: ----------- update to ZLib 1.2.5. Modified Paths: -------------- trunk/jcl/source/common/zlibh.pas trunk/jcl/source/windows/obj/zlib/adler32.obj trunk/jcl/source/windows/obj/zlib/compress.obj trunk/jcl/source/windows/obj/zlib/crc32.obj trunk/jcl/source/windows/obj/zlib/deflate.obj trunk/jcl/source/windows/obj/zlib/infback.obj trunk/jcl/source/windows/obj/zlib/inffast.obj trunk/jcl/source/windows/obj/zlib/inflate.obj trunk/jcl/source/windows/obj/zlib/inftrees.obj trunk/jcl/source/windows/obj/zlib/makefile.mak trunk/jcl/source/windows/obj/zlib/trees.obj trunk/jcl/source/windows/obj/zlib/uncompr.obj trunk/jcl/source/windows/obj/zlib/zutil.obj Added Paths: ----------- trunk/thirdparty/zlib/zlib-1.2.5.tar.gz Removed Paths: ------------- trunk/jcl/source/windows/obj/zlib/gzio.obj trunk/thirdparty/zlib/zlib-1.2.3.tar.gz Modified: trunk/jcl/source/common/zlibh.pas =================================================================== --- trunk/jcl/source/common/zlibh.pas 2010-07-18 18:04:25 UTC (rev 3261) +++ trunk/jcl/source/common/zlibh.pas 2010-07-19 14:26:12 UTC (rev 3262) @@ -1,4 +1,4 @@ -{**************************************************************************************************} +{**************************************************************************************************} { } { Project JEDI Code Library (JCL) } { } @@ -173,9 +173,17 @@ const {$EXTERNALSYM ZLIB_VERSION} - ZLIB_VERSION = '1.2.3'; + ZLIB_VERSION = '1.2.5'; {$EXTERNALSYM ZLIB_VERNUM} - ZLIB_VERNUM = $1230; + ZLIB_VERNUM = $1250; + {$EXTERNALSYM ZLIB_VER_MAJOR} + ZLIB_VER_MAJOR = 1; + {$EXTERNALSYM ZLIB_VER_MINOR} + ZLIB_VER_MINOR = 2; + {$EXTERNALSYM ZLIB_VER_REVISION} + ZLIB_VER_REVISION = 5; + {$EXTERNALSYM ZLIB_VER_SUBREVISION} + ZLIB_VER_SUBREVISION = 0; {* The 'zlib' compression library provides in-memory compression and @@ -307,6 +315,8 @@ Z_FINISH = 4; {$EXTERNALSYM Z_BLOCK} Z_BLOCK = 5; + {$EXTERNALSYM Z_TREES} + Z_TREES = 6; {* Allowed flush values; see deflate() and inflate() below for details *} @@ -349,14 +359,18 @@ Z_HUFFMAN_ONLY = 2; {$EXTERNALSYM Z_RLE} Z_RLE = 3; + {$EXTERNALSYM Z_FIXED} + Z_FIXED = 4; {$EXTERNALSYM Z_DEFAULT_STRATEGY} Z_DEFAULT_STRATEGY = 0; {* compression strategy; see deflateInit2() below for details *} {$EXTERNALSYM Z_BINARY} Z_BINARY = 0; + {$EXTERNALSYM Z_TEXT} + Z_TEXT = 1; {$EXTERNALSYM Z_ASCII} - Z_ASCII = 1; + Z_ASCII = Z_TEXT; {$EXTERNALSYM Z_UNKNOWN} Z_UNKNOWN = 2; {* Possible values of the data_type field (though see inflate()) *} @@ -368,8 +382,6 @@ {$EXTERNALSYM Z_NULL} Z_NULL = 0; {* for initializing zalloc, zfree, opaque *} -{* for compatibility with versions < 1.0.2 *} - {* basic functions *} {$IFDEF ZLIB_LINKONREQUEST} Modified: trunk/jcl/source/windows/obj/zlib/adler32.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/zlib/compress.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/zlib/crc32.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/zlib/deflate.obj =================================================================== (Binary files differ) Deleted: trunk/jcl/source/windows/obj/zlib/gzio.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/zlib/infback.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/zlib/inffast.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/zlib/inflate.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/zlib/inftrees.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/zlib/makefile.mak =================================================================== --- trunk/jcl/source/windows/obj/zlib/makefile.mak 2010-07-18 18:04:25 UTC (rev 3261) +++ trunk/jcl/source/windows/obj/zlib/makefile.mak 2010-07-19 14:26:12 UTC (rev 3262) @@ -2,7 +2,7 @@ # makefile to make zlib .obj files using Borland's C++ compiler bcc32 # derived from a makefile generated by BCB6' bpr2mak # -# if zlib source directory is different from $(JLC)\source\zlib-1.2.3, use +# if zlib source directory is different from $(JLC)\source\zlib-1.2.5, use # "make -Dzlibsrc=<path to zlib sources>" to tell make where to find the # source files # @@ -44,7 +44,7 @@ BCC = $(BCB) !if !$d(zlibsrc) -zlibsrc = ..\..\..\zlib-1.2.3 +zlibsrc = ..\..\..\zlib-1.2.5 !endif !if !$d(CPU) @@ -61,7 +61,7 @@ VERSION = BCB.06.00 # --------------------------------------------------------------------------- -OBJFILES = .\zutil.obj .\compress.obj .\crc32.obj .\deflate.obj .\gzio.obj \ +OBJFILES = .\zutil.obj .\compress.obj .\crc32.obj .\deflate.obj \ .\infback.obj .\inffast.obj .\inflate.obj .\inftrees.obj .\trees.obj \ .\uncompr.obj .\adler32.obj # --------------------------------------------------------------------------- Modified: trunk/jcl/source/windows/obj/zlib/trees.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/zlib/uncompr.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/zlib/zutil.obj =================================================================== (Binary files differ) Deleted: trunk/thirdparty/zlib/zlib-1.2.3.tar.gz =================================================================== (Binary files differ) Added: trunk/thirdparty/zlib/zlib-1.2.5.tar.gz =================================================================== (Binary files differ) Property changes on: trunk/thirdparty/zlib/zlib-1.2.5.tar.gz ___________________________________________________________________ Added: svn:mime-type + application/x-compressed-tar This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sf...@us...> - 2010-07-18 18:04:31
|
Revision: 3261 http://jcl.svn.sourceforge.net/jcl/?rev=3261&view=rev Author: sfarrow Date: 2010-07-18 18:04:25 +0000 (Sun, 18 Jul 2010) Log Message: ----------- Updated the TJclFileVersioninfo class to detect if the file passed in does not exist and throw a relevant exception. Modified Paths: -------------- trunk/jcl/source/common/JclFileUtils.pas trunk/jcl/source/common/JclResources.pas Modified: trunk/jcl/source/common/JclFileUtils.pas =================================================================== --- trunk/jcl/source/common/JclFileUtils.pas 2010-07-01 14:56:19 UTC (rev 3260) +++ trunk/jcl/source/common/JclFileUtils.pas 2010-07-18 18:04:25 UTC (rev 3261) @@ -4868,6 +4868,8 @@ Handle: DWORD; Size: DWORD; begin + if not FileExists(FileName) then + raise EJclFileVersionInfoError.CreateResFmt(@RsFileUtilsFileDoesNotExist, [FileName]); Handle := 0; Size := GetFileVersionInfoSize(PChar(FileName), Handle); if Size = 0 then Modified: trunk/jcl/source/common/JclResources.pas =================================================================== --- trunk/jcl/source/common/JclResources.pas 2010-07-01 14:56:19 UTC (rev 3260) +++ trunk/jcl/source/common/JclResources.pas 2010-07-18 18:04:25 UTC (rev 3261) @@ -1163,6 +1163,7 @@ // TJclFileVersionInfo RsFileUtilsNoVersionInfo = 'File contains no version information'; + RsFileUtilsFileDoesNotExist = 'The file %s does not exist'; RsFileUtilsLanguageIndex = 'Illegal language index'; RsFileUtilsEmptyValue = 'No value was supplied'; RsFileUtilsValueNotFound = 'The value %s was not found.'; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-07-01 14:56:25
|
Revision: 3260 http://jcl.svn.sourceforge.net/jcl/?rev=3260&view=rev Author: outchy Date: 2010-07-01 14:56:19 +0000 (Thu, 01 Jul 2010) Log Message: ----------- Mantis 5273: JclLANMan LookupGroupName does not allocate buffers correctly, which causes access violation in NTDLL.DLL Modified Paths: -------------- trunk/jcl/source/windows/JclLANMan.pas Modified: trunk/jcl/source/windows/JclLANMan.pas =================================================================== --- trunk/jcl/source/windows/JclLANMan.pas 2010-06-15 18:16:00 UTC (rev 3259) +++ trunk/jcl/source/windows/JclLANMan.pas 2010-07-01 14:56:19 UTC (rev 3260) @@ -385,8 +385,11 @@ sd: PSID; AccountNameLen, DomainNameLen: DWORD; SidNameUse: SID_NAME_USE; + AccountName, DomainName: string; begin Result := ''; + AccountName := ''; + DomainName := ''; rd2 := 0; if RID = wkrEveryOne then @@ -408,15 +411,19 @@ AccountNameLen := 0; DomainNameLen := 0; SidNameUse := SidTypeUnknown; - if not LookupAccountSID(PChar(Server), sd, PChar(Result), AccountNameLen, - nil, DomainNameLen, SidNameUse) then - SetLength(Result, AccountNamelen); + if not LookupAccountSID(PChar(Server), sd, PChar(AccountName), AccountNameLen, + PChar(DomainName), DomainNameLen, SidNameUse) then + begin + SetLength(AccountName, AccountNamelen); + SetLength(DomainName, DomainNameLen); + end; - if LookupAccountSID(PChar(Server), sd, PChar(Result), AccountNameLen, - nil, DomainNameLen, sidNameUse) then - StrResetLength(Result) + if LookupAccountSID(PChar(Server), sd, PChar(AccountName), AccountNameLen, + PChar(DomainName), DomainNameLen, sidNameUse) then + StrResetLength(AccountName) else RaiseLastOSError; + Result := AccountName; finally FreeSID(sd); end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-06-15 18:16:08
|
Revision: 3259 http://jcl.svn.sourceforge.net/jcl/?rev=3259&view=rev Author: outchy Date: 2010-06-15 18:16:00 +0000 (Tue, 15 Jun 2010) Log Message: ----------- update to PCRE 8.02. Modified Paths: -------------- trunk/jcl/source/common/pcre.pas trunk/jcl/source/windows/obj/pcre/makefile.mak trunk/jcl/source/windows/obj/pcre/pcre_compile.obj trunk/jcl/source/windows/obj/pcre/pcre_config.obj trunk/jcl/source/windows/obj/pcre/pcre_default_tables.obj trunk/jcl/source/windows/obj/pcre/pcre_dfa_exec.obj trunk/jcl/source/windows/obj/pcre/pcre_exec.obj trunk/jcl/source/windows/obj/pcre/pcre_fullinfo.obj trunk/jcl/source/windows/obj/pcre/pcre_get.obj trunk/jcl/source/windows/obj/pcre/pcre_globals.obj trunk/jcl/source/windows/obj/pcre/pcre_info.obj trunk/jcl/source/windows/obj/pcre/pcre_maketables.obj trunk/jcl/source/windows/obj/pcre/pcre_newline.obj trunk/jcl/source/windows/obj/pcre/pcre_ord2utf8.obj trunk/jcl/source/windows/obj/pcre/pcre_refcount.obj trunk/jcl/source/windows/obj/pcre/pcre_study.obj trunk/jcl/source/windows/obj/pcre/pcre_tables.obj trunk/jcl/source/windows/obj/pcre/pcre_try_flipped.obj trunk/jcl/source/windows/obj/pcre/pcre_ucd.obj trunk/jcl/source/windows/obj/pcre/pcre_valid_utf8.obj trunk/jcl/source/windows/obj/pcre/pcre_version.obj trunk/jcl/source/windows/obj/pcre/pcre_xclass.obj Added Paths: ----------- trunk/thirdparty/pcre/pcre-8.02.tar.gz Removed Paths: ------------- trunk/thirdparty/pcre/pcre-8.00.tar.gz Modified: trunk/jcl/source/common/pcre.pas =================================================================== --- trunk/jcl/source/common/pcre.pas 2010-06-15 08:32:57 UTC (rev 3258) +++ trunk/jcl/source/common/pcre.pas 2010-06-15 18:16:00 UTC (rev 3259) @@ -662,6 +662,11 @@ function pcre_study; external; function pcre_version; external; +procedure __llmul; +asm + JMP System.__llmul +end; + type size_t = Longint; Modified: trunk/jcl/source/windows/obj/pcre/makefile.mak =================================================================== --- trunk/jcl/source/windows/obj/pcre/makefile.mak 2010-06-15 08:32:57 UTC (rev 3258) +++ trunk/jcl/source/windows/obj/pcre/makefile.mak 2010-06-15 18:16:00 UTC (rev 3259) @@ -2,7 +2,7 @@ # makefile to make pcre .obj files using Borland's C++ compiler bcc32 # derived from a makefile generated by BCB6' bpr2mak # -# if pcre source directory is different from $(JCL)\source\pcre-8.00, use +# if pcre source directory is different from $(JCL)\source\pcre-8.02, use # "make -Dpcresrc=<path to pcre sources>" to tell make where to find the # source files # @@ -42,7 +42,7 @@ BCC = $(BCB) !if !$d(pcresrc) -pcresrc = ..\..\..\pcre-8.00 +pcresrc = ..\..\..\pcre-8.02 !endif !if !$d(CPU) Modified: trunk/jcl/source/windows/obj/pcre/pcre_compile.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/pcre/pcre_config.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/pcre/pcre_default_tables.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/pcre/pcre_dfa_exec.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/pcre/pcre_exec.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/pcre/pcre_fullinfo.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/pcre/pcre_get.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/pcre/pcre_globals.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/pcre/pcre_info.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/pcre/pcre_maketables.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/pcre/pcre_newline.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/pcre/pcre_ord2utf8.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/pcre/pcre_refcount.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/pcre/pcre_study.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/pcre/pcre_tables.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/pcre/pcre_try_flipped.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/pcre/pcre_ucd.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/pcre/pcre_valid_utf8.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/pcre/pcre_version.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/pcre/pcre_xclass.obj =================================================================== (Binary files differ) Deleted: trunk/thirdparty/pcre/pcre-8.00.tar.gz =================================================================== (Binary files differ) Added: trunk/thirdparty/pcre/pcre-8.02.tar.gz =================================================================== (Binary files differ) Property changes on: trunk/thirdparty/pcre/pcre-8.02.tar.gz ___________________________________________________________________ Added: svn:mime-type + application/x-compressed-tar This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-06-15 08:33:03
|
Revision: 3258 http://jcl.svn.sourceforge.net/jcl/?rev=3258&view=rev Author: outchy Date: 2010-06-15 08:32:57 +0000 (Tue, 15 Jun 2010) Log Message: ----------- Mantis 5211: TJclStackInfoList.DelayStoreStack raises EIntOverflow exception. Modified Paths: -------------- trunk/jcl/source/windows/JclDebug.pas Modified: trunk/jcl/source/windows/JclDebug.pas =================================================================== --- trunk/jcl/source/windows/JclDebug.pas 2010-06-06 20:08:07 UTC (rev 3257) +++ trunk/jcl/source/windows/JclDebug.pas 2010-06-15 08:32:57 UTC (rev 3258) @@ -634,7 +634,7 @@ FDelayedTrace: Boolean; FInStackTracing: Boolean; FRaw: Boolean; - FStackOffset: TJclAddr; + FStackOffset: Int64; function GetItems(Index: Integer): TJclStackInfoItem; function NextStackFrame(var StackFrame: PStackFrame; var StackInfo: TStackInfo): Boolean; procedure StoreToList(const StackInfo: TStackInfo); @@ -5074,7 +5074,7 @@ //CopyMemory(FStackData, StackPtr, StackDataSize); end; - FStackOffset := TJclAddr(FStackData) - TJclAddr(StackPtr); + FStackOffset := Int64(FStackData) - Int64(StackPtr); FFramePointer := Pointer(TJclAddr(FFramePointer) + FStackOffset); TopOfStack := TopOfStack + FStackOffset; end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-06-06 20:08:14
|
Revision: 3257 http://jcl.svn.sourceforge.net/jcl/?rev=3257&view=rev Author: outchy Date: 2010-06-06 20:08:07 +0000 (Sun, 06 Jun 2010) Log Message: ----------- regular help compiler location. Modified Paths: -------------- trunk/help/JCLHelp.dox Modified: trunk/help/JCLHelp.dox =================================================================== --- trunk/help/JCLHelp.dox 2010-05-28 21:11:15 UTC (rev 3256) +++ trunk/help/JCLHelp.dox 2010-06-06 20:08:07 UTC (rev 3257) @@ -25143,7 +25143,7 @@ [Configurations\HLP\{C81B476F-5DE3-416C-A73A-9674B8ECC110}\Basic] CreatePrintableDocumentation=0 -HelpCompiler=C:\Program Files\hlp compiler\HCRTF.EXE +HelpCompiler=C:\Program Files\Microsoft Help Workshop\HCRTF.EXE HLPFilename=..\jcl\help\JclHelp.hlp OutputFile= This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-05-28 21:11:21
|
Revision: 3256 http://jcl.svn.sourceforge.net/jcl/?rev=3256&view=rev Author: outchy Date: 2010-05-28 21:11:15 +0000 (Fri, 28 May 2010) Log Message: ----------- Mantis 5254: JclUnicode contains duplicate functions with different names. Modified Paths: -------------- trunk/jcl/source/common/JclUnicode.pas Modified: trunk/jcl/source/common/JclUnicode.pas =================================================================== --- trunk/jcl/source/common/JclUnicode.pas 2010-05-28 11:13:12 UTC (rev 3255) +++ trunk/jcl/source/common/JclUnicode.pas 2010-05-28 21:11:15 UTC (rev 3256) @@ -1265,7 +1265,6 @@ function UnicodeIsMath(C: UCS4): Boolean; function UnicodeIsCurrency(C: UCS4): Boolean; function UnicodeIsModifierSymbol(C: UCS4): Boolean; -function UnicodeIsNonSpacingMark(C: UCS4): Boolean; function UnicodeIsSpacingMark(C: UCS4): Boolean; function UnicodeIsEnclosing(C: UCS4): Boolean; function UnicodeIsPrivate(C: UCS4): Boolean; @@ -1279,13 +1278,10 @@ function UnicodeIsHan(C: UCS4): Boolean; function UnicodeIsHangul(C: UCS4): Boolean; -function UnicodeIsSeparatorLine(C: UCS4): Boolean; -function UnicodeIsSeparatorParagraph(C: UCS4): Boolean; function UnicodeIsUnassigned(C: UCS4): Boolean; -function UnicodeIsLetterModifier(C: UCS4): Boolean; function UnicodeIsLetterOther(C: UCS4): Boolean; +function UnicodeIsConnector(C: UCS4): Boolean; function UnicodeIsPunctuationOther(C: UCS4): Boolean; -function UnicodeIsSymbolModifier(C: UCS4): Boolean; function UnicodeIsSymbolOther(C: UCS4): Boolean; function UnicodeIsLeftToRightEmbedding(C: UCS4): Boolean; function UnicodeIsLeftToRightOverride(C: UCS4): Boolean; @@ -1301,7 +1297,6 @@ function UnicodeIsBoundaryNeutral(C: UCS4): Boolean; function UnicodeIsSegmentSeparator(C: UCS4): Boolean; function UnicodeIsOtherNeutrals(C: UCS4): Boolean; -function UnicodeIsAssigned(C: UCS4): Boolean; function UnicodeIsASCIIHexDigit(C: UCS4): Boolean; function UnicodeIsBidiControl(C: UCS4): Boolean; function UnicodeIsDeprecated(C: UCS4): Boolean; @@ -4532,7 +4527,7 @@ end; // Determine if the character is non-spacing and should be skipped. - if ((Flags and URE_IGNORE_NONSPACING) <> 0) and UnicodeIsNonSpacingMark(C) then + if ((Flags and URE_IGNORE_NONSPACING) <> 0) and UnicodeIsNonSpacing(C) then begin Inc(Run); Continue; @@ -6723,12 +6718,6 @@ Result := CategoryLookup(C, [ccSymbolModifier]); end; -function UnicodeIsNonSpacingMark(C: UCS4): Boolean; -// Is the character a non-spacing mark? -begin - Result := CategoryLookup(C, [ccMarkNonSpacing]); -end; - function UnicodeIsSpacingMark(C: UCS4): Boolean; // Is the character a spacing mark? begin @@ -6802,26 +6791,11 @@ Result := (C >= $AC00) and (C <= $D7FF); end; -function UnicodeIsSeparatorLine(C: UCS4): Boolean; -begin - Result := CategoryLookup(C, [ccSeparatorLine]); -end; - -function UnicodeIsSeparatorParagraph(C: UCS4): Boolean; -begin - Result := CategoryLookup(C, [ccSeparatorParagraph]); -end; - function UnicodeIsUnassigned(C: UCS4): Boolean; begin Result := CategoryLookup(C, [ccOtherUnassigned]); end; -function UnicodeIsLetterModifier(C: UCS4): Boolean; -begin - Result := CategoryLookup(C, [ccLetterModifier]); -end; - function UnicodeIsLetterOther(C: UCS4): Boolean; begin Result := CategoryLookup(C, [ccLetterOther]); @@ -6837,11 +6811,6 @@ Result := CategoryLookup(C, [ccPunctuationOther]); end; -function UnicodeIsSymbolModifier(C: UCS4): Boolean; -begin - Result := CategoryLookup(C, [ccSymbolModifier]); -end; - function UnicodeIsSymbolOther(C: UCS4): Boolean; begin Result := CategoryLookup(C, [ccSymbolOther]); @@ -6917,11 +6886,6 @@ Result := CategoryLookup(C, [ccOtherNeutrals]); end; -function UnicodeIsAssigned(C: UCS4): Boolean; -begin - Result := CategoryLookup(C, [ccAssigned]); -end; - function UnicodeIsASCIIHexDigit(C: UCS4): Boolean; begin Result := CategoryLookup(C, [ccASCIIHexDigit]); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-05-28 11:13:20
|
Revision: 3255 http://jcl.svn.sourceforge.net/jcl/?rev=3255&view=rev Author: outchy Date: 2010-05-28 11:13:12 +0000 (Fri, 28 May 2010) Log Message: ----------- Mantis 5221: TJclSimpleMapi - Wrong default under Windows Server 2008 (and 2003???). Modified Paths: -------------- trunk/jcl/source/windows/JclMapi.pas Modified: trunk/jcl/source/windows/JclMapi.pas =================================================================== --- trunk/jcl/source/windows/JclMapi.pas 2010-05-23 10:44:39 UTC (rev 3254) +++ trunk/jcl/source/windows/JclMapi.pas 2010-05-28 11:13:12 UTC (rev 3255) @@ -607,9 +607,12 @@ FMapiVersion := RegReadStringDef(HKEY_LOCAL_MACHINE, MessageSubsytemKey, 'MAPIXVER', ''); end; FAnyClientInstalled := FMapiInstalled; + if RegKeyExists(HKEY_CURRENT_USER, MailClientsKey) then + DefaultValue := RegReadStringDef(HKEY_CURRENT_USER, MailClientsKey, '', ''); if RegKeyExists(HKEY_LOCAL_MACHINE, MailClientsKey) then begin - DefaultValue := RegReadStringDef(HKEY_LOCAL_MACHINE, MailClientsKey, '', ''); + if DefaultValue = '' then + DefaultValue := RegReadStringDef(HKEY_LOCAL_MACHINE, MailClientsKey, '', ''); if RegGetKeyNames(HKEY_LOCAL_MACHINE, MailClientsKey, SL) then begin SetLength(FClients, SL.Count); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ah...@us...> - 2010-05-23 10:44:45
|
Revision: 3254 http://jcl.svn.sourceforge.net/jcl/?rev=3254&view=rev Author: ahuser Date: 2010-05-23 10:44:39 +0000 (Sun, 23 May 2010) Log Message: ----------- Removed EDI includes from the header file test (the other header file) (Mantis #05248) Modified Paths: -------------- trunk/jcl/install/HeaderTest/jcl_z2a.cpp Modified: trunk/jcl/install/HeaderTest/jcl_z2a.cpp =================================================================== --- trunk/jcl/install/HeaderTest/jcl_z2a.cpp 2010-05-22 21:54:45 UTC (rev 3253) +++ trunk/jcl/install/HeaderTest/jcl_z2a.cpp 2010-05-23 10:44:39 UTC (rev 3254) @@ -230,30 +230,6 @@ #ifdef TEST_COMMON #include <JclExprEval.hpp> #endif TEST_COMMON -#ifdef TEST_COMMON -#include <JclEDIXML.hpp> -#endif TEST_COMMON -#ifdef TEST_COMMON -#include <JclEDITranslators.hpp> -#endif TEST_COMMON -#ifdef TEST_COMMON -#include <JclEDISEF.hpp> -#endif TEST_COMMON -#ifdef TEST_COMMON -#include <JclEDI_UNEDIFACT_Ext.hpp> -#endif TEST_COMMON -#ifdef TEST_COMMON -#include <JclEDI_UNEDIFACT.hpp> -#endif TEST_COMMON -#ifdef TEST_COMMON -#include <JclEDI_ANSIX12_Ext.hpp> -#endif TEST_COMMON -#ifdef TEST_COMMON -#include <JclEDI_ANSIX12.hpp> -#endif TEST_COMMON -#ifdef TEST_COMMON -#include <JclEDI.hpp> -#endif TEST_COMMON //#ifdef TEST_WINDOWS //#include <JclDotNet.hpp> mscorlib_TLB.hpp is known to fail //#endif TEST_WINDOWS This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ah...@us...> - 2010-05-22 21:54:51
|
Revision: 3253 http://jcl.svn.sourceforge.net/jcl/?rev=3253&view=rev Author: ahuser Date: 2010-05-22 21:54:45 +0000 (Sat, 22 May 2010) Log Message: ----------- Removed EDI includes from the header file test (Mantis #05248) Modified Paths: -------------- trunk/jcl/install/HeaderTest/jcl_a2z.cpp Modified: trunk/jcl/install/HeaderTest/jcl_a2z.cpp =================================================================== --- trunk/jcl/install/HeaderTest/jcl_a2z.cpp 2010-05-21 08:50:09 UTC (rev 3252) +++ trunk/jcl/install/HeaderTest/jcl_a2z.cpp 2010-05-22 21:54:45 UTC (rev 3253) @@ -87,30 +87,6 @@ //#include <JclDotNet.hpp> mscorlib_TLB is known to fail //#endif TEST_WINDOWS #ifdef TEST_COMMON -#include <JclEDI.hpp> -#endif TEST_COMMON -#ifdef TEST_COMMON -#include <JclEDI_ANSIX12.hpp> -#endif TEST_COMMON -#ifdef TEST_COMMON -#include <JclEDI_ANSIX12_Ext.hpp> -#endif TEST_COMMON -#ifdef TEST_COMMON -#include <JclEDI_UNEDIFACT.hpp> -#endif TEST_COMMON -#ifdef TEST_COMMON -#include <JclEDI_UNEDIFACT_Ext.hpp> -#endif TEST_COMMON -#ifdef TEST_COMMON -#include <JclEDISEF.hpp> -#endif TEST_COMMON -#ifdef TEST_COMMON -#include <JclEDITranslators.hpp> -#endif TEST_COMMON -#ifdef TEST_COMMON -#include <JclEDIXML.hpp> -#endif TEST_COMMON -#ifdef TEST_COMMON #include <JclExprEval.hpp> #endif TEST_COMMON #ifdef TEST_COMMON This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ah...@us...> - 2010-05-21 08:50:15
|
Revision: 3252 http://jcl.svn.sourceforge.net/jcl/?rev=3252&view=rev Author: ahuser Date: 2010-05-21 08:50:09 +0000 (Fri, 21 May 2010) Log Message: ----------- TJclStringBuilder.Remove overwrote memory and didn't work as expected. Modified Paths: -------------- trunk/jcl/source/common/JclStrings.pas Modified: trunk/jcl/source/common/JclStrings.pas =================================================================== --- trunk/jcl/source/common/JclStrings.pas 2010-05-18 20:38:49 UTC (rev 3251) +++ trunk/jcl/source/common/JclStrings.pas 2010-05-21 08:50:09 UTC (rev 3252) @@ -4144,11 +4144,11 @@ function TJclStringBuilder.Remove(StartIndex, Length: SizeInt): TJclStringBuilder; begin - if (StartIndex < 0) or (Length < 0) or (StartIndex + Length > FLength) then + if (StartIndex < 0) or (Length < 0) or (StartIndex + Length >= FLength) then raise ArgumentOutOfRangeException.CreateRes(@RsArgumentOutOfRange); if Length > 0 then begin - MoveChar(FChars[StartIndex + Length], FChars[StartIndex], Length); + MoveChar(FChars[StartIndex + Length], FChars[StartIndex], FLength - (StartIndex + Length)); Dec(FLength, Length); end; Result := Self; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <usc...@us...> - 2010-05-18 20:38:56
|
Revision: 3251 http://jcl.svn.sourceforge.net/jcl/?rev=3251&view=rev Author: uschuster Date: 2010-05-18 20:38:49 +0000 (Tue, 18 May 2010) Log Message: ----------- Enhancement from Embarcadero: Possibility to add additional system modules to be included in the stack trace (e.g. DLLs written in C++Builder) Modified Paths: -------------- trunk/jcl/source/windows/JclDebug.pas Modified: trunk/jcl/source/windows/JclDebug.pas =================================================================== --- trunk/jcl/source/windows/JclDebug.pas 2010-05-13 00:22:59 UTC (rev 3250) +++ trunk/jcl/source/windows/JclDebug.pas 2010-05-18 20:38:49 UTC (rev 3251) @@ -995,6 +995,8 @@ procedure RemoveIgnoredException(const ExceptionClass: TClass); procedure RemoveIgnoredExceptionByName(const AExceptionClassName: string); function IsIgnoredException(const ExceptionClass: TClass): Boolean; +// function to add additional system modules to be included in the stack trace +procedure AddModule(const ModuleName: string); {$IFDEF UNITVERSIONING} const @@ -4389,12 +4391,14 @@ type TJclGlobalModulesList = class(TObject) private + FAddedModules: TStringList; FHookedModules: TJclModuleArray; FLock: TJclCriticalSection; FModulesList: TJclModuleInfoList; public constructor Create; destructor Destroy; override; + procedure AddModule(const ModuleName: string); function CreateModulesList: TJclModuleInfoList; procedure FreeModulesList(var ModulesList: TJclModuleInfoList); function ValidateAddress(Addr: Pointer): Boolean; @@ -4412,14 +4416,37 @@ begin FreeAndNil(FLock); FreeAndNil(FModulesList); + FreeAndNil(FAddedModules); inherited Destroy; end; +procedure TJclGlobalModulesList.AddModule(const ModuleName: string); +var + IsMultiThreaded: Boolean; +begin + IsMultiThreaded := IsMultiThread; + if IsMultiThreaded then + FLock.Enter; + try + if not Assigned(FAddedModules) then + begin + FAddedModules := TStringList.Create; + FAddedModules.Sorted := True; + FAddedModules.Duplicates := dupIgnore; + end; + FAddedModules.Add(ModuleName); + finally + if IsMultiThreaded then + FLock.Leave; + end; +end; + function TJclGlobalModulesList.CreateModulesList: TJclModuleInfoList; var I: Integer; SystemModulesOnly: Boolean; IsMultiThreaded: Boolean; + AddedModuleHandle: HMODULE; begin IsMultiThreaded := IsMultiThread; if IsMultiThreaded then @@ -4433,6 +4460,14 @@ if SystemModulesOnly and JclHookedExceptModulesList(FHookedModules) then for I := Low(FHookedModules) to High(FHookedModules) do Result.AddModule(FHookedModules[I], True); + if Assigned(FAddedModules) then + for I := 0 to FAddedModules.Count - 1 do + begin + AddedModuleHandle := GetModuleHandle(PChar(FAddedModules[I])); + if (AddedModuleHandle <> 0) and + not Assigned(Result.ModuleFromAddress[Pointer(AddedModuleHandle)]) then + Result.AddModule(AddedModuleHandle, True); + end; if stStaticModuleList in JclStackTrackingOptions then FModulesList := Result; end @@ -5489,6 +5524,11 @@ end; end; +procedure AddModule(const ModuleName: string); +begin + GlobalModulesList.AddModule(ModuleName); +end; + procedure DoExceptNotify(ExceptObj: TObject; ExceptAddr: Pointer; OSException: Boolean; BaseOfStack: Pointer); begin This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ah...@us...> - 2010-05-13 02:43:30
|
Revision: 3250 http://jcl.svn.sourceforge.net/jcl/?rev=3250&view=rev Author: ahuser Date: 2010-05-13 00:22:59 +0000 (Thu, 13 May 2010) Log Message: ----------- - Optimized CreateRegionFromBitmap - Added new parameter UseAlphaChannel to CreateRegionFromBitmap that allows to create a region from a 32bit bitmap's alpha channel. (changes are required for the rewrite of TJvTransparentForm) Modified Paths: -------------- trunk/jcl/source/vcl/JclGraphics.pas Modified: trunk/jcl/source/vcl/JclGraphics.pas =================================================================== --- trunk/jcl/source/vcl/JclGraphics.pas 2010-05-09 15:25:10 UTC (rev 3249) +++ trunk/jcl/source/vcl/JclGraphics.pas 2010-05-13 00:22:59 UTC (rev 3250) @@ -507,7 +507,7 @@ StartColor, EndColor: TColor; ADirection: TGradientDirection): Boolean; overload; function CreateRegionFromBitmap(Bitmap: TBitmap; RegionColor: TColor; - RegionBitmapMode: TJclRegionBitmapMode): HRGN; + RegionBitmapMode: TJclRegionBitmapMode; UseAlphaChannel: Boolean = False): HRGN; procedure ScreenShot(bm: TBitmap; Left, Top, Width, Height: Integer; Window: THandle = HWND_DESKTOP); overload; procedure ScreenShot(bm: TBitmap; IncludeTaskBar: Boolean = True); overload; function MapWindowRect(hWndFrom, hWndTo: THandle; ARect: TRect):TRect; @@ -1986,12 +1986,14 @@ end; function CreateRegionFromBitmap(Bitmap: TBitmap; RegionColor: TColor; - RegionBitmapMode: TJclRegionBitmapMode): HRGN; + RegionBitmapMode: TJclRegionBitmapMode; UseAlphaChannel: Boolean): HRGN; var - FBitmap: TBitmap; - X, Y: Integer; + LBitmap: TBitmap; + X, Y, Width: Integer; StartX: Integer; Region: HRGN; + P: PBGRA; + Mask: TColor; begin Result := 0; @@ -2001,63 +2003,77 @@ if (Bitmap.Width = 0) or (Bitmap.Height = 0) then Exit; - FBitmap := TBitmap.Create; + if UseAlphaChannel then + begin + Mask := TColor($FF000000); + // A region can represent only full transparent alpha values + RegionColor := 0; + end + else + begin + Mask := TColor($00FFFFFF); + RegionColor := ColorToRGB(RegionColor); + end; + + LBitmap := TBitmap.Create; try - FBitmap.Assign(Bitmap); + LBitmap.Assign(Bitmap); + LBitmap.PixelFormat := pf32bit; - for Y := 0 to FBitmap.Height - 1 do + Width := LBitmap.Width; + for Y := 0 to LBitmap.Height - 1 do begin + P := LBitmap.ScanLine[Y]; X := 0; - while X < FBitmap.Width do + while X < Width do begin - if RegionBitmapMode = rmExclude then begin - while FBitmap.Canvas.Pixels[X,Y] = RegionColor do + while (TColor(P^) and Mask) = RegionColor do begin Inc(X); - if X = FBitmap.Width then + Inc(P); + if X = Width then Break; end; end else begin - while FBitmap.Canvas.Pixels[X,Y] <> RegionColor do + while (TColor(P^) and Mask) <> RegionColor do begin Inc(X); - if X = FBitmap.Width then + Inc(P); + if X = Width then Break; end; end; - if X = FBitmap.Width then + if X = Width then Break; StartX := X; if RegionBitmapMode = rmExclude then begin - while FBitmap.Canvas.Pixels[X,Y] <> RegionColor do + while (X < Width) and ((TColor(P^) and Mask) <> RegionColor) do begin - if X = FBitmap.Width then - Break; Inc(X); + Inc(P); end; end else begin - while FBitmap.Canvas.Pixels[X,Y] = RegionColor do + while (X < Width) and ((TColor(P^) and Mask) = RegionColor) do begin - if X = FBitmap.Width then - Break; Inc(X); + Inc(P); end; end; + Region := CreateRectRgn(StartX, Y, X, Y + 1); if Result = 0 then - Result := CreateRectRgn(StartX, Y, X, Y + 1) + Result := Region else begin - Region := CreateRectRgn(StartX, Y, X, Y + 1); if Region <> 0 then begin CombineRgn(Result, Result, Region, RGN_OR); @@ -2067,7 +2083,7 @@ end; end; finally - FBitmap.Free; + LBitmap.Free; end; end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ah...@us...> - 2010-05-09 15:25:17
|
Revision: 3249 http://jcl.svn.sourceforge.net/jcl/?rev=3249&view=rev Author: ahuser Date: 2010-05-09 15:25:10 +0000 (Sun, 09 May 2010) Log Message: ----------- Fixed wrong parameters Modified Paths: -------------- trunk/jcl/experts/debug/converter/JclDebugIdeImpl.pas Modified: trunk/jcl/experts/debug/converter/JclDebugIdeImpl.pas =================================================================== --- trunk/jcl/experts/debug/converter/JclDebugIdeImpl.pas 2010-05-09 15:14:36 UTC (rev 3248) +++ trunk/jcl/experts/debug/converter/JclDebugIdeImpl.pas 2010-05-09 15:25:10 UTC (rev 3249) @@ -115,7 +115,7 @@ procedure SetProjectState(Index: TDebugExpertAction; const AProject: IOTAProject; Value: TDebugExpertState); function GetProjectActions(const AProject: IOTAProject): TDebugExpertActions; procedure UpdateMenuItems(const ActiveProject: IOTAProject; AMenuItem: TMenuItem; CheckTag: Integer); - procedure UpdateMenuCheckState(Sender: TObject; DebugExpertAction: TDebugExpertAction); + procedure UpdateMenuCheckState(Sender: TMenuItem; DebugExpertAction: TDebugExpertAction); public constructor Create; reintroduce; procedure AfterCompile(const Project: IOTAProject; Succeeded: Boolean); @@ -659,7 +659,7 @@ end; end; -procedure TJclDebugExtension.UpdateMenuCheckState(Sender: TObject; DebugExpertAction: TDebugExpertAction); +procedure TJclDebugExtension.UpdateMenuCheckState(Sender: TMenuItem; DebugExpertAction: TDebugExpertAction); var CheckTag: Integer; ActiveProject: IOTAProject; @@ -670,7 +670,7 @@ CheckTag := DebugExpertStateToInt(ProjectStates[DebugExpertAction, ActiveProject]) else CheckTag := DebugExpertStateToInt(GlobalStates[DebugExpertAction]); - UpdateMenuItems(ActiveProject, Sender as TMenuItem, CheckTag); + UpdateMenuItems(ActiveProject, Sender, CheckTag); except on ExceptionObj: TObject do JclExpertShowExceptionDialog(ExceptionObj); @@ -860,12 +860,12 @@ procedure TJclDebugExtension.DeleteMapFileMenuClick(Sender: TObject); begin - UpdateMenuCheckState(Sender, deDeleteMapFile); + UpdateMenuCheckState(Sender as TMenuItem, deDeleteMapFile); end; procedure TJclDebugExtension.DeleteMapFileMenuDropDown(Sender: TObject); begin - UpdateMenuCheckState(Sender, deDeleteMapFile); + UpdateMenuCheckState((Sender as TPopupMenu).Items, deDeleteMapFile); end; procedure TJclDebugExtension.DeleteMapFileSubMenuClick(Sender: TObject); @@ -931,12 +931,12 @@ procedure TJclDebugExtension.GenerateJdbgMenuClick(Sender: TObject); begin - UpdateMenuCheckState(Sender, deGenerateJdbg); + UpdateMenuCheckState(Sender as TMenuItem, deGenerateJdbg); end; procedure TJclDebugExtension.GenerateJdbgMenuDropDown(Sender: TObject); begin - UpdateMenuCheckState(Sender, deGenerateJdbg); + UpdateMenuCheckState((Sender as TPopupMenu).Items, deGenerateJdbg); end; procedure TJclDebugExtension.GenerateJdbgSubMenuClick(Sender: TObject); @@ -1062,12 +1062,12 @@ procedure TJclDebugExtension.InsertJdbgMenuClick(Sender: TObject); begin - UpdateMenuCheckState(Sender, deInsertJdbg); + UpdateMenuCheckState(Sender as TMenuItem, deInsertJdbg); end; procedure TJclDebugExtension.InsertJdbgMenuDropDown(Sender: TObject); begin - UpdateMenuCheckState(Sender, deInsertJdbg); + UpdateMenuCheckState((Sender as TPopupMenu).Items, deInsertJdbg); end; procedure TJclDebugExtension.InsertJdbgSubMenuClick(Sender: TObject); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ah...@us...> - 2010-05-09 15:14:43
|
Revision: 3248 http://jcl.svn.sourceforge.net/jcl/?rev=3248&view=rev Author: ahuser Date: 2010-05-09 15:14:36 +0000 (Sun, 09 May 2010) Log Message: ----------- - Added "Quiet" option to keep the annoying dialogs and compile log entries away from the user. Default value: False - Some refactoring Modified Paths: -------------- trunk/jcl/experts/common/JclOtaConsts.pas trunk/jcl/experts/common/JclOtaResources.pas trunk/jcl/experts/debug/converter/JclDebugIdeConfigFrame.dfm trunk/jcl/experts/debug/converter/JclDebugIdeConfigFrame.pas trunk/jcl/experts/debug/converter/JclDebugIdeImpl.pas Modified: trunk/jcl/experts/common/JclOtaConsts.pas =================================================================== --- trunk/jcl/experts/common/JclOtaConsts.pas 2010-05-09 15:12:11 UTC (rev 3247) +++ trunk/jcl/experts/common/JclOtaConsts.pas 2010-05-09 15:14:36 UTC (rev 3248) @@ -101,6 +101,7 @@ JclDebugGenerateJdbgSetting = 'JCL_DEBUG_EXPERT_GENERATEJDBG'; JclDebugInsertJdbgSetting = 'JCL_DEBUG_EXPERT_INSERTJDBG'; JclDebugDeleteMapfileSetting = 'JCL_DEBUG_EXPERT_DELETEMAPFILE'; + JclDebugQuietSetting = 'JCL_DEBUG_EXPERT_QUIET'; //=== Favorite Folders Expert ============================================== JclFavoritesExpertName = 'JclFavoriteFoldersExpert'; Modified: trunk/jcl/experts/common/JclOtaResources.pas =================================================================== --- trunk/jcl/experts/common/JclOtaResources.pas 2010-05-09 15:12:11 UTC (rev 3247) +++ trunk/jcl/experts/common/JclOtaResources.pas 2010-05-09 15:14:36 UTC (rev 3248) @@ -285,6 +285,7 @@ RsDebugInsertJdbg = 'Insert JDBG data into the binary'; RsDeleteMapFile = 'Delete map files after conversion'; RsEInvalidDebugExpertState = '%d is not a valid debug expert state'; + RsQuiet = 'Do not show dialogs or log entries'; //=== JclDebugIdeResult.pas ================================================== resourcestring Modified: trunk/jcl/experts/debug/converter/JclDebugIdeConfigFrame.dfm =================================================================== --- trunk/jcl/experts/debug/converter/JclDebugIdeConfigFrame.dfm 2010-05-09 15:12:11 UTC (rev 3247) +++ trunk/jcl/experts/debug/converter/JclDebugIdeConfigFrame.dfm 2010-05-09 15:14:36 UTC (rev 3248) @@ -2,7 +2,7 @@ Left = 0 Top = 0 Width = 369 - Height = 375 + Height = 436 AutoScroll = True TabOrder = 0 TabStop = True @@ -45,4 +45,12 @@ 'RsDataAlwaysEnabled') TabOrder = 2 end + object CheckBoxQuiet: TCheckBox + Left = 3 + Top = 408 + Width = 347 + Height = 17 + Caption = 'RsQuiet' + TabOrder = 3 + end end Modified: trunk/jcl/experts/debug/converter/JclDebugIdeConfigFrame.pas =================================================================== --- trunk/jcl/experts/debug/converter/JclDebugIdeConfigFrame.pas 2010-05-09 15:12:11 UTC (rev 3247) +++ trunk/jcl/experts/debug/converter/JclDebugIdeConfigFrame.pas 2010-05-09 15:14:36 UTC (rev 3248) @@ -43,6 +43,7 @@ RadioGroupGenerateJdbg: TRadioGroup; RadioGroupInsertJdbg: TRadioGroup; RadioGroupDeleteMapFile: TRadioGroup; + CheckBoxQuiet: TCheckBox; private function GetGenerateJdbgState: TDebugExpertState; function GetInsertJdbgState: TDebugExpertState; @@ -50,12 +51,15 @@ procedure SetGenerateJdbgState(Value: TDebugExpertState); procedure SetInsertJdbgState(Value: TDebugExpertState); procedure SetDeleteMapFileState(Value: TDebugExpertState); + function GetQuiet: Boolean; + procedure SetQuiet(const Value: Boolean); public constructor Create(AOwner: TComponent); override; property GenerateJdbgState: TDebugExpertState read GetGenerateJdbgState write SetGenerateJdbgState; property InsertJdbgState: TDebugExpertState read GetInsertJdbgState write SetInsertJdbgState; property DeleteMapFileState: TDebugExpertState read GetDeleteMapFileState write SetDeleteMapFileState; + property Quiet: Boolean read GetQuiet write SetQuiet; end; function DebugExpertStateToInt(Value: TDebugExpertState): Integer; @@ -203,6 +207,8 @@ RadioGroupDeleteMapFile.Items.Strings[1] := LoadResString(@RsDefaultDisabled); RadioGroupDeleteMapFile.Items.Strings[2] := LoadResString(@RsDefaultEnabled); RadioGroupDeleteMapFile.Items.Strings[3] := LoadResString(@RsAlwaysEnabled); + + CheckBoxQuiet.Caption := LoadResString(@RsQuiet); end; function TJclDebugIdeConfigFrame.GetGenerateJdbgState: TDebugExpertState; @@ -220,6 +226,11 @@ Result := IntToDebugExpertState(RadioGroupDeleteMapFile.ItemIndex); end; +function TJclDebugIdeConfigFrame.GetQuiet: Boolean; +begin + Result := CheckBoxQuiet.Checked; +end; + procedure TJclDebugIdeConfigFrame.SetGenerateJdbgState(Value: TDebugExpertState); begin RadioGroupGenerateJdbg.ItemIndex := DebugExpertStateToInt(Value); @@ -235,6 +246,11 @@ RadioGroupDeleteMapFile.ItemIndex := DebugExpertStateToInt(Value); end; +procedure TJclDebugIdeConfigFrame.SetQuiet(const Value: Boolean); +begin + CheckBoxQuiet.Checked := Value; +end; + {$IFDEF UNITVERSIONING} initialization RegisterUnitVersion(HInstance, UnitVersioning); Modified: trunk/jcl/experts/debug/converter/JclDebugIdeImpl.pas =================================================================== --- trunk/jcl/experts/debug/converter/JclDebugIdeImpl.pas 2010-05-09 15:12:11 UTC (rev 3247) +++ trunk/jcl/experts/debug/converter/JclDebugIdeImpl.pas 2010-05-09 15:14:36 UTC (rev 3248) @@ -81,6 +81,7 @@ {$ENDIF BDS4_UP} FConfigFrame: TJclDebugIdeConfigFrame; FGlobalStates: array [TDebugExpertAction] of TDebugExpertState; + FQuiet: Boolean; procedure DebugExpertActionExecute(Sender: TObject); procedure DebugExpertActionUpdate(Sender: TObject); procedure DebugExpertMenuClick(Sender: TObject); @@ -113,6 +114,8 @@ function GetProjectState(Index: TDebugExpertAction; const AProject: IOTAProject): TDebugExpertState; procedure SetProjectState(Index: TDebugExpertAction; const AProject: IOTAProject; Value: TDebugExpertState); function GetProjectActions(const AProject: IOTAProject): TDebugExpertActions; + procedure UpdateMenuItems(const ActiveProject: IOTAProject; AMenuItem: TMenuItem; CheckTag: Integer); + procedure UpdateMenuCheckState(Sender: TObject; DebugExpertAction: TDebugExpertAction); public constructor Create; reintroduce; procedure AfterCompile(const Project: IOTAProject; Succeeded: Boolean); @@ -194,7 +197,7 @@ DebugActionNames: array [TDebugExpertAction] of AnsiString = ( JclDebugGenerateJdbgSetting, // deGenerateJdbg JclDebugInsertJdbgSetting, // deInsertJdbg - JclDebugDeleteMapfileSetting // deDeleteMapFile); + JclDebugDeleteMapfileSetting // deDeleteMapFile ); DebugActionValues: array [False..True] of AnsiString = ( 'OFF', 'ON' ); @@ -291,6 +294,7 @@ GlobalStates[deGenerateJdbg] := FConfigFrame.GenerateJdbgState; GlobalStates[deInsertJdbg] := FConfigFrame.InsertJdbgState; GlobalStates[deDeleteMapFile] := FConfigFrame.DeleteMapFileState; + FQuiet := FConfigFrame.Quiet; end; FreeAndNil(FConfigFrame); end @@ -310,6 +314,7 @@ FConfigFrame.GenerateJdbgState := GlobalStates[deGenerateJdbg]; FConfigFrame.InsertJdbgState := GlobalStates[deInsertJdbg]; FConfigFrame.DeleteMapFileState := GlobalStates[deDeleteMapFile]; + FConfigFrame.Quiet := FQuiet; AddPageFunc(FConfigFrame, LoadResString(@RsDebugConfigPageCaption), Self); end; @@ -361,7 +366,10 @@ Succ := ConvertMapFileToJdbgFile(MapFileName, LinkerBugUnit, LineNumberErrors, MapFileSize, JclDebugDataSize); if Succ then - OutputToolMessage(Format(LoadResString(@RsConvertedMapToJdbg), [MapFileName, MapFileSize, JclDebugDataSize])) + begin + if not FQuiet then + OutputToolMessage(Format(LoadResString(@RsConvertedMapToJdbg), [MapFileName, MapFileSize, JclDebugDataSize])); + end else OutputToolMessage(Format(LoadResString(@RsEMapConversion), [MapFileName])); end; @@ -375,7 +383,10 @@ Succ := InsertDebugDataIntoExecutableFile(ExecutableFileName, MapFileName, LinkerBugUnit, MapFileSize, JclDebugDataSize, LineNumberErrors); if Succ then - OutputToolMessage(Format(LoadResString(@RsInsertedJdbg), [MapFileName, MapFileSize, JclDebugDataSize])) + begin + if not FQuiet then + OutputToolMessage(Format(LoadResString(@RsInsertedJdbg), [MapFileName, MapFileSize, JclDebugDataSize])); + end else OutputToolMessage(Format(LoadResString(@RsEMapConversion), [MapFileName])); end @@ -388,7 +399,10 @@ begin Succ := DeleteFile(MapFileName); if Succ then - OutputToolMessage(Format(LoadResString(@RsDeletedMapFile), ['MAP', MapFileName])) + begin + if not FQuiet then + OutputToolMessage(Format(LoadResString(@RsDeletedMapFile), ['MAP', MapFileName])); + end else OutputToolMessage(Format(LoadResString(@RsEFailedToDeleteMapFile), ['MAP', MapFileName])); if DeleteFile(DrcFileName) then @@ -496,7 +510,7 @@ if ChangeILinkMapFileTypeOption or ChangeDccMapFileOption or ChangeMapFileOption then begin - if MessageDlg(Format(LoadResString(@RsChangeMapFileOption), [ExtractFileName(Project.FileName)]), mtConfirmation, [mbYes, mbNo], 0) = mrYes then + if FQuiet or (MessageDlg(Format(LoadResString(@RsChangeMapFileOption), [ExtractFileName(Project.FileName)]), mtConfirmation, [mbYes, mbNo], 0) = mrYes) then begin {$IFDEF BDS6_UP} if ChangeILinkMapFileTypeOption then @@ -631,6 +645,38 @@ FResultInfo := nil; end; +procedure TJclDebugExtension.UpdateMenuItems(const ActiveProject: IOTAProject; AMenuItem: TMenuItem; CheckTag: Integer); +var + Index: Integer; + BMenuItem: TMenuItem; +begin + for Index := 0 to AMenuItem.Count - 1 do + begin + BMenuItem := AMenuItem.Items[Index]; + BMenuItem.Enabled := (ActiveProject <> nil) or (BMenuItem.Tag = DebugExpertStateToInt(deAlwaysDisabled)) + or (BMenuItem.Tag = DebugExpertStateToInt(deAlwaysEnabled)); + BMenuItem.Checked := BMenuItem.Tag = CheckTag; + end; +end; + +procedure TJclDebugExtension.UpdateMenuCheckState(Sender: TObject; DebugExpertAction: TDebugExpertAction); +var + CheckTag: Integer; + ActiveProject: IOTAProject; +begin + try + ActiveProject := GetActiveProject; + if ActiveProject <> nil then + CheckTag := DebugExpertStateToInt(ProjectStates[DebugExpertAction, ActiveProject]) + else + CheckTag := DebugExpertStateToInt(GlobalStates[DebugExpertAction]); + UpdateMenuItems(ActiveProject, Sender as TMenuItem, CheckTag); + except + on ExceptionObj: TObject do + JclExpertShowExceptionDialog(ExceptionObj); + end; +end; + procedure TJclDebugExtension.DebugExpertActionExecute(Sender: TObject); var ActiveProject: IOTAProject; @@ -706,9 +752,7 @@ procedure TJclDebugExtension.DebugExpertMenuDropDown(Sender: TObject); var - CheckTag, Index: Integer; - APopupMenu: TPopupMenu; - AMenuItem: TMenuItem; + CheckTag: Integer; ActiveProject: IOTAProject; TestState: TDebugExpertState; IndexAction: TDebugExpertAction; @@ -737,14 +781,8 @@ Break; end; end; - APopupMenu := Sender as TPopupMenu; - for Index := 0 to APopupMenu.Items.Count - 1 do - begin - AMenuItem := APopupMenu.Items.Items[Index]; - AMenuItem.Enabled := (ActiveProject <> nil) or (AMenuItem.Tag = DebugExpertStateToInt(deAlwaysDisabled)) - or (AMenuItem.Tag = DebugExpertStateToInt(deAlwaysEnabled)); - AMenuItem.Checked := AMenuItem.Tag = CheckTag; - end; + + UpdateMenuItems(ActiveProject, (Sender as TPopupMenu).Items, CheckTag); except on ExceptionObj: TObject do JclExpertShowExceptionDialog(ExceptionObj); @@ -821,56 +859,13 @@ end; procedure TJclDebugExtension.DeleteMapFileMenuClick(Sender: TObject); -var - AMenuItem, BMenuItem: TMenuItem; - CheckTag, Index: Integer; - ActiveProject: IOTAProject; begin - try - ActiveProject := GetActiveProject; - if ActiveProject <> nil then - CheckTag := DebugExpertStateToInt(ProjectStates[deDeleteMapFile, ActiveProject]) - else - CheckTag := DebugExpertStateToInt(GlobalStates[deDeleteMapFile]); - AMenuItem := Sender as TMenuItem; - for Index := 0 to AMenuItem.Count - 1 do - begin - BMenuItem := AMenuItem.Items[Index]; - BMenuItem.Enabled := (ActiveProject <> nil) or (BMenuItem.Tag = DebugExpertStateToInt(deAlwaysDisabled)) - or (BMenuItem.Tag = DebugExpertStateToInt(deAlwaysEnabled)); - BMenuItem.Checked := BMenuItem.Tag = CheckTag; - end; - except - on ExceptionObj: TObject do - JclExpertShowExceptionDialog(ExceptionObj); - end; + UpdateMenuCheckState(Sender, deDeleteMapFile); end; procedure TJclDebugExtension.DeleteMapFileMenuDropDown(Sender: TObject); -var - AMenu: TPopupMenu; - AMenuItem: TMenuItem; - CheckTag, Index: Integer; - ActiveProject: IOTAProject; begin - try - ActiveProject := GetActiveProject; - if ActiveProject <> nil then - CheckTag := DebugExpertStateToInt(ProjectStates[deDeleteMapFile, ActiveProject]) - else - CheckTag := DebugExpertStateToInt(GlobalStates[deDeleteMapFile]); - AMenu := Sender as TPopupMenu; - for Index := 0 to AMenu.Items.Count - 1 do - begin - AMenuItem := AMenu.Items.Items[Index]; - AMenuItem.Enabled := (ActiveProject <> nil) or (AMenuItem.Tag = DebugExpertStateToInt(deAlwaysDisabled)) - or (AMenuItem.Tag = DebugExpertStateToInt(deAlwaysEnabled)); - AMenuItem.Checked := AMenuItem.Tag = CheckTag; - end; - except - on ExceptionObj: TObject do - JclExpertShowExceptionDialog(ExceptionObj); - end; + UpdateMenuCheckState(Sender, deDeleteMapFile); end; procedure TJclDebugExtension.DeleteMapFileSubMenuClick(Sender: TObject); @@ -935,56 +930,13 @@ end; procedure TJclDebugExtension.GenerateJdbgMenuClick(Sender: TObject); -var - AMenuItem, BMenuItem: TMenuItem; - CheckTag, Index: Integer; - ActiveProject: IOTAProject; begin - try - ActiveProject := GetActiveProject; - if ActiveProject <> nil then - CheckTag := DebugExpertStateToInt(ProjectStates[deGenerateJdbg, ActiveProject]) - else - CheckTag := DebugExpertStateToInt(GlobalStates[deGenerateJdbg]); - AMenuItem := Sender as TMenuItem; - for Index := 0 to AMenuItem.Count - 1 do - begin - BMenuItem := AMenuItem.Items[Index]; - BMenuItem.Enabled := (ActiveProject <> nil) or (BMenuItem.Tag = DebugExpertStateToInt(deAlwaysDisabled)) - or (BMenuItem.Tag = DebugExpertStateToInt(deAlwaysEnabled)); - BMenuItem.Checked := BMenuItem.Tag = CheckTag; - end; - except - on ExceptionObj: TObject do - JclExpertShowExceptionDialog(ExceptionObj); - end; + UpdateMenuCheckState(Sender, deGenerateJdbg); end; procedure TJclDebugExtension.GenerateJdbgMenuDropDown(Sender: TObject); -var - AMenu: TPopupMenu; - AMenuItem: TMenuItem; - CheckTag, Index: Integer; - ActiveProject: IOTAProject; begin - try - ActiveProject := GetActiveProject; - if ActiveProject <> nil then - CheckTag := DebugExpertStateToInt(ProjectStates[deGenerateJdbg, ActiveProject]) - else - CheckTag := DebugExpertStateToInt(GlobalStates[deGenerateJdbg]); - AMenu := Sender as TPopupMenu; - for Index := 0 to AMenu.Items.Count - 1 do - begin - AMenuItem := AMenu.Items.Items[Index]; - AMenuItem.Enabled := (ActiveProject <> nil) or (AMenuItem.Tag = DebugExpertStateToInt(deAlwaysDisabled)) - or (AMenuItem.Tag = DebugExpertStateToInt(deAlwaysEnabled)); - AMenuItem.Checked := AMenuItem.Tag = CheckTag; - end; - except - on ExceptionObj: TObject do - JclExpertShowExceptionDialog(ExceptionObj); - end; + UpdateMenuCheckState(Sender, deGenerateJdbg); end; procedure TJclDebugExtension.GenerateJdbgSubMenuClick(Sender: TObject); @@ -1109,56 +1061,13 @@ end; procedure TJclDebugExtension.InsertJdbgMenuClick(Sender: TObject); -var - AMenuItem, BMenuItem: TMenuItem; - CheckTag, Index: Integer; - ActiveProject: IOTAProject; begin - try - ActiveProject := GetActiveProject; - if ActiveProject <> nil then - CheckTag := DebugExpertStateToInt(ProjectStates[deInsertJdbg, ActiveProject]) - else - CheckTag := DebugExpertStateToInt(GlobalStates[deInsertJdbg]); - AMenuItem := Sender as TMenuItem; - for Index := 0 to AMenuItem.Count - 1 do - begin - BMenuItem := AMenuItem.Items[Index]; - BMenuItem.Enabled := (ActiveProject <> nil) or (BMenuItem.Tag = DebugExpertStateToInt(deAlwaysDisabled)) - or (BMenuItem.Tag = DebugExpertStateToInt(deAlwaysEnabled)); - BMenuItem.Checked := BMenuItem.Tag = CheckTag; - end; - except - on ExceptionObj: TObject do - JclExpertShowExceptionDialog(ExceptionObj); - end; + UpdateMenuCheckState(Sender, deInsertJdbg); end; procedure TJclDebugExtension.InsertJdbgMenuDropDown(Sender: TObject); -var - AMenu: TPopupMenu; - AMenuItem: TMenuItem; - CheckTag, Index: Integer; - ActiveProject: IOTAProject; begin - try - ActiveProject := GetActiveProject; - if ActiveProject <> nil then - CheckTag := DebugExpertStateToInt(ProjectStates[deInsertJdbg, ActiveProject]) - else - CheckTag := DebugExpertStateToInt(GlobalStates[deInsertJdbg]); - AMenu := Sender as TPopupMenu; - for Index := 0 to AMenu.Items.Count - 1 do - begin - AMenuItem := AMenu.Items.Items[Index]; - AMenuItem.Enabled := (ActiveProject <> nil) or (AMenuItem.Tag = DebugExpertStateToInt(deAlwaysDisabled)) - or (AMenuItem.Tag = DebugExpertStateToInt(deAlwaysEnabled)); - AMenuItem.Checked := AMenuItem.Tag = CheckTag; - end; - except - on ExceptionObj: TObject do - JclExpertShowExceptionDialog(ExceptionObj); - end; + UpdateMenuCheckState(Sender, deInsertJdbg); end; procedure TJclDebugExtension.InsertJdbgSubMenuClick(Sender: TObject); @@ -1184,6 +1093,7 @@ GlobalStates[deGenerateJdbg] := IntToDebugExpertState(Settings.LoadInteger(JclDebugGenerateJdbgRegValue, 0)); GlobalStates[deInsertJdbg] := IntToDebugExpertState(Settings.LoadInteger(JclDebugInsertJdbgRegValue, 0)); GlobalStates[deDeleteMapFile] := IntToDebugExpertState(Settings.LoadInteger(JclDebugDeleteMapFileRegValue, 0)); + FQuiet := Settings.LoadBool(JclDebugQuietSetting, False); end; procedure TJclDebugExtension.SaveExpertValues; @@ -1191,6 +1101,7 @@ Settings.SaveInteger(JclDebugGenerateJdbgRegValue, DebugExpertStateToInt(GlobalStates[deGenerateJdbg])); Settings.SaveInteger(JclDebugInsertJdbgRegValue, DebugExpertStateToInt(GlobalStates[deInsertJdbg])); Settings.SaveInteger(JclDebugDeleteMapFileRegValue, DebugExpertStateToInt(GlobalStates[deDeleteMapFile])); + Settings.SaveBool(JclDebugQuietSetting, FQuiet); end; procedure TJclDebugExtension.SetGlobalState(Index: TDebugExpertAction; Value: TDebugExpertState); @@ -1215,7 +1126,7 @@ SetLength(PropValues, 1); PropValues[0] := DebugActionValues[False]; if SetProjectProperties(AProject, PropIDs, PropValues) <> 1 then - MessageDlg(LoadResString(@RsEProjectPropertyFailed),mtError,[mbAbort],0); + MessageDlg(LoadResString(@RsEProjectPropertyFailed), mtError, [mbAbort],0); end; deProjectEnabled: begin @@ -1226,7 +1137,7 @@ SetLength(PropValues, 1); PropValues[0] := DebugActionValues[True]; if SetProjectProperties(AProject, PropIDs, PropValues) <> 1 then - MessageDlg(LoadResString(@RsEProjectPropertyFailed),mtError,[mbAbort],0); + MessageDlg(LoadResString(@RsEProjectPropertyFailed), mtError, [mbAbort],0); end; deAlwaysEnabled: FGlobalStates[Index] := deAlwaysEnabled; @@ -1234,6 +1145,7 @@ end; procedure TJclDebugExtension.RegisterCommands; + procedure FillMenu(AMenuItem: TMenuItem; AEvent: TNotifyEvent); var BMenuItem: TMenuItem; @@ -1266,6 +1178,7 @@ BMenuItem.OnClick := AEvent; AMenuItem.Add(BMenuItem); end; + var IDEMainMenu: TMainMenu; IDEProjectItem: TMenuItem; @@ -1592,6 +1505,7 @@ procedure TProjectManagerMultipleNotifier.AddMenu(const Project: IOTAProject; const Ident: TStrings; const ProjectManagerMenuList: IInterfaceList; IsMultiSelect: Boolean); + procedure FillProjMenu(const ParentVerb: string; Action: TDebugExpertAction); var BMenu: TJclOTAProjectManagerMenu; @@ -1738,6 +1652,7 @@ end; function TProjectManagerSimpleNotifier.AddMenu(const Ident: string): TMenuItem; + procedure FillSubMenu(AMenuItem: TMenuItem; const AOnClickEvent: TNotifyEvent; AState: TDebugExpertState); var SubMenuItem: TMenuItem; @@ -1778,6 +1693,7 @@ SubMenuItem.OnClick := AOnClickEvent; AMenuItem.Add(SubMenuItem); end; + var SelectedIdent: string; AProject: IOTAProject; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ah...@us...> - 2010-05-09 15:12:17
|
Revision: 3247 http://jcl.svn.sourceforge.net/jcl/?rev=3247&view=rev Author: ahuser Date: 2010-05-09 15:12:11 +0000 (Sun, 09 May 2010) Log Message: ----------- Removed compile warning Modified Paths: -------------- trunk/jcl/source/common/JclCompression.pas Modified: trunk/jcl/source/common/JclCompression.pas =================================================================== --- trunk/jcl/source/common/JclCompression.pas 2010-05-07 18:49:22 UTC (rev 3246) +++ trunk/jcl/source/common/JclCompression.pas 2010-05-09 15:12:11 UTC (rev 3247) @@ -2857,7 +2857,7 @@ if (FHeader.Flags and JCL_GZIP_FLAG_NAME) <> 0 then FOriginalFileName := TFileName(ReadCString); if (FHeader.Flags and JCL_GZIP_FLAG_COMMENT) <> 0 then - FComment := ReadCString; + FComment := string(ReadCString); if CheckHeaderCRC then begin This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-05-07 18:49:29
|
Revision: 3246 http://jcl.svn.sourceforge.net/jcl/?rev=3246&view=rev Author: outchy Date: 2010-05-07 18:49:22 +0000 (Fri, 07 May 2010) Log Message: ----------- removed the EDI stuff. Modified Paths: -------------- trunk/jcl/packages/c6/Jcl.bpk trunk/jcl/packages/c6/Jcl.dpk trunk/jcl/packages/cs1/Jcl.dpk trunk/jcl/packages/d10/Jcl.dpk trunk/jcl/packages/d11/Jcl.dpk trunk/jcl/packages/d11/Jcl.dproj trunk/jcl/packages/d12/Jcl.dpk trunk/jcl/packages/d12/Jcl.dproj trunk/jcl/packages/d14/Jcl.dpk trunk/jcl/packages/d14/Jcl.dproj trunk/jcl/packages/d6/Jcl.dpk trunk/jcl/packages/d7/Jcl.dpk trunk/jcl/packages/d8/Jcl.dpk trunk/jcl/packages/d9/Jcl.dpk trunk/jcl/packages/fpc/Jcl.lpk trunk/jcl/packages/fpc/Jcl.pas trunk/jcl/packages/xml/Jcl-R.xml trunk/jcl/source/common/JclResources.pas trunk/thirdparty/svn_cleaner/SvnCleaner.xml Removed Paths: ------------- trunk/jcl/examples/windows/edisdk/ 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 Modified: trunk/jcl/packages/c6/Jcl.bpk =================================================================== --- trunk/jcl/packages/c6/Jcl.bpk 2010-05-07 18:47:01 UTC (rev 3245) +++ trunk/jcl/packages/c6/Jcl.bpk 2010-05-07 18:49:22 UTC (rev 3246) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 07-05-2010 18:37:41 UTC + Last generated: 07-05-2010 18:46:59 UTC ***************************************************************************** --> <PROJECT> @@ -23,14 +23,6 @@ ..\..\lib\c6\JclCompression.obj ..\..\lib\c6\JclCounter.obj ..\..\lib\c6\JclDateTime.obj - ..\..\lib\c6\JclEDI.obj - ..\..\lib\c6\JclEDISEF.obj - ..\..\lib\c6\JclEDITranslators.obj - ..\..\lib\c6\JclEDIXML.obj - ..\..\lib\c6\JclEDI_ANSIX12.obj - ..\..\lib\c6\JclEDI_ANSIX12_Ext.obj - ..\..\lib\c6\JclEDI_UNEDIFACT.obj - ..\..\lib\c6\JclEDI_UNEDIFACT_Ext.obj ..\..\lib\c6\JclExprEval.obj ..\..\lib\c6\JclFileUtils.obj ..\..\lib\c6\JclIniFiles.obj @@ -154,14 +146,6 @@ <FILE FILENAME="..\..\source\common\JclCompression.pas" FORMNAME="" UNITNAME="JclCompression" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclCounter.pas" FORMNAME="" UNITNAME="JclCounter" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclDateTime.pas" FORMNAME="" UNITNAME="JclDateTime" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> - <FILE FILENAME="..\..\source\common\JclEDI.pas" FORMNAME="" UNITNAME="JclEDI" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> - <FILE FILENAME="..\..\source\common\JclEDISEF.pas" FORMNAME="" UNITNAME="JclEDISEF" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> - <FILE FILENAME="..\..\source\common\JclEDITranslators.pas" FORMNAME="" UNITNAME="JclEDITranslators" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> - <FILE FILENAME="..\..\source\common\JclEDIXML.pas" FORMNAME="" UNITNAME="JclEDIXML" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> - <FILE FILENAME="..\..\source\common\JclEDI_ANSIX12.pas" FORMNAME="" UNITNAME="JclEDI_ANSIX12" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> - <FILE FILENAME="..\..\source\common\JclEDI_ANSIX12_Ext.pas" FORMNAME="" UNITNAME="JclEDI_ANSIX12_Ext" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> - <FILE FILENAME="..\..\source\common\JclEDI_UNEDIFACT.pas" FORMNAME="" UNITNAME="JclEDI_UNEDIFACT" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> - <FILE FILENAME="..\..\source\common\JclEDI_UNEDIFACT_Ext.pas" FORMNAME="" UNITNAME="JclEDI_UNEDIFACT_Ext" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclExprEval.pas" FORMNAME="" UNITNAME="JclExprEval" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclFileUtils.pas" FORMNAME="" UNITNAME="JclFileUtils" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> <FILE FILENAME="..\..\source\common\JclIniFiles.pas" FORMNAME="" UNITNAME="JclIniFiles" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> Modified: trunk/jcl/packages/c6/Jcl.dpk =================================================================== --- trunk/jcl/packages/c6/Jcl.dpk 2010-05-07 18:47:01 UTC (rev 3245) +++ trunk/jcl/packages/c6/Jcl.dpk 2010-05-07 18:49:22 UTC (rev 3246) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 07-05-2010 18:37:41 UTC + Last generated: 07-05-2010 18:46:59 UTC ----------------------------------------------------------------------------- } @@ -54,14 +54,6 @@ JclCompression in '..\..\source\common\JclCompression.pas' , JclCounter in '..\..\source\common\JclCounter.pas' , JclDateTime in '..\..\source\common\JclDateTime.pas' , - JclEDI in '..\..\source\common\JclEDI.pas' , - JclEDISEF in '..\..\source\common\JclEDISEF.pas' , - JclEDITranslators in '..\..\source\common\JclEDITranslators.pas' , - JclEDIXML in '..\..\source\common\JclEDIXML.pas' , - JclEDI_ANSIX12 in '..\..\source\common\JclEDI_ANSIX12.pas' , - JclEDI_ANSIX12_Ext in '..\..\source\common\JclEDI_ANSIX12_Ext.pas' , - JclEDI_UNEDIFACT in '..\..\source\common\JclEDI_UNEDIFACT.pas' , - JclEDI_UNEDIFACT_Ext in '..\..\source\common\JclEDI_UNEDIFACT_Ext.pas' , JclExprEval in '..\..\source\common\JclExprEval.pas' , JclFileUtils in '..\..\source\common\JclFileUtils.pas' , JclIniFiles in '..\..\source\common\JclIniFiles.pas' , Modified: trunk/jcl/packages/cs1/Jcl.dpk =================================================================== --- trunk/jcl/packages/cs1/Jcl.dpk 2010-05-07 18:47:01 UTC (rev 3245) +++ trunk/jcl/packages/cs1/Jcl.dpk 2010-05-07 18:49:22 UTC (rev 3246) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 07-05-2010 18:37:41 UTC + Last generated: 07-05-2010 18:46:59 UTC ----------------------------------------------------------------------------- } @@ -53,14 +53,6 @@ JclCompression in '..\..\source\common\JclCompression.pas' , JclCounter in '..\..\source\common\JclCounter.pas' , JclDateTime in '..\..\source\common\JclDateTime.pas' , - JclEDI in '..\..\source\common\JclEDI.pas' , - JclEDISEF in '..\..\source\common\JclEDISEF.pas' , - JclEDITranslators in '..\..\source\common\JclEDITranslators.pas' , - JclEDIXML in '..\..\source\common\JclEDIXML.pas' , - JclEDI_ANSIX12 in '..\..\source\common\JclEDI_ANSIX12.pas' , - JclEDI_ANSIX12_Ext in '..\..\source\common\JclEDI_ANSIX12_Ext.pas' , - JclEDI_UNEDIFACT in '..\..\source\common\JclEDI_UNEDIFACT.pas' , - JclEDI_UNEDIFACT_Ext in '..\..\source\common\JclEDI_UNEDIFACT_Ext.pas' , JclExprEval in '..\..\source\common\JclExprEval.pas' , JclFileUtils in '..\..\source\common\JclFileUtils.pas' , JclIniFiles in '..\..\source\common\JclIniFiles.pas' , Modified: trunk/jcl/packages/d10/Jcl.dpk =================================================================== --- trunk/jcl/packages/d10/Jcl.dpk 2010-05-07 18:47:01 UTC (rev 3245) +++ trunk/jcl/packages/d10/Jcl.dpk 2010-05-07 18:49:22 UTC (rev 3246) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 07-05-2010 18:37:41 UTC + Last generated: 07-05-2010 18:46:59 UTC ----------------------------------------------------------------------------- } @@ -55,14 +55,6 @@ JclCompression in '..\..\source\common\JclCompression.pas' , JclCounter in '..\..\source\common\JclCounter.pas' , JclDateTime in '..\..\source\common\JclDateTime.pas' , - JclEDI in '..\..\source\common\JclEDI.pas' , - JclEDISEF in '..\..\source\common\JclEDISEF.pas' , - JclEDITranslators in '..\..\source\common\JclEDITranslators.pas' , - JclEDIXML in '..\..\source\common\JclEDIXML.pas' , - JclEDI_ANSIX12 in '..\..\source\common\JclEDI_ANSIX12.pas' , - JclEDI_ANSIX12_Ext in '..\..\source\common\JclEDI_ANSIX12_Ext.pas' , - JclEDI_UNEDIFACT in '..\..\source\common\JclEDI_UNEDIFACT.pas' , - JclEDI_UNEDIFACT_Ext in '..\..\source\common\JclEDI_UNEDIFACT_Ext.pas' , JclExprEval in '..\..\source\common\JclExprEval.pas' , JclFileUtils in '..\..\source\common\JclFileUtils.pas' , JclIniFiles in '..\..\source\common\JclIniFiles.pas' , Modified: trunk/jcl/packages/d11/Jcl.dpk =================================================================== --- trunk/jcl/packages/d11/Jcl.dpk 2010-05-07 18:47:01 UTC (rev 3245) +++ trunk/jcl/packages/d11/Jcl.dpk 2010-05-07 18:49:22 UTC (rev 3246) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 07-05-2010 18:37:41 UTC + Last generated: 07-05-2010 18:46:59 UTC ----------------------------------------------------------------------------- } @@ -56,14 +56,6 @@ JclCompression in '..\..\source\common\JclCompression.pas' , JclCounter in '..\..\source\common\JclCounter.pas' , JclDateTime in '..\..\source\common\JclDateTime.pas' , - JclEDI in '..\..\source\common\JclEDI.pas' , - JclEDISEF in '..\..\source\common\JclEDISEF.pas' , - JclEDITranslators in '..\..\source\common\JclEDITranslators.pas' , - JclEDIXML in '..\..\source\common\JclEDIXML.pas' , - JclEDI_ANSIX12 in '..\..\source\common\JclEDI_ANSIX12.pas' , - JclEDI_ANSIX12_Ext in '..\..\source\common\JclEDI_ANSIX12_Ext.pas' , - JclEDI_UNEDIFACT in '..\..\source\common\JclEDI_UNEDIFACT.pas' , - JclEDI_UNEDIFACT_Ext in '..\..\source\common\JclEDI_UNEDIFACT_Ext.pas' , JclExprEval in '..\..\source\common\JclExprEval.pas' , JclFileUtils in '..\..\source\common\JclFileUtils.pas' , JclIniFiles in '..\..\source\common\JclIniFiles.pas' , Modified: trunk/jcl/packages/d11/Jcl.dproj =================================================================== --- trunk/jcl/packages/d11/Jcl.dproj 2010-05-07 18:47:01 UTC (rev 3245) +++ trunk/jcl/packages/d11/Jcl.dproj 2010-05-07 18:49:22 UTC (rev 3246) @@ -95,14 +95,6 @@ <DCCReference Include="..\..\source\common\JclCompression.pas"/> <DCCReference Include="..\..\source\common\JclCounter.pas"/> <DCCReference Include="..\..\source\common\JclDateTime.pas"/> - <DCCReference Include="..\..\source\common\JclEDI.pas"/> - <DCCReference Include="..\..\source\common\JclEDISEF.pas"/> - <DCCReference Include="..\..\source\common\JclEDITranslators.pas"/> - <DCCReference Include="..\..\source\common\JclEDIXML.pas"/> - <DCCReference Include="..\..\source\common\JclEDI_ANSIX12.pas"/> - <DCCReference Include="..\..\source\common\JclEDI_ANSIX12_Ext.pas"/> - <DCCReference Include="..\..\source\common\JclEDI_UNEDIFACT.pas"/> - <DCCReference Include="..\..\source\common\JclEDI_UNEDIFACT_Ext.pas"/> <DCCReference Include="..\..\source\common\JclExprEval.pas"/> <DCCReference Include="..\..\source\common\JclFileUtils.pas"/> <DCCReference Include="..\..\source\common\JclIniFiles.pas"/> Modified: trunk/jcl/packages/d12/Jcl.dpk =================================================================== --- trunk/jcl/packages/d12/Jcl.dpk 2010-05-07 18:47:01 UTC (rev 3245) +++ trunk/jcl/packages/d12/Jcl.dpk 2010-05-07 18:49:22 UTC (rev 3246) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 07-05-2010 18:37:41 UTC + Last generated: 07-05-2010 18:46:59 UTC ----------------------------------------------------------------------------- } @@ -55,14 +55,6 @@ JclCompression in '..\..\source\common\JclCompression.pas' , JclCounter in '..\..\source\common\JclCounter.pas' , JclDateTime in '..\..\source\common\JclDateTime.pas' , - JclEDI in '..\..\source\common\JclEDI.pas' , - JclEDISEF in '..\..\source\common\JclEDISEF.pas' , - JclEDITranslators in '..\..\source\common\JclEDITranslators.pas' , - JclEDIXML in '..\..\source\common\JclEDIXML.pas' , - JclEDI_ANSIX12 in '..\..\source\common\JclEDI_ANSIX12.pas' , - JclEDI_ANSIX12_Ext in '..\..\source\common\JclEDI_ANSIX12_Ext.pas' , - JclEDI_UNEDIFACT in '..\..\source\common\JclEDI_UNEDIFACT.pas' , - JclEDI_UNEDIFACT_Ext in '..\..\source\common\JclEDI_UNEDIFACT_Ext.pas' , JclExprEval in '..\..\source\common\JclExprEval.pas' , JclFileUtils in '..\..\source\common\JclFileUtils.pas' , JclIniFiles in '..\..\source\common\JclIniFiles.pas' , Modified: trunk/jcl/packages/d12/Jcl.dproj =================================================================== --- trunk/jcl/packages/d12/Jcl.dproj 2010-05-07 18:47:01 UTC (rev 3245) +++ trunk/jcl/packages/d12/Jcl.dproj 2010-05-07 18:49:22 UTC (rev 3246) @@ -70,14 +70,6 @@ <DCCReference Include="..\..\source\common\JclCompression.pas"/> <DCCReference Include="..\..\source\common\JclCounter.pas"/> <DCCReference Include="..\..\source\common\JclDateTime.pas"/> - <DCCReference Include="..\..\source\common\JclEDI.pas"/> - <DCCReference Include="..\..\source\common\JclEDISEF.pas"/> - <DCCReference Include="..\..\source\common\JclEDITranslators.pas"/> - <DCCReference Include="..\..\source\common\JclEDIXML.pas"/> - <DCCReference Include="..\..\source\common\JclEDI_ANSIX12.pas"/> - <DCCReference Include="..\..\source\common\JclEDI_ANSIX12_Ext.pas"/> - <DCCReference Include="..\..\source\common\JclEDI_UNEDIFACT.pas"/> - <DCCReference Include="..\..\source\common\JclEDI_UNEDIFACT_Ext.pas"/> <DCCReference Include="..\..\source\common\JclExprEval.pas"/> <DCCReference Include="..\..\source\common\JclFileUtils.pas"/> <DCCReference Include="..\..\source\common\JclIniFiles.pas"/> Modified: trunk/jcl/packages/d14/Jcl.dpk =================================================================== --- trunk/jcl/packages/d14/Jcl.dpk 2010-05-07 18:47:01 UTC (rev 3245) +++ trunk/jcl/packages/d14/Jcl.dpk 2010-05-07 18:49:22 UTC (rev 3246) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 07-05-2010 18:37:41 UTC + Last generated: 07-05-2010 18:46:59 UTC ----------------------------------------------------------------------------- } @@ -55,14 +55,6 @@ JclCompression in '..\..\source\common\JclCompression.pas' , JclCounter in '..\..\source\common\JclCounter.pas' , JclDateTime in '..\..\source\common\JclDateTime.pas' , - JclEDI in '..\..\source\common\JclEDI.pas' , - JclEDISEF in '..\..\source\common\JclEDISEF.pas' , - JclEDITranslators in '..\..\source\common\JclEDITranslators.pas' , - JclEDIXML in '..\..\source\common\JclEDIXML.pas' , - JclEDI_ANSIX12 in '..\..\source\common\JclEDI_ANSIX12.pas' , - JclEDI_ANSIX12_Ext in '..\..\source\common\JclEDI_ANSIX12_Ext.pas' , - JclEDI_UNEDIFACT in '..\..\source\common\JclEDI_UNEDIFACT.pas' , - JclEDI_UNEDIFACT_Ext in '..\..\source\common\JclEDI_UNEDIFACT_Ext.pas' , JclExprEval in '..\..\source\common\JclExprEval.pas' , JclFileUtils in '..\..\source\common\JclFileUtils.pas' , JclIniFiles in '..\..\source\common\JclIniFiles.pas' , Modified: trunk/jcl/packages/d14/Jcl.dproj =================================================================== --- trunk/jcl/packages/d14/Jcl.dproj 2010-05-07 18:47:01 UTC (rev 3245) +++ trunk/jcl/packages/d14/Jcl.dproj 2010-05-07 18:49:22 UTC (rev 3246) @@ -72,14 +72,6 @@ <DCCReference Include="..\..\source\common\JclCompression.pas"/> <DCCReference Include="..\..\source\common\JclCounter.pas"/> <DCCReference Include="..\..\source\common\JclDateTime.pas"/> - <DCCReference Include="..\..\source\common\JclEDI.pas"/> - <DCCReference Include="..\..\source\common\JclEDISEF.pas"/> - <DCCReference Include="..\..\source\common\JclEDITranslators.pas"/> - <DCCReference Include="..\..\source\common\JclEDIXML.pas"/> - <DCCReference Include="..\..\source\common\JclEDI_ANSIX12.pas"/> - <DCCReference Include="..\..\source\common\JclEDI_ANSIX12_Ext.pas"/> - <DCCReference Include="..\..\source\common\JclEDI_UNEDIFACT.pas"/> - <DCCReference Include="..\..\source\common\JclEDI_UNEDIFACT_Ext.pas"/> <DCCReference Include="..\..\source\common\JclExprEval.pas"/> <DCCReference Include="..\..\source\common\JclFileUtils.pas"/> <DCCReference Include="..\..\source\common\JclIniFiles.pas"/> Modified: trunk/jcl/packages/d6/Jcl.dpk =================================================================== --- trunk/jcl/packages/d6/Jcl.dpk 2010-05-07 18:47:01 UTC (rev 3245) +++ trunk/jcl/packages/d6/Jcl.dpk 2010-05-07 18:49:22 UTC (rev 3246) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 07-05-2010 18:37:41 UTC + Last generated: 07-05-2010 18:46:59 UTC ----------------------------------------------------------------------------- } @@ -54,14 +54,6 @@ JclCompression in '..\..\source\common\JclCompression.pas' , JclCounter in '..\..\source\common\JclCounter.pas' , JclDateTime in '..\..\source\common\JclDateTime.pas' , - JclEDI in '..\..\source\common\JclEDI.pas' , - JclEDISEF in '..\..\source\common\JclEDISEF.pas' , - JclEDITranslators in '..\..\source\common\JclEDITranslators.pas' , - JclEDIXML in '..\..\source\common\JclEDIXML.pas' , - JclEDI_ANSIX12 in '..\..\source\common\JclEDI_ANSIX12.pas' , - JclEDI_ANSIX12_Ext in '..\..\source\common\JclEDI_ANSIX12_Ext.pas' , - JclEDI_UNEDIFACT in '..\..\source\common\JclEDI_UNEDIFACT.pas' , - JclEDI_UNEDIFACT_Ext in '..\..\source\common\JclEDI_UNEDIFACT_Ext.pas' , JclExprEval in '..\..\source\common\JclExprEval.pas' , JclFileUtils in '..\..\source\common\JclFileUtils.pas' , JclIniFiles in '..\..\source\common\JclIniFiles.pas' , Modified: trunk/jcl/packages/d7/Jcl.dpk =================================================================== --- trunk/jcl/packages/d7/Jcl.dpk 2010-05-07 18:47:01 UTC (rev 3245) +++ trunk/jcl/packages/d7/Jcl.dpk 2010-05-07 18:49:22 UTC (rev 3246) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 07-05-2010 18:37:41 UTC + Last generated: 07-05-2010 18:46:59 UTC ----------------------------------------------------------------------------- } @@ -54,14 +54,6 @@ JclCompression in '..\..\source\common\JclCompression.pas' , JclCounter in '..\..\source\common\JclCounter.pas' , JclDateTime in '..\..\source\common\JclDateTime.pas' , - JclEDI in '..\..\source\common\JclEDI.pas' , - JclEDISEF in '..\..\source\common\JclEDISEF.pas' , - JclEDITranslators in '..\..\source\common\JclEDITranslators.pas' , - JclEDIXML in '..\..\source\common\JclEDIXML.pas' , - JclEDI_ANSIX12 in '..\..\source\common\JclEDI_ANSIX12.pas' , - JclEDI_ANSIX12_Ext in '..\..\source\common\JclEDI_ANSIX12_Ext.pas' , - JclEDI_UNEDIFACT in '..\..\source\common\JclEDI_UNEDIFACT.pas' , - JclEDI_UNEDIFACT_Ext in '..\..\source\common\JclEDI_UNEDIFACT_Ext.pas' , JclExprEval in '..\..\source\common\JclExprEval.pas' , JclFileUtils in '..\..\source\common\JclFileUtils.pas' , JclIniFiles in '..\..\source\common\JclIniFiles.pas' , Modified: trunk/jcl/packages/d8/Jcl.dpk =================================================================== --- trunk/jcl/packages/d8/Jcl.dpk 2010-05-07 18:47:01 UTC (rev 3245) +++ trunk/jcl/packages/d8/Jcl.dpk 2010-05-07 18:49:22 UTC (rev 3246) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 07-05-2010 18:37:41 UTC + Last generated: 07-05-2010 18:46:59 UTC ----------------------------------------------------------------------------- } @@ -53,14 +53,6 @@ JclCompression in '..\..\source\common\JclCompression.pas' , JclCounter in '..\..\source\common\JclCounter.pas' , JclDateTime in '..\..\source\common\JclDateTime.pas' , - JclEDI in '..\..\source\common\JclEDI.pas' , - JclEDISEF in '..\..\source\common\JclEDISEF.pas' , - JclEDITranslators in '..\..\source\common\JclEDITranslators.pas' , - JclEDIXML in '..\..\source\common\JclEDIXML.pas' , - JclEDI_ANSIX12 in '..\..\source\common\JclEDI_ANSIX12.pas' , - JclEDI_ANSIX12_Ext in '..\..\source\common\JclEDI_ANSIX12_Ext.pas' , - JclEDI_UNEDIFACT in '..\..\source\common\JclEDI_UNEDIFACT.pas' , - JclEDI_UNEDIFACT_Ext in '..\..\source\common\JclEDI_UNEDIFACT_Ext.pas' , JclExprEval in '..\..\source\common\JclExprEval.pas' , JclFileUtils in '..\..\source\common\JclFileUtils.pas' , JclIniFiles in '..\..\source\common\JclIniFiles.pas' , Modified: trunk/jcl/packages/d9/Jcl.dpk =================================================================== --- trunk/jcl/packages/d9/Jcl.dpk 2010-05-07 18:47:01 UTC (rev 3245) +++ trunk/jcl/packages/d9/Jcl.dpk 2010-05-07 18:49:22 UTC (rev 3246) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 07-05-2010 18:37:41 UTC + Last generated: 07-05-2010 18:46:59 UTC ----------------------------------------------------------------------------- } @@ -54,14 +54,6 @@ JclCompression in '..\..\source\common\JclCompression.pas' , JclCounter in '..\..\source\common\JclCounter.pas' , JclDateTime in '..\..\source\common\JclDateTime.pas' , - JclEDI in '..\..\source\common\JclEDI.pas' , - JclEDISEF in '..\..\source\common\JclEDISEF.pas' , - JclEDITranslators in '..\..\source\common\JclEDITranslators.pas' , - JclEDIXML in '..\..\source\common\JclEDIXML.pas' , - JclEDI_ANSIX12 in '..\..\source\common\JclEDI_ANSIX12.pas' , - JclEDI_ANSIX12_Ext in '..\..\source\common\JclEDI_ANSIX12_Ext.pas' , - JclEDI_UNEDIFACT in '..\..\source\common\JclEDI_UNEDIFACT.pas' , - JclEDI_UNEDIFACT_Ext in '..\..\source\common\JclEDI_UNEDIFACT_Ext.pas' , JclExprEval in '..\..\source\common\JclExprEval.pas' , JclFileUtils in '..\..\source\common\JclFileUtils.pas' , JclIniFiles in '..\..\source\common\JclIniFiles.pas' , Modified: trunk/jcl/packages/fpc/Jcl.lpk =================================================================== --- trunk/jcl/packages/fpc/Jcl.lpk 2010-05-07 18:47:01 UTC (rev 3245) +++ trunk/jcl/packages/fpc/Jcl.lpk 2010-05-07 18:49:22 UTC (rev 3246) @@ -39,7 +39,7 @@ <Description Value="JEDI Code Library RTL package"/> <License Value="Copyright (C) 1999, 2009 Project JEDI"/> <Version Major="2" Minor="2" Release="0" Build="3537"/> - <Files Count="83"> + <Files Count="75"> <Item1> <Filename Value="..\..\source\common\bzip2.pas"/> <UnitName Value="bzip2"/> @@ -77,301 +77,269 @@ <UnitName Value="JclDateTime"/> </Item9> <Item10> - <Filename Value="..\..\source\common\JclEDI.pas"/> - <UnitName Value="JclEDI"/> - </Item10> - <Item11> - <Filename Value="..\..\source\common\JclEDISEF.pas"/> - <UnitName Value="JclEDISEF"/> - </Item11> - <Item12> - <Filename Value="..\..\source\common\JclEDITranslators.pas"/> - <UnitName Value="JclEDITranslators"/> - </Item12> - <Item13> - <Filename Value="..\..\source\common\JclEDIXML.pas"/> - <UnitName Value="JclEDIXML"/> - </Item13> - <Item14> - <Filename Value="..\..\source\common\JclEDI_ANSIX12.pas"/> - <UnitName Value="JclEDI_ANSIX12"/> - </Item14> - <Item15> - <Filename Value="..\..\source\common\JclEDI_ANSIX12_Ext.pas"/> - <UnitName Value="JclEDI_ANSIX12_Ext"/> - </Item15> - <Item16> - <Filename Value="..\..\source\common\JclEDI_UNEDIFACT.pas"/> - <UnitName Value="JclEDI_UNEDIFACT"/> - </Item16> - <Item17> - <Filename Value="..\..\source\common\JclEDI_UNEDIFACT_Ext.pas"/> - <UnitName Value="JclEDI_UNEDIFACT_Ext"/> - </Item17> - <Item18> <Filename Value="..\..\source\common\JclExprEval.pas"/> <UnitName Value="JclExprEval"/> - </Item18> - <Item19> + </Item10> + <Item11> <Filename Value="..\..\source\common\JclFileUtils.pas"/> <UnitName Value="JclFileUtils"/> - </Item19> - <Item20> + </Item11> + <Item12> <Filename Value="..\..\source\common\JclIniFiles.pas"/> <UnitName Value="JclIniFiles"/> - </Item20> - <Item21> + </Item12> + <Item13> <Filename Value="..\..\source\common\JclLogic.pas"/> <UnitName Value="JclLogic"/> - </Item21> - <Item22> + </Item13> + <Item14> <Filename Value="..\..\source\common\JclMath.pas"/> <UnitName Value="JclMath"/> - </Item22> - <Item23> + </Item14> + <Item15> <Filename Value="..\..\source\common\JclMIDI.pas"/> <UnitName Value="JclMIDI"/> - </Item23> - <Item24> + </Item15> + <Item16> <Filename Value="..\..\source\common\JclMime.pas"/> <UnitName Value="JclMime"/> - </Item24> - <Item25> + </Item16> + <Item17> <Filename Value="..\..\source\common\JclNotify.pas"/> <UnitName Value="JclNotify"/> - </Item25> - <Item26> + </Item17> + <Item18> <Filename Value="..\..\source\common\JclPCRE.pas"/> <UnitName Value="JclPCRE"/> - </Item26> - <Item27> + </Item18> + <Item19> <Filename Value="..\..\source\common\JclResources.pas"/> <UnitName Value="JclResources"/> - </Item27> - <Item28> + </Item19> + <Item20> <Filename Value="..\..\source\common\JclRTTI.pas"/> <UnitName Value="JclRTTI"/> - </Item28> - <Item29> + </Item20> + <Item21> <Filename Value="..\..\source\common\JclSchedule.pas"/> <UnitName Value="JclSchedule"/> - </Item29> - <Item30> + </Item21> + <Item22> <Filename Value="..\..\source\common\JclSimpleXml.pas"/> <UnitName Value="JclSimpleXml"/> - </Item30> - <Item31> + </Item22> + <Item23> <Filename Value="..\..\source\common\JclStatistics.pas"/> <UnitName Value="JclStatistics"/> - </Item31> - <Item32> + </Item23> + <Item24> <Filename Value="..\..\source\common\JclStreams.pas"/> <UnitName Value="JclStreams"/> - </Item32> - <Item33> + </Item24> + <Item25> <Filename Value="..\..\source\common\JclStrHashMap.pas"/> <UnitName Value="JclStrHashMap"/> - </Item33> - <Item34> + </Item25> + <Item26> <Filename Value="..\..\source\common\JclStringConversions.pas"/> <UnitName Value="JclStringConversions"/> - </Item34> - <Item35> + </Item26> + <Item27> <Filename Value="..\..\source\common\JclStringLists.pas"/> <UnitName Value="JclStringLists"/> - </Item35> - <Item36> + </Item27> + <Item28> <Filename Value="..\..\source\common\JclStrings.pas"/> <UnitName Value="JclStrings"/> - </Item36> - <Item37> + </Item28> + <Item29> <Filename Value="..\..\source\common\JclSynch.pas"/> <UnitName Value="JclSynch"/> - </Item37> - <Item38> + </Item29> + <Item30> <Filename Value="..\..\source\common\JclSysInfo.pas"/> <UnitName Value="JclSysInfo"/> - </Item38> - <Item39> + </Item30> + <Item31> <Filename Value="..\..\source\common\JclSysUtils.pas"/> <UnitName Value="JclSysUtils"/> - </Item39> - <Item40> + </Item31> + <Item32> <Filename Value="..\..\source\common\JclUnicode.pas"/> <UnitName Value="JclUnicode"/> - </Item40> - <Item41> + </Item32> + <Item33> <Filename Value="..\..\source\common\JclUnitConv.pas"/> <UnitName Value="JclUnitConv"/> - </Item41> - <Item42> + </Item33> + <Item34> <Filename Value="..\..\source\common\JclUnitVersioning.pas"/> <UnitName Value="JclUnitVersioning"/> - </Item42> - <Item43> + </Item34> + <Item35> <Filename Value="..\..\source\common\JclUnitVersioningProviders.pas"/> <UnitName Value="JclUnitVersioningProviders"/> - </Item43> - <Item44> + </Item35> + <Item36> <Filename Value="..\..\source\common\JclValidation.pas"/> <UnitName Value="JclValidation"/> - </Item44> - <Item45> + </Item36> + <Item37> <Filename Value="..\..\source\common\JclWideStrings.pas"/> <UnitName Value="JclWideStrings"/> - </Item45> - <Item46> + </Item37> + <Item38> <Filename Value="..\..\source\common\pcre.pas"/> <UnitName Value="pcre"/> - </Item46> - <Item47> + </Item38> + <Item39> <Filename Value="..\..\source\common\zlibh.pas"/> <UnitName Value="zlibh"/> - </Item47> - <Item48> + </Item39> + <Item40> <Filename Value="..\..\source\windows\Hardlinks.pas"/> <UnitName Value="Hardlinks"/> - </Item48> - <Item49> + </Item40> + <Item41> <Filename Value="..\..\source\windows\JclAppInst.pas"/> <UnitName Value="JclAppInst"/> - </Item49> - <Item50> + </Item41> + <Item42> <Filename Value="..\..\source\windows\JclCIL.pas"/> <UnitName Value="JclCIL"/> - </Item50> - <Item51> + </Item42> + <Item43> <Filename Value="..\..\source\windows\JclCLR.pas"/> <UnitName Value="JclCLR"/> - </Item51> - <Item52> + </Item43> + <Item44> <Filename Value="..\..\source\windows\JclCOM.pas"/> <UnitName Value="JclCOM"/> - </Item52> - <Item53> + </Item44> + <Item45> <Filename Value="..\..\source\windows\JclConsole.pas"/> <UnitName Value="JclConsole"/> - </Item53> - <Item54> + </Item45> + <Item46> <Filename Value="..\..\source\windows\JclDebug.pas"/> <UnitName Value="JclDebug"/> - </Item54> - <Item55> + </Item46> + <Item47> <Filename Value="..\..\source\windows\JclDebugSerialization.pas"/> <UnitName Value="JclDebugSerialization"/> - </Item55> - <Item56> + </Item47> + <Item48> <Filename Value="..\..\source\windows\JclDebugXMLDeserializer.pas"/> <UnitName Value="JclDebugXMLDeserializer"/> - </Item56> - <Item57> + </Item48> + <Item49> <Filename Value="..\..\source\windows\JclDebugXMLSerializer.pas"/> <UnitName Value="JclDebugXMLSerializer"/> - </Item57> - <Item58> + </Item49> + <Item50> <Filename Value="..\..\source\windows\JclDotNet.pas"/> <UnitName Value="JclDotNet"/> - </Item58> - <Item59> + </Item50> + <Item51> <Filename Value="..\..\source\windows\JclHookExcept.pas"/> <UnitName Value="JclHookExcept"/> - </Item59> - <Item60> + </Item51> + <Item52> <Filename Value="..\..\source\windows\JclLANMan.pas"/> <UnitName Value="JclLANMan"/> - </Item60> - <Item61> + </Item52> + <Item53> <Filename Value="..\..\source\windows\JclLocales.pas"/> <UnitName Value="JclLocales"/> - </Item61> - <Item62> + </Item53> + <Item54> <Filename Value="..\..\source\windows\JclMetadata.pas"/> <UnitName Value="JclMetadata"/> - </Item62> - <Item63> + </Item54> + <Item55> <Filename Value="..\..\source\windows\JclMiscel.pas"/> <UnitName Value="JclMiscel"/> - </Item63> - <Item64> + </Item55> + <Item56> <Filename Value="..\..\source\windows\JclMsdosSys.pas"/> <UnitName Value="JclMsdosSys"/> - </Item64> - <Item65> + </Item56> + <Item57> <Filename Value="..\..\source\windows\JclMultimedia.pas"/> <UnitName Value="JclMultimedia"/> - </Item65> - <Item66> + </Item57> + <Item58> <Filename Value="..\..\source\windows\JclNTFS.pas"/> <UnitName Value="JclNTFS"/> - </Item66> - <Item67> + </Item58> + <Item59> <Filename Value="..\..\source\windows\JclPeImage.pas"/> <UnitName Value="JclPeImage"/> - </Item67> - <Item68> + </Item59> + <Item60> <Filename Value="..\..\source\windows\JclRegistry.pas"/> <UnitName Value="JclRegistry"/> - </Item68> - <Item69> + </Item60> + <Item61> <Filename Value="..\..\source\windows\JclSecurity.pas"/> <UnitName Value="JclSecurity"/> - </Item69> - <Item70> + </Item61> + <Item62> <Filename Value="..\..\source\windows\JclShell.pas"/> <UnitName Value="JclShell"/> - </Item70> - <Item71> + </Item62> + <Item63> <Filename Value="..\..\source\windows\JclStructStorage.pas"/> <UnitName Value="JclStructStorage"/> - </Item71> - <Item72> + </Item63> + <Item64> <Filename Value="..\..\source\windows\JclSvcCtrl.pas"/> <UnitName Value="JclSvcCtrl"/> - </Item72> - <Item73> + </Item64> + <Item65> <Filename Value="..\..\source\windows\JclTask.pas"/> <UnitName Value="JclTask"/> - </Item73> - <Item74> + </Item65> + <Item66> <Filename Value="..\..\source\windows\JclTD32.pas"/> <UnitName Value="JclTD32"/> - </Item74> - <Item75> + </Item66> + <Item67> <Filename Value="..\..\source\windows\JclTimeZones.pas"/> <UnitName Value="JclTimeZones"/> - </Item75> - <Item76> + </Item67> + <Item68> <Filename Value="..\..\source\windows\JclWin32.pas"/> <UnitName Value="JclWin32"/> - </Item76> - <Item77> + </Item68> + <Item69> <Filename Value="..\..\source\windows\JclWin32Ex.pas"/> <UnitName Value="JclWin32Ex"/> - </Item77> - <Item78> + </Item69> + <Item70> <Filename Value="..\..\source\windows\JclWinMIDI.pas"/> <UnitName Value="JclWinMIDI"/> - </Item78> - <Item79> + </Item70> + <Item71> <Filename Value="..\..\source\windows\mscoree_TLB.pas"/> <UnitName Value="mscoree_TLB"/> - </Item79> - <Item80> + </Item71> + <Item72> <Filename Value="..\..\source\windows\mscorlib_TLB.pas"/> <UnitName Value="mscorlib_TLB"/> - </Item80> - <Item81> + </Item72> + <Item73> <Filename Value="..\..\source\windows\MSTask.pas"/> <UnitName Value="MSTask"/> - </Item81> - <Item82> + </Item73> + <Item74> <Filename Value="..\..\source\windows\sevenzip.pas"/> <UnitName Value="sevenzip"/> - </Item82> - <Item83> + </Item74> + <Item75> <Filename Value="..\..\source\windows\Snmp.pas"/> <UnitName Value="Snmp"/> - </Item83> + </Item75> </Files> <RequiredPkgs Count="1"> <Item1> Modified: trunk/jcl/packages/fpc/Jcl.pas =================================================================== --- trunk/jcl/packages/fpc/Jcl.pas 2010-05-07 18:47:01 UTC (rev 3245) +++ trunk/jcl/packages/fpc/Jcl.pas 2010-05-07 18:49:22 UTC (rev 3246) @@ -3,7 +3,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 07-05-2010 18:37:41 UTC + Last generated: 07-05-2010 18:46:59 UTC ----------------------------------------------------------------------------- } @@ -21,14 +21,6 @@ JclCompression, JclCounter, JclDateTime, - JclEDI, - JclEDISEF, - JclEDITranslators, - JclEDIXML, - JclEDI_ANSIX12, - JclEDI_ANSIX12_Ext, - JclEDI_UNEDIFACT, - JclEDI_UNEDIFACT_Ext, JclExprEval, JclFileUtils, JclIniFiles, Modified: trunk/jcl/packages/xml/Jcl-R.xml =================================================================== --- trunk/jcl/packages/xml/Jcl-R.xml 2010-05-07 18:47:01 UTC (rev 3245) +++ trunk/jcl/packages/xml/Jcl-R.xml 2010-05-07 18:49:22 UTC (rev 3246) @@ -20,14 +20,6 @@ <File Name="..\..\source\common\JclCompression.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclCounter.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclDateTime.pas" Targets="all" Formname="" Condition=""/> - <File Name="..\..\source\common\JclEDI.pas" Targets="all" Formname="" Condition=""/> - <File Name="..\..\source\common\JclEDISEF.pas" Targets="all" Formname="" Condition=""/> - <File Name="..\..\source\common\JclEDITranslators.pas" Targets="all" Formname="" Condition=""/> - <File Name="..\..\source\common\JclEDIXML.pas" Targets="all" Formname="" Condition=""/> - <File Name="..\..\source\common\JclEDI_ANSIX12.pas" Targets="all" Formname="" Condition=""/> - <File Name="..\..\source\common\JclEDI_ANSIX12_Ext.pas" Targets="all" Formname="" Condition=""/> - <File Name="..\..\source\common\JclEDI_UNEDIFACT.pas" Targets="all" Formname="" Condition=""/> - <File Name="..\..\source\common\JclEDI_UNEDIFACT_Ext.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclExprEval.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclFileUtils.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclIniFiles.pas" Targets="all" Formname="" Condition=""/> Deleted: trunk/jcl/source/common/JclEDI.pas =================================================================== --- trunk/jcl/source/common/JclEDI.pas 2010-05-07 18:47:01 UTC (rev 3245) +++ trunk/jcl/source/common/JclEDI.pas 2010-05-07 18:49:22 UTC (rev 3246) @@ -1,1690 +0,0 @@ -{**************************************************************************************************} -{ } -{ 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 JclEDI.pas. } -{ } -{ The Initial Developer of the Original Code is Raymond Alexander. } -{ Portions created by Raymond Alexander are Copyright Raymond Alexander. All rights reserved. } -{ } -{ Contributor(s): } -{ Raymond Alexander (rayspostbox3), Robert Marquardt, Robert Rossmair, Petr Vones, } -{ Andreas Hausladen } -{ } -{**************************************************************************************************} -{ } -{ Contains classes to eaisly parse EDI documents and data. Variable delimiter detection allows } -{ parsing of the file without knowledge of the standards at an Interchange level. This enables } -{ parsing and construction of EDI documents with different delimiters. } -{ } -{ Unit owner: Raymond Alexander } -{ Date created: Before February, 1, 2001 } -{ Additional Info: } -{ E-Mail at RaysDelphiBox3 att hotmail dott com } -{ For latest EDI specific demos see http://sourceforge.net/projects/edisdk } -{ See home page for latest news & events and online help. } -{ } -{**************************************************************************************************} -{ } -{ Last modified: $Date:: $ } -{ Revision: $Rev:: $ } -{ Author: $Author:: $ } -{ } -{**************************************************************************************************} - -unit JclEDI; - -{$I jcl.inc} - -{$IFDEF EDI_WEAK_PACKAGE_UNITS} - {$IFDEF SUPPORTS_WEAKPACKAGEUNIT} - {$WEAKPACKAGEUNIT ON} - {$ENDIF SUPPORTS_WEAKPACKAGEUNIT} -{$ENDIF EDI_WEAK_PACKAGE_UNITS} -// Add the following directive in project options for debugging memory leaks. -// {$DEFINE ENABLE_EDI_DEBUGGING} - -interface - -uses - SysUtils, Classes, - {$IFNDEF EDI_WEAK_PACKAGE_UNITS} - {$IFDEF UNITVERSIONING} - JclUnitVersioning, - {$ENDIF UNITVERSIONING} - {$ENDIF ~EDI_WEAK_PACKAGE_UNITS} - JclBase, JclResources; - -const - NA_LoopId = 'N/A'; // Constant used for loop id comparison - ElementSpecId_Reserved = 'Reserved'; - - EDIDataType_Numeric = 'N'; - EDIDataType_Decimal = 'R'; - EDIDataType_Identifier = 'ID'; - EDIDataType_String = 'AN'; - EDIDataType_Date = 'DT'; - EDIDataType_Time = 'TM'; - EDIDataType_Binary = 'B'; - -{$IFDEF ENABLE_EDI_DEBUGGING} -var - Debug_EDIDataObjectsCreated: Int64; - Debug_EDIDataObjectsDestroyed: Int64; - Debug_EDIDataObjectListCreated: Int64; - Debug_EDIDataObjectListDestroyed: Int64; - Debug_EDIDataObjectListItemsCreated: Int64; - Debug_EDIDataObjectListItemsDestroyed: Int64; -{$ENDIF ENABLE_EDI_DEBUGGING} - -type - {$TYPEINFO ON} - TEDIObject = class(TObject); // Base EDI Object - {$IFNDEF TYPEINFO_ON} - {$TYPEINFO OFF} - {$ENDIF ~TYPEINFO_ON} - TEDIObjectArray = array of TEDIObject; - - EJclEDIError = class(EJclError) - public - constructor CreateID(ID: Cardinal); - constructor CreateIDFmt(ID: Cardinal; const Args: array of const); - end; - - // EDI Forward Class Declarations - TEDIDataObject = class; - TEDIDataObjectGroup = class; - TEDIObjectListItem = class; - TEDIObjectList = class; - TEDIDataObjectListItem = class; - TEDIDataObjectList = class; - - // EDI Delimiters Object - TEDIDelimiters = class(TEDIObject) - private - FSegmentDelimiter: string; - FElementDelimiter: string; - FSubElementSeperator: string; // Also known as: Component Data Seperator - FSegmentDelimiterLength: Integer; - FElementDelimiterLength: Integer; - FSubelementSeperatorLength: Integer; - procedure SetSD(const Delimiter: string); - procedure SetED(const Delimiter: string); - procedure SetSS(const Delimiter: string); - public - constructor Create; overload; - constructor Create(const SD, ED, SS: string); overload; - published - property SD: string read FSegmentDelimiter write SetSD; - property ED: string read FElementDelimiter write SetED; - property SS: string read FSubElementSeperator write SetSS; - property SDLen: Integer read FSegmentDelimiterLength; - property EDLen: Integer read FElementDelimiterLength; - property SSLen: Integer read FSubElementSeperatorLength; - end; - - // EDI Data Object - TEDIDataObjectType = - (ediUnknown, ediElement, ediCompositeElement, ediSegment, ediLoop, - ediTransactionSet, ediMessage, ediFunctionalGroup, - ediInterchangeControl, ediFile, ediCustom); - - TEDIDataObjectDataState = (ediCreated, ediAssembled, ediDisassembled); - - TCustomData = Pointer; // backward compatibility - - TEDIDataObject = class(TEDIObject) - private - procedure SetDelimiters(const Delimiters: TEDIDelimiters); - protected - FEDIDOT: TEDIDataObjectType; - FState: TEDIDataObjectDataState; - FData: string; - FLength: Integer; - FParent: TEDIDataObject; - FDelimiters: TEDIDelimiters; - FErrorLog: TStrings; - FSpecPointer: TEDIObject; - FCustomData1: TCustomData; - FCustomData2: TCustomData; - function GetData: string; - procedure SetData(const Data: string); - public - constructor Create(Parent: TEDIDataObject); reintroduce; - destructor Destroy; override; - function Assemble: string; virtual; abstract; - procedure Disassemble; virtual; abstract; - property SpecPointer: TEDIObject read FSpecPointer write FSpecPointer; - property CustomData1: TCustomData read FCustomData1 write FCustomData1; - property CustomData2: TCustomData read FCustomData2 write FCustomData2; - published - property State: TEDIDataObjectDataState read FState; - property Data: string read GetData write SetData; - property DataLength: Integer read FLength; - property Parent: TEDIDataObject read FParent write FParent; - property Delimiters: TEDIDelimiters read FDelimiters write SetDelimiters; - end; - - TEDIDataObjectArray = array of TEDIDataObject; - - // EDI Data Object Group - TEDIDataObjectGroup = class(TEDIDataObject) - protected - FGroupIsParent: Boolean; - FEDIDataObjects: TEDIDataObjectList; - FCreateObjectType: TEDIDataObjectType; - function GetCount: Integer; - function GetEDIDataObject(Index: Integer): TEDIDataObject; - procedure SetEDIDataObject(Index: Integer; EDIDataObject: TEDIDataObject); - function InternalAssignDelimiters: TEDIDelimiters; virtual; abstract; - function InternalCreateEDIDataObject: TEDIDataObject; virtual; abstract; - public - constructor Create(Parent: TEDIDataObject; EDIDataObjectCount: Integer = 0); reintroduce; - destructor Destroy; override; - function IndexIsValid(Index: Integer): Boolean; - // - function AddEDIDataObject: Integer; - function AppendEDIDataObject(EDIDataObject: TEDIDataObject): Integer; - function InsertEDIDataObject(InsertIndex: Integer): Integer; overload; - function InsertEDIDataObject(InsertIndex: Integer; EDIDataObject: - TEDIDataObject): Integer; overload; - procedure DeleteEDIDataObject(Index: Integer); overload; - procedure DeleteEDIDataObject(EDIDataObject: TEDIDataObject); overload; - // - function AddEDIDataObjects(Count: Integer): Integer; - function AppendEDIDataObjects(EDIDataObjectArray: TEDIDataObjectArray): Integer; - function InsertEDIDataObjects(InsertIndex, Count: Integer): Integer; overload; - function InsertEDIDataObjects(InsertIndex: Integer; - EDIDataObjectArray: TEDIDataObjectArray): Integer; overload; - procedure DeleteEDIDataObjects; overload; - procedure DeleteEDIDataObjects(Index, Count: Integer); overload; - // - function GetIndexPositionFromParent: Integer; virtual; - // - property EDIDataObject[Index: Integer]: TEDIDataObject read GetEDIDataObject - write SetEDIDataObject; default; - property EDIDataObjects: TEDIDataObjectList read FEDIDataObjects; - published - property CreateObjectType: TEDIDataObjectType read FCreateObjectType; - property EDIDataObjectCount: Integer read GetCount; - end; - - TEDIDataObjectGroupArray = array of TEDIDataObjectGroup; - - // EDI Data Object Linked List Header and Item classes - TEDIObjectListItem = class(TEDIObject) - protected - FParent: TEDIObjectList; - FPriorItem: TEDIObjectListItem; - FNextItem: TEDIObjectListItem; - FEDIObject: TEDIObject; - FItemIndex: Integer; - FName: string; - public - constructor Create(Parent: TEDIObjectList; PriorItem: TEDIObjectListItem; - EDIObject: TEDIObject = nil); - destructor Destroy; override; - function GetIndexPositionFromParent: Integer; - procedure FreeAndNilEDIDataObject; - published - property ItemIndex: Integer read FItemIndex write FItemIndex; - property PriorItem: TEDIObjectListItem read FPriorItem write FPriorItem; - property NextItem: TEDIObjectListItem read FNextItem write FNextItem; - property EDIObject: TEDIObject read FEDIObject write FEDIObject; - property Name: string read FName write FName; - property Parent: TEDIObjectList read FParent write FParent; - end; - - TEDIDataObjectListOptions = set of (loAutoUpdateIndexes); - - TEDIObjectList = class(TEDIObject) - private - function GetItem(Index: Integer): TEDIObjectListItem; - protected - FOwnsObjects: Boolean; - FCount: Integer; - FOptions: TEDIDataObjectListOptions; - FFirstItem: TEDIObjectListItem; - FLastItem: TEDIObjectListItem; - FCurrentItem: TEDIObjectListItem; - function GetEDIObject(Index: Integer): TEDIObject; - procedure SetEDIObject(Index: Integer; const Value: TEDIObject); - public - constructor Create(OwnsObjects: Boolean = True); - destructor Destroy; override; - procedure Add(Item: TEDIObjectListItem; Name: string = ''); overload; - function Add(EDIObject: TEDIObject; Name: string = ''): TEDIObjectListItem; overload; - function CreateListItem(PriorItem: TEDIObjectListItem; - EDIObject: TEDIObject = nil): TEDIObjectListItem; virtual; - function Find(Item: TEDIObjectListItem): TEDIObjectListItem; overload; - function Find(EDIObject: TEDIObject): TEDIObjectListItem; overload; - function FindEDIObject(EDIObject: TEDIObject): TEDIObject; - function Extract(Item: TEDIObjectListItem): TEDIObjectListItem; overload; virtual; - function Extract(EDIObject: TEDIObject): TEDIObject; overload; virtual; - procedure Remove(Item: TEDIObjectListItem); overload; - procedure Remove(EDIObject: TEDIObject); overload; - function Insert(Item, BeforeItem: TEDIObjectListItem): TEDIObjectListItem; overload; - function Insert(EDIObject, BeforeEDIObject: TEDIObject): TEDIObjectListItem; overload; - function Insert(BeforeItem: TEDIObjectListItem): TEDIObjectListItem; overload; - function Insert(BeforeEDIObject: TEDIObject): TEDIObjectListItem; overload; - procedure Clear; - function First(Index: Integer = 0): TEDIObjectListItem; virtual; - function Next: TEDIObjectListItem; virtual; - function Prior: TEDIObjectListItem; virtual; - function Last: TEDIObjectListItem; virtual; - procedure UpdateCount; - // ...ByName procedures and functions - function FindItemByName(Name: string; - StartItem: TEDIObjectListItem = nil): TEDIObjectListItem; virtual; - function ReturnListItemsByName(Name: string): TEDIObjectList; virtual; - // Dynamic Array Emulation - function IndexOf(Item: TEDIObjectListItem): Integer; overload; - function IndexOf(EDIObject: TEDIObject): Integer; overload; - function IndexIsValid(Index: Integer): Boolean; - procedure Insert(InsertIndex: Integer; EDIObject: TEDIObject); overload; - procedure Delete(Index: Integer); overload; - procedure Delete(EDIObject: TEDIObject); overload; - procedure UpdateIndexes(StartItem: TEDIObjectListItem = nil); - // - property Item[Index: Integer]: TEDIObjectListItem read GetItem; - property EDIObject[Index: Integer]: TEDIObject read GetEDIObject - write SetEDIObject; default; - published - property Count: Integer read FCount; - property OwnsObjects: Boolean read FOwnsObjects write FOwnsObjects; - property Options: TEDIDataObjectListOptions read FOptions write FOptions; - property CurrentItem: TEDIObjectListItem read FCurrentItem; - end; - - TEDIDataObjectListItem = class(TEDIObjectListItem) - private - function GetEDIDataObject: TEDIDataObject; - procedure SetEDIDataObject(const Value: TEDIDataObject); - published - property EDIDataObject: TEDIDataObject read GetEDIDataObject write SetEDIDataObject; - end; - - TEDIDataObjectList = class(TEDIObjectList) - private - function GetEDIDataObject(Index: Integer): TEDIDataObject; - procedure SetEDIDataObject(Index: Integer; const Value: TEDIDataObject); - public - function CreateListItem(PriorItem: TEDIObjectListItem; - EDIObject: TEDIObject = nil): TEDIObjectListItem; override; - property EDIDataObject[Index: Integer]: TEDIDataObject read GetEDIDataObject - write SetEDIDataObject; default; - end; - - // EDI Loop Stack - TEDILoopStackRecord = record - SegmentId: string; - SpecStartIndex: Integer; - OwnerLoopId: string; - ParentLoopId: string; - EDIObject: TEDIObject; - EDISpecObject: TEDIObject; - end; - - TEDILoopStackArray = array of TEDILoopStackRecord; - - TEDILoopStackFlags = (ediAltStackPointer, ediStackResized, ediLoopRepeated); - - TEDILoopStackFlagSet = set of TEDILoopStackFlags; - - TEDILoopStackOnAddLoopEvent = procedure(StackRecord: TEDILoopStackRecord; - SegmentId, OwnerLoopId, ParentLoopId: string; var EDIObject: TEDIObject) of object; - - TEDILoopStack = class(TEDIObject) - private - function GetSize: Integer; - protected - FStack: TEDILoopStackArray; - FFlags: TEDILoopStackFlagSet; - FCheckAssignedEDIObject: Boolean; - FOnAddLoop: TEDILoopStackOnAddLoopEvent; - procedure DoAddLoop(StackRecord: TEDILoopStackRecord; - SegmentId, OwnerLoopId, ParentLoopId: string; var EDIObject: TEDIObject); - public - constructor Create; - destructor Destroy; override; - // Basic Stack Routines - function Peek: TEDILoopStackRecord; overload; - function Peek(Index: Integer): TEDILoopStackRecord; overload; - procedure Pop(Index: Integer); - function Push(SegmentId, OwnerLoopId, ParentLoopId: string; StartIndex: Integer; - EDIObject: TEDIObject): Integer; - // Extended Stack Routines - function GetSafeStackIndex(Index: Integer): Integer; - function SetStackPointer(OwnerLoopId, ParentLoopId: string): Integer; - procedure UpdateStackObject(EDIObject: TEDIObject); - procedure UpdateStackData(SegmentId, OwnerLoopId, ParentLoopId: string; StartIndex: Integer; - EDIObject: TEDIObject); - // Extended Stack Routines - function ValidateLoopStack(SegmentId, OwnerLoopId, ParentLoopId: string; StartIndex: Integer; - EDIObject: TEDIObject): TEDILoopStackRecord; - function Debug: string; - // - property Stack: TEDILoopStackArray read FStack; - published - property Size: Integer read GetSize; - property Flags: TEDILoopStackFlagSet read FFlags write FFlags; - property OnAddLoop: TEDILoopStackOnAddLoopEvent read FOnAddLoop write FOnAddLoop; - end; - -// Other -// Compatibility functions -function StringRemove(const S, Pattern: string; Flags: TReplaceFlags): string; -function StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string; - -const - EDIErrors: array [1..58] of PResStringRec = - ( @RsEDIError001, @RsEDIError002, @RsEDIError003, @RsEDIError004, @RsEDIError005, @RsEDIError006, @RsEDIError007, - @RsEDIError008, @RsEDIError009, @RsEDIError010, @RsEDIError011, @RsEDIError012, @RsEDIError013, @RsEDIError014, - @RsEDIError015, @RsEDIError016, @RsEDIError017, @RsEDIError018, @RsEDIError019, @RsEDIError020, @RsEDIError021, - @RsEDIError022, @RsEDIError023, @RsEDIError024, @RsEDIError025, @RsEDIError026, @RsEDIError027, @RsEDIError028, - @RsEDIError029, @RsEDIError030, @RsEDIError031, @RsEDIError032, @RsEDIError033, @RsEDIError034, @RsEDIError035, - @RsEDIError036, @RsEDIError037, @RsEDIError038, @RsEDIError039, @RsEDIError040, @RsEDIError041, @RsEDIError042, - @RsEDIError043, @RsEDIError044, @RsEDIError045, @RsEDIError046, @RsEDIError047, @RsEDIError048, @RsEDIError049, - @RsEDIError050, @RsEDIError051, @RsEDIError052, @RsEDIError053, @RsEDIError054, @RsEDIError055, @RsEDIError056, - @RsEDIError057, @RsEDIError058 ); - -{$IFNDEF EDI_WEAK_PACKAGE_UNITS} -{$IFDEF UNITVERSIONING} -const - UnitVersioning: TUnitVersionInfo = ( - RCSfile: '$URL$'; - Revision: '$Revision$'; - Date: '$Date$'; - LogPath: 'JCL\source\common'; - Extra: ''; - Data: nil - ); -{$ENDIF UNITVERSIONING} -{$ENDIF ~EDI_WEAK_PACKAGE_UNITS} - -implementation - -uses - JclStrings; - -// Other -function StringRemove(const S, Pattern: string; Flags: TReplaceFlags): string; -var - SearchPattern: string; - I, Offset, SearchPatternLength: Integer; -begin - if rfIgnoreCase in Flags then - begin - Result := AnsiUpperCase(S); - SearchPattern := AnsiUpperCase(Pattern); - end - else - begin - Result := S; - SearchPattern := Pattern; - end; - SearchPatternLength := Length(SearchPattern); - Result := S; - - I := 1; - Offset := 1; - while I <= Length(Result) do - begin - if SearchPatternLength = 1 then - begin - while Result[I] = SearchPattern[1] do - begin - Offset := Offset + SearchPatternLength; - if not (rfReplaceAll in Flags) then - Break; - Inc(I); - end; - end - else // SearchPatternLength > 1 - begin - while Copy(Result, Offset, SearchPatternLength) = SearchPattern do - begin - Offset := Offset + SearchPatternLength; - if not (rfReplaceAll in Flags) then - Break; - end; - end; - - if Offset <= Length(Result) then - Result[I] := S[Offset] - else - begin - Result[I] := #0; - SetLength(Result, I-1); - Break; - end; - - if not (rfReplaceAll in Flags) then - Break; - - Inc(I); - Inc(Offset); - end; -end; - -function StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string; -var - SearchString, SearchPattern: string; - I, SearchIndex, ReplaceIndex: Integer; - SearchPatternLength, ReplacePatternLength: Integer; - SearchResult, ReplaceCount: Integer; -begin - Result := ''; - // Handle Case Sensitivity - if rfIgnoreCase in Flags then - begin - SearchString := AnsiUpperCase(S); - SearchPattern := AnsiUpperCase(OldPattern); - end - else - begin - SearchString := S; - SearchPattern := OldPattern; - end; - SearchPatternLength := Length(OldPattern); - ReplacePatternLength := Length(NewPattern); - // Calculate length of result string - ReplaceCount := 0; - SearchResult := StrSearch(SearchPattern, SearchString, 1); - if rfReplaceAll in Flags then - while SearchResult <> 0 do - begin - Inc(SearchResult, SearchPatternLength); // Increment match position, by length of match - Inc(ReplaceCount); - SearchResult := Str... [truncated message content] |
From: <ou...@us...> - 2010-05-07 18:47:11
|
Revision: 3245 http://jcl.svn.sourceforge.net/jcl/?rev=3245&view=rev Author: outchy Date: 2010-05-07 18:47:01 +0000 (Fri, 07 May 2010) Log Message: ----------- regenerated with new compiler defines. Modified Paths: -------------- trunk/jcl/packages/c6/Jcl.bpk trunk/jcl/packages/c6/Jcl.dof trunk/jcl/packages/c6/Jcl.dpk trunk/jcl/packages/c6/JclBaseExpert.bpk trunk/jcl/packages/c6/JclBaseExpert.dof trunk/jcl/packages/c6/JclBaseExpert.dpk trunk/jcl/packages/c6/JclContainers.bpk trunk/jcl/packages/c6/JclContainers.dof trunk/jcl/packages/c6/JclContainers.dpk trunk/jcl/packages/c6/JclDebugExpert.bpk trunk/jcl/packages/c6/JclDebugExpert.dof trunk/jcl/packages/c6/JclDebugExpert.dpk trunk/jcl/packages/c6/JclDebugExpertDLL.bpr trunk/jcl/packages/c6/JclDebugExpertDLL.dof trunk/jcl/packages/c6/JclDeveloperTools.bpk trunk/jcl/packages/c6/JclDeveloperTools.dof trunk/jcl/packages/c6/JclDeveloperTools.dpk trunk/jcl/packages/c6/JclFavoriteFoldersExpert.bpk trunk/jcl/packages/c6/JclFavoriteFoldersExpert.dof trunk/jcl/packages/c6/JclFavoriteFoldersExpert.dpk trunk/jcl/packages/c6/JclFavoriteFoldersExpertDLL.bpr trunk/jcl/packages/c6/JclFavoriteFoldersExpertDLL.dof trunk/jcl/packages/c6/JclProjectAnalysisExpert.bpk trunk/jcl/packages/c6/JclProjectAnalysisExpert.dof trunk/jcl/packages/c6/JclProjectAnalysisExpert.dpk trunk/jcl/packages/c6/JclProjectAnalysisExpertDLL.bpr trunk/jcl/packages/c6/JclProjectAnalysisExpertDLL.dof trunk/jcl/packages/c6/JclRepositoryExpert.bpk trunk/jcl/packages/c6/JclRepositoryExpert.dof trunk/jcl/packages/c6/JclRepositoryExpert.dpk trunk/jcl/packages/c6/JclRepositoryExpertDLL.bpr trunk/jcl/packages/c6/JclRepositoryExpertDLL.dof trunk/jcl/packages/c6/JclSIMDViewExpert.bpk trunk/jcl/packages/c6/JclSIMDViewExpert.dof trunk/jcl/packages/c6/JclSIMDViewExpert.dpk trunk/jcl/packages/c6/JclSIMDViewExpertDLL.bpr trunk/jcl/packages/c6/JclSIMDViewExpertDLL.dof trunk/jcl/packages/c6/JclStackTraceViewerExpert.bpk trunk/jcl/packages/c6/JclStackTraceViewerExpert.dof trunk/jcl/packages/c6/JclStackTraceViewerExpert.dpk trunk/jcl/packages/c6/JclStackTraceViewerExpertDLL.bpr trunk/jcl/packages/c6/JclStackTraceViewerExpertDLL.dof trunk/jcl/packages/c6/JclThreadNameExpert.bpk trunk/jcl/packages/c6/JclThreadNameExpert.dof trunk/jcl/packages/c6/JclThreadNameExpert.dpk trunk/jcl/packages/c6/JclThreadNameExpertDLL.bpr trunk/jcl/packages/c6/JclThreadNameExpertDLL.dof trunk/jcl/packages/c6/JclUsesExpert.bpk trunk/jcl/packages/c6/JclUsesExpert.dof trunk/jcl/packages/c6/JclUsesExpert.dpk trunk/jcl/packages/c6/JclUsesExpertDLL.bpr trunk/jcl/packages/c6/JclUsesExpertDLL.dof trunk/jcl/packages/c6/JclVcl.bpk trunk/jcl/packages/c6/JclVcl.dof trunk/jcl/packages/c6/JclVcl.dpk trunk/jcl/packages/c6/JclVersionControlExpert.bpk trunk/jcl/packages/c6/JclVersionControlExpert.dof trunk/jcl/packages/c6/JclVersionControlExpert.dpk trunk/jcl/packages/c6/JclVersionControlExpertDLL.bpr trunk/jcl/packages/c6/JclVersionControlExpertDLL.dof trunk/jcl/packages/cs1/Jcl.bdsproj trunk/jcl/packages/cs1/Jcl.dpk trunk/jcl/packages/cs1/JclBaseExpert.bdsproj trunk/jcl/packages/cs1/JclBaseExpert.dpk trunk/jcl/packages/cs1/JclContainers.bdsproj trunk/jcl/packages/cs1/JclContainers.dpk trunk/jcl/packages/cs1/JclDeveloperTools.bdsproj trunk/jcl/packages/cs1/JclDeveloperTools.dpk trunk/jcl/packages/cs1/JclFavoriteFoldersExpertDLL.bdsproj trunk/jcl/packages/cs1/JclFavoriteFoldersExpertDLL.dpr trunk/jcl/packages/cs1/JclVersionControlExpertDLL.bdsproj trunk/jcl/packages/cs1/JclVersionControlExpertDLL.dpr trunk/jcl/packages/d10/Jcl.bdsproj trunk/jcl/packages/d10/Jcl.dpk trunk/jcl/packages/d10/JclBaseExpert.bdsproj trunk/jcl/packages/d10/JclBaseExpert.dpk trunk/jcl/packages/d10/JclContainers.bdsproj trunk/jcl/packages/d10/JclContainers.dpk trunk/jcl/packages/d10/JclDebugExpert.bdsproj trunk/jcl/packages/d10/JclDebugExpert.dpk trunk/jcl/packages/d10/JclDebugExpertDLL.bdsproj trunk/jcl/packages/d10/JclDebugExpertDLL.dpr trunk/jcl/packages/d10/JclDeveloperTools.bdsproj trunk/jcl/packages/d10/JclDeveloperTools.dpk trunk/jcl/packages/d10/JclFavoriteFoldersExpert.bdsproj trunk/jcl/packages/d10/JclFavoriteFoldersExpert.dpk trunk/jcl/packages/d10/JclFavoriteFoldersExpertDLL.bdsproj trunk/jcl/packages/d10/JclFavoriteFoldersExpertDLL.dpr trunk/jcl/packages/d10/JclProjectAnalysisExpert.bdsproj trunk/jcl/packages/d10/JclProjectAnalysisExpert.dpk trunk/jcl/packages/d10/JclProjectAnalysisExpertDLL.bdsproj trunk/jcl/packages/d10/JclProjectAnalysisExpertDLL.dpr trunk/jcl/packages/d10/JclRepositoryExpert.bdsproj trunk/jcl/packages/d10/JclRepositoryExpert.dpk trunk/jcl/packages/d10/JclRepositoryExpertDLL.bdsproj trunk/jcl/packages/d10/JclRepositoryExpertDLL.dpr trunk/jcl/packages/d10/JclSIMDViewExpert.bdsproj trunk/jcl/packages/d10/JclSIMDViewExpert.dpk trunk/jcl/packages/d10/JclSIMDViewExpertDLL.bdsproj trunk/jcl/packages/d10/JclSIMDViewExpertDLL.dpr trunk/jcl/packages/d10/JclStackTraceViewerExpert.bdsproj trunk/jcl/packages/d10/JclStackTraceViewerExpert.dpk trunk/jcl/packages/d10/JclStackTraceViewerExpertDLL.bdsproj trunk/jcl/packages/d10/JclStackTraceViewerExpertDLL.dpr trunk/jcl/packages/d10/JclVcl.bdsproj trunk/jcl/packages/d10/JclVcl.dpk trunk/jcl/packages/d10/JclVersionControlExpert.bdsproj trunk/jcl/packages/d10/JclVersionControlExpert.dpk trunk/jcl/packages/d10/JclVersionControlExpertDLL.bdsproj trunk/jcl/packages/d10/JclVersionControlExpertDLL.dpr trunk/jcl/packages/d11/Jcl.dpk trunk/jcl/packages/d11/Jcl.dproj trunk/jcl/packages/d11/JclBaseExpert.dpk trunk/jcl/packages/d11/JclBaseExpert.dproj trunk/jcl/packages/d11/JclContainers.dpk trunk/jcl/packages/d11/JclContainers.dproj trunk/jcl/packages/d11/JclDebugExpert.dpk trunk/jcl/packages/d11/JclDebugExpert.dproj trunk/jcl/packages/d11/JclDebugExpertDLL.dpr trunk/jcl/packages/d11/JclDebugExpertDLL.dproj trunk/jcl/packages/d11/JclDeveloperTools.dpk trunk/jcl/packages/d11/JclDeveloperTools.dproj trunk/jcl/packages/d11/JclFavoriteFoldersExpert.dpk trunk/jcl/packages/d11/JclFavoriteFoldersExpert.dproj trunk/jcl/packages/d11/JclFavoriteFoldersExpertDLL.dpr trunk/jcl/packages/d11/JclFavoriteFoldersExpertDLL.dproj trunk/jcl/packages/d11/JclProjectAnalysisExpert.dpk trunk/jcl/packages/d11/JclProjectAnalysisExpert.dproj trunk/jcl/packages/d11/JclProjectAnalysisExpertDLL.dpr trunk/jcl/packages/d11/JclProjectAnalysisExpertDLL.dproj trunk/jcl/packages/d11/JclRepositoryExpert.dpk trunk/jcl/packages/d11/JclRepositoryExpert.dproj trunk/jcl/packages/d11/JclRepositoryExpertDLL.dpr trunk/jcl/packages/d11/JclRepositoryExpertDLL.dproj trunk/jcl/packages/d11/JclSIMDViewExpert.dpk trunk/jcl/packages/d11/JclSIMDViewExpert.dproj trunk/jcl/packages/d11/JclSIMDViewExpertDLL.dpr trunk/jcl/packages/d11/JclSIMDViewExpertDLL.dproj trunk/jcl/packages/d11/JclStackTraceViewerExpert.dpk trunk/jcl/packages/d11/JclStackTraceViewerExpert.dproj trunk/jcl/packages/d11/JclStackTraceViewerExpertDLL.dpr trunk/jcl/packages/d11/JclStackTraceViewerExpertDLL.dproj trunk/jcl/packages/d11/JclVcl.dpk trunk/jcl/packages/d11/JclVcl.dproj trunk/jcl/packages/d11/JclVersionControlExpert.dpk trunk/jcl/packages/d11/JclVersionControlExpert.dproj trunk/jcl/packages/d11/JclVersionControlExpertDLL.dpr trunk/jcl/packages/d11/JclVersionControlExpertDLL.dproj trunk/jcl/packages/d12/Jcl.dpk trunk/jcl/packages/d12/Jcl.dproj trunk/jcl/packages/d12/JclBaseExpert.dpk trunk/jcl/packages/d12/JclBaseExpert.dproj trunk/jcl/packages/d12/JclContainers.dpk trunk/jcl/packages/d12/JclContainers.dproj trunk/jcl/packages/d12/JclDebugExpert.dpk trunk/jcl/packages/d12/JclDebugExpert.dproj trunk/jcl/packages/d12/JclDebugExpertDLL.dpr trunk/jcl/packages/d12/JclDebugExpertDLL.dproj trunk/jcl/packages/d12/JclDeveloperTools.dpk trunk/jcl/packages/d12/JclDeveloperTools.dproj trunk/jcl/packages/d12/JclFavoriteFoldersExpert.dpk trunk/jcl/packages/d12/JclFavoriteFoldersExpert.dproj trunk/jcl/packages/d12/JclFavoriteFoldersExpertDLL.dpr trunk/jcl/packages/d12/JclFavoriteFoldersExpertDLL.dproj trunk/jcl/packages/d12/JclProjectAnalysisExpert.dpk trunk/jcl/packages/d12/JclProjectAnalysisExpert.dproj trunk/jcl/packages/d12/JclProjectAnalysisExpertDLL.dpr trunk/jcl/packages/d12/JclProjectAnalysisExpertDLL.dproj trunk/jcl/packages/d12/JclRepositoryExpert.dpk trunk/jcl/packages/d12/JclRepositoryExpert.dproj trunk/jcl/packages/d12/JclRepositoryExpertDLL.dpr trunk/jcl/packages/d12/JclRepositoryExpertDLL.dproj trunk/jcl/packages/d12/JclSIMDViewExpert.dpk trunk/jcl/packages/d12/JclSIMDViewExpert.dproj trunk/jcl/packages/d12/JclSIMDViewExpertDLL.dpr trunk/jcl/packages/d12/JclSIMDViewExpertDLL.dproj trunk/jcl/packages/d12/JclStackTraceViewerExpert.dpk trunk/jcl/packages/d12/JclStackTraceViewerExpert.dproj trunk/jcl/packages/d12/JclStackTraceViewerExpertDLL.dpr trunk/jcl/packages/d12/JclStackTraceViewerExpertDLL.dproj trunk/jcl/packages/d12/JclVcl.dpk trunk/jcl/packages/d12/JclVcl.dproj trunk/jcl/packages/d12/JclVersionControlExpert.dpk trunk/jcl/packages/d12/JclVersionControlExpert.dproj trunk/jcl/packages/d12/JclVersionControlExpertDLL.dpr trunk/jcl/packages/d12/JclVersionControlExpertDLL.dproj trunk/jcl/packages/d14/Jcl.dpk trunk/jcl/packages/d14/Jcl.dproj trunk/jcl/packages/d14/JclBaseExpert.dpk trunk/jcl/packages/d14/JclBaseExpert.dproj trunk/jcl/packages/d14/JclContainers.dpk trunk/jcl/packages/d14/JclContainers.dproj trunk/jcl/packages/d14/JclDebugExpert.dpk trunk/jcl/packages/d14/JclDebugExpert.dproj trunk/jcl/packages/d14/JclDebugExpertDLL.dpr trunk/jcl/packages/d14/JclDebugExpertDLL.dproj trunk/jcl/packages/d14/JclDeveloperTools.dpk trunk/jcl/packages/d14/JclDeveloperTools.dproj trunk/jcl/packages/d14/JclFavoriteFoldersExpert.dpk trunk/jcl/packages/d14/JclFavoriteFoldersExpert.dproj trunk/jcl/packages/d14/JclFavoriteFoldersExpertDLL.dpr trunk/jcl/packages/d14/JclFavoriteFoldersExpertDLL.dproj trunk/jcl/packages/d14/JclProjectAnalysisExpert.dpk trunk/jcl/packages/d14/JclProjectAnalysisExpert.dproj trunk/jcl/packages/d14/JclProjectAnalysisExpertDLL.dpr trunk/jcl/packages/d14/JclProjectAnalysisExpertDLL.dproj trunk/jcl/packages/d14/JclRepositoryExpert.dpk trunk/jcl/packages/d14/JclRepositoryExpert.dproj trunk/jcl/packages/d14/JclRepositoryExpertDLL.dpr trunk/jcl/packages/d14/JclRepositoryExpertDLL.dproj trunk/jcl/packages/d14/JclSIMDViewExpert.dpk trunk/jcl/packages/d14/JclSIMDViewExpert.dproj trunk/jcl/packages/d14/JclSIMDViewExpertDLL.dpr trunk/jcl/packages/d14/JclSIMDViewExpertDLL.dproj trunk/jcl/packages/d14/JclStackTraceViewerExpert.dpk trunk/jcl/packages/d14/JclStackTraceViewerExpert.dproj trunk/jcl/packages/d14/JclStackTraceViewerExpertDLL.dpr trunk/jcl/packages/d14/JclStackTraceViewerExpertDLL.dproj trunk/jcl/packages/d14/JclVcl.dpk trunk/jcl/packages/d14/JclVcl.dproj trunk/jcl/packages/d14/JclVersionControlExpert.dpk trunk/jcl/packages/d14/JclVersionControlExpert.dproj trunk/jcl/packages/d14/JclVersionControlExpertDLL.dpr trunk/jcl/packages/d14/JclVersionControlExpertDLL.dproj trunk/jcl/packages/d6/Jcl.dof trunk/jcl/packages/d6/Jcl.dpk trunk/jcl/packages/d6/JclBaseExpert.dof trunk/jcl/packages/d6/JclBaseExpert.dpk trunk/jcl/packages/d6/JclContainers.dof trunk/jcl/packages/d6/JclContainers.dpk trunk/jcl/packages/d6/JclDebugExpert.dof trunk/jcl/packages/d6/JclDebugExpert.dpk trunk/jcl/packages/d6/JclDebugExpertDLL.dof trunk/jcl/packages/d6/JclDebugExpertDLL.dpr trunk/jcl/packages/d6/JclDeveloperTools.dof trunk/jcl/packages/d6/JclDeveloperTools.dpk trunk/jcl/packages/d6/JclFavoriteFoldersExpert.dof trunk/jcl/packages/d6/JclFavoriteFoldersExpert.dpk trunk/jcl/packages/d6/JclFavoriteFoldersExpertDLL.dof trunk/jcl/packages/d6/JclFavoriteFoldersExpertDLL.dpr trunk/jcl/packages/d6/JclProjectAnalysisExpert.dof trunk/jcl/packages/d6/JclProjectAnalysisExpert.dpk trunk/jcl/packages/d6/JclProjectAnalysisExpertDLL.dof trunk/jcl/packages/d6/JclProjectAnalysisExpertDLL.dpr trunk/jcl/packages/d6/JclRepositoryExpert.dof trunk/jcl/packages/d6/JclRepositoryExpert.dpk trunk/jcl/packages/d6/JclRepositoryExpertDLL.dof trunk/jcl/packages/d6/JclRepositoryExpertDLL.dpr trunk/jcl/packages/d6/JclSIMDViewExpert.dof trunk/jcl/packages/d6/JclSIMDViewExpert.dpk trunk/jcl/packages/d6/JclSIMDViewExpertDLL.dof trunk/jcl/packages/d6/JclSIMDViewExpertDLL.dpr trunk/jcl/packages/d6/JclStackTraceViewerExpert.dof trunk/jcl/packages/d6/JclStackTraceViewerExpert.dpk trunk/jcl/packages/d6/JclStackTraceViewerExpertDLL.dof trunk/jcl/packages/d6/JclStackTraceViewerExpertDLL.dpr trunk/jcl/packages/d6/JclThreadNameExpert.dof trunk/jcl/packages/d6/JclThreadNameExpert.dpk trunk/jcl/packages/d6/JclThreadNameExpertDLL.dof trunk/jcl/packages/d6/JclThreadNameExpertDLL.dpr trunk/jcl/packages/d6/JclUsesExpert.dof trunk/jcl/packages/d6/JclUsesExpert.dpk trunk/jcl/packages/d6/JclUsesExpertDLL.dof trunk/jcl/packages/d6/JclUsesExpertDLL.dpr trunk/jcl/packages/d6/JclVcl.dof trunk/jcl/packages/d6/JclVcl.dpk trunk/jcl/packages/d6/JclVersionControlExpert.dof trunk/jcl/packages/d6/JclVersionControlExpert.dpk trunk/jcl/packages/d6/JclVersionControlExpertDLL.dof trunk/jcl/packages/d6/JclVersionControlExpertDLL.dpr trunk/jcl/packages/d7/Jcl.dof trunk/jcl/packages/d7/Jcl.dpk trunk/jcl/packages/d7/JclBaseExpert.dof trunk/jcl/packages/d7/JclBaseExpert.dpk trunk/jcl/packages/d7/JclContainers.dof trunk/jcl/packages/d7/JclContainers.dpk trunk/jcl/packages/d7/JclDebugExpert.dof trunk/jcl/packages/d7/JclDebugExpert.dpk trunk/jcl/packages/d7/JclDebugExpertDLL.dof trunk/jcl/packages/d7/JclDebugExpertDLL.dpr trunk/jcl/packages/d7/JclDeveloperTools.dof trunk/jcl/packages/d7/JclDeveloperTools.dpk trunk/jcl/packages/d7/JclFavoriteFoldersExpert.dof trunk/jcl/packages/d7/JclFavoriteFoldersExpert.dpk trunk/jcl/packages/d7/JclFavoriteFoldersExpertDLL.dof trunk/jcl/packages/d7/JclFavoriteFoldersExpertDLL.dpr trunk/jcl/packages/d7/JclProjectAnalysisExpert.dof trunk/jcl/packages/d7/JclProjectAnalysisExpert.dpk trunk/jcl/packages/d7/JclProjectAnalysisExpertDLL.dof trunk/jcl/packages/d7/JclProjectAnalysisExpertDLL.dpr trunk/jcl/packages/d7/JclRepositoryExpert.dof trunk/jcl/packages/d7/JclRepositoryExpert.dpk trunk/jcl/packages/d7/JclRepositoryExpertDLL.dof trunk/jcl/packages/d7/JclRepositoryExpertDLL.dpr trunk/jcl/packages/d7/JclSIMDViewExpert.dof trunk/jcl/packages/d7/JclSIMDViewExpert.dpk trunk/jcl/packages/d7/JclSIMDViewExpertDLL.dof trunk/jcl/packages/d7/JclSIMDViewExpertDLL.dpr trunk/jcl/packages/d7/JclStackTraceViewerExpert.dof trunk/jcl/packages/d7/JclStackTraceViewerExpert.dpk trunk/jcl/packages/d7/JclStackTraceViewerExpertDLL.dof trunk/jcl/packages/d7/JclStackTraceViewerExpertDLL.dpr trunk/jcl/packages/d7/JclUsesExpert.dof trunk/jcl/packages/d7/JclUsesExpert.dpk trunk/jcl/packages/d7/JclUsesExpertDLL.dof trunk/jcl/packages/d7/JclUsesExpertDLL.dpr trunk/jcl/packages/d7/JclVcl.dof trunk/jcl/packages/d7/JclVcl.dpk trunk/jcl/packages/d7/JclVersionControlExpert.dof trunk/jcl/packages/d7/JclVersionControlExpert.dpk trunk/jcl/packages/d7/JclVersionControlExpertDLL.dof trunk/jcl/packages/d7/JclVersionControlExpertDLL.dpr trunk/jcl/packages/d8/Jcl.bdsproj trunk/jcl/packages/d8/Jcl.dpk trunk/jcl/packages/d8/JclBaseExpert.bdsproj trunk/jcl/packages/d8/JclBaseExpert.dpk trunk/jcl/packages/d8/JclContainers.bdsproj trunk/jcl/packages/d8/JclContainers.dpk trunk/jcl/packages/d8/JclDeveloperTools.bdsproj trunk/jcl/packages/d8/JclDeveloperTools.dpk trunk/jcl/packages/d8/JclFavoriteFoldersExpertDLL.bdsproj trunk/jcl/packages/d8/JclFavoriteFoldersExpertDLL.dpr trunk/jcl/packages/d8/JclVersionControlExpertDLL.bdsproj trunk/jcl/packages/d8/JclVersionControlExpertDLL.dpr trunk/jcl/packages/d9/Jcl.bdsproj trunk/jcl/packages/d9/Jcl.dpk trunk/jcl/packages/d9/JclBaseExpert.bdsproj trunk/jcl/packages/d9/JclBaseExpert.dpk trunk/jcl/packages/d9/JclContainers.bdsproj trunk/jcl/packages/d9/JclContainers.dpk trunk/jcl/packages/d9/JclDebugExpert.bdsproj trunk/jcl/packages/d9/JclDebugExpert.dpk trunk/jcl/packages/d9/JclDebugExpertDLL.bdsproj trunk/jcl/packages/d9/JclDebugExpertDLL.dpr trunk/jcl/packages/d9/JclDeveloperTools.bdsproj trunk/jcl/packages/d9/JclDeveloperTools.dpk trunk/jcl/packages/d9/JclFavoriteFoldersExpert.bdsproj trunk/jcl/packages/d9/JclFavoriteFoldersExpert.dpk trunk/jcl/packages/d9/JclFavoriteFoldersExpertDLL.bdsproj trunk/jcl/packages/d9/JclFavoriteFoldersExpertDLL.dpr trunk/jcl/packages/d9/JclProjectAnalysisExpert.bdsproj trunk/jcl/packages/d9/JclProjectAnalysisExpert.dpk trunk/jcl/packages/d9/JclProjectAnalysisExpertDLL.bdsproj trunk/jcl/packages/d9/JclProjectAnalysisExpertDLL.dpr trunk/jcl/packages/d9/JclRepositoryExpert.bdsproj trunk/jcl/packages/d9/JclRepositoryExpert.dpk trunk/jcl/packages/d9/JclRepositoryExpertDLL.bdsproj trunk/jcl/packages/d9/JclRepositoryExpertDLL.dpr trunk/jcl/packages/d9/JclSIMDViewExpert.bdsproj trunk/jcl/packages/d9/JclSIMDViewExpert.dpk trunk/jcl/packages/d9/JclSIMDViewExpertDLL.bdsproj trunk/jcl/packages/d9/JclSIMDViewExpertDLL.dpr trunk/jcl/packages/d9/JclStackTraceViewerExpert.bdsproj trunk/jcl/packages/d9/JclStackTraceViewerExpert.dpk trunk/jcl/packages/d9/JclStackTraceViewerExpertDLL.bdsproj trunk/jcl/packages/d9/JclStackTraceViewerExpertDLL.dpr trunk/jcl/packages/d9/JclVcl.bdsproj trunk/jcl/packages/d9/JclVcl.dpk trunk/jcl/packages/d9/JclVersionControlExpert.bdsproj trunk/jcl/packages/d9/JclVersionControlExpert.dpk trunk/jcl/packages/d9/JclVersionControlExpertDLL.bdsproj trunk/jcl/packages/d9/JclVersionControlExpertDLL.dpr trunk/jcl/packages/fpc/Jcl.pas trunk/jcl/packages/fpc/JclContainers.pas trunk/jcl/packages/fpc/JclDeveloperTools.pas Modified: trunk/jcl/packages/c6/Jcl.bpk =================================================================== --- trunk/jcl/packages/c6/Jcl.bpk 2010-05-07 18:11:28 UTC (rev 3244) +++ trunk/jcl/packages/c6/Jcl.bpk 2010-05-07 18:47:01 UTC (rev 3245) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 03-02-2010 19:49:09 UTC + Last generated: 07-05-2010 18:37:41 UTC ***************************************************************************** --> <PROJECT> @@ -116,7 +116,7 @@ <DEBUGLIBPATH value="$(BCB)\lib\debug"/> <RELEASELIBPATH value="$(BCB)\lib\release"/> <LINKER value="ilink32"/> - <USERDEFINES value="BCB;RELEASE"/> + <USERDEFINES value="BCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE"/> <SYSDEFINES value="_RTLDLL;NO_STRICT;USEPACKAGES"/> <MAINSOURCE value="Jcl.cpp"/> <INCLUDEPATH value="..\..\source\common;..\..\source\windows;..\..\source\vcl;..\..\experts\common;$(BCB)\include;$(BCB)\include\vcl"/> @@ -125,9 +125,9 @@ <OTHERFILES value=""/> </MACROS> <OPTIONS> - <CFLAG1 value="-Od -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -c -tWM -DBCB;RELEASE"/> + <CFLAG1 value="-Od -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -c -tWM -DBCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE"/> <PFLAGS value="-U..\..\lib\c6 -N0..\..\lib\c6 -N2..\..\lib\c6 -I..\..\source\include -$YD -$W -$O- -$A8 -v -JPHNE -M - -DBCB;RELEASE + -DBCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE "/> <RFLAGS value=""/> <AFLAGS value="/mx /w2 /zd"/> Modified: trunk/jcl/packages/c6/Jcl.dof =================================================================== --- trunk/jcl/packages/c6/Jcl.dof 2010-05-07 18:11:28 UTC (rev 3244) +++ trunk/jcl/packages/c6/Jcl.dof 2010-05-07 18:47:01 UTC (rev 3245) @@ -1,5 +1,5 @@ [Directories] UnitOutputDir=..\..\lib\c6 SearchPath=..\..\source\include -Conditionals=BCB;RELEASE +Conditionals=BCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE Modified: trunk/jcl/packages/c6/Jcl.dpk =================================================================== --- trunk/jcl/packages/c6/Jcl.dpk 2010-05-07 18:11:28 UTC (rev 3244) +++ trunk/jcl/packages/c6/Jcl.dpk 2010-05-07 18:47:01 UTC (rev 3245) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (Jcl-R.xml) - Last generated: 03-02-2010 19:49:09 UTC + Last generated: 07-05-2010 18:37:41 UTC ----------------------------------------------------------------------------- } @@ -36,6 +36,9 @@ {$IMPLICITBUILD OFF} {$DEFINE BCB} +{$DEFINE WIN32} +{$DEFINE CONDITIONALEXPRESSIONS} +{$DEFINE VER140} {$DEFINE RELEASE} requires Modified: trunk/jcl/packages/c6/JclBaseExpert.bpk =================================================================== --- trunk/jcl/packages/c6/JclBaseExpert.bpk 2010-05-07 18:11:28 UTC (rev 3244) +++ trunk/jcl/packages/c6/JclBaseExpert.bpk 2010-05-07 18:47:01 UTC (rev 3245) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclBaseExpert-D.xml) - Last generated: 02-02-2010 14:38:53 UTC + Last generated: 07-05-2010 18:24:22 UTC ***************************************************************************** --> <PROJECT> @@ -56,7 +56,7 @@ <DEBUGLIBPATH value="$(BCB)\lib\debug"/> <RELEASELIBPATH value="$(BCB)\lib\release"/> <LINKER value="ilink32"/> - <USERDEFINES value="BCB;RELEASE"/> + <USERDEFINES value="BCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE"/> <SYSDEFINES value="_RTLDLL;NO_STRICT;USEPACKAGES"/> <MAINSOURCE value="JclBaseExpert.cpp"/> <INCLUDEPATH value="..\..\source\common;..\..\source\windows;..\..\source\vcl;..\..\experts\common;$(BCB)\include;$(BCB)\include\vcl"/> @@ -65,9 +65,9 @@ <OTHERFILES value=""/> </MACROS> <OPTIONS> - <CFLAG1 value="-Od -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -c -tWM -DBCB;RELEASE"/> + <CFLAG1 value="-Od -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -c -tWM -DBCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE"/> <PFLAGS value="-U..\..\lib\c6 -N0..\..\lib\c6 -N2..\..\lib\c6 -I..\..\source\include -$YD -$W -$O- -$A8 -v -JPHNE -M - -LUdesignide -DBCB;RELEASE + -LUdesignide -DBCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE "/> <RFLAGS value=""/> <AFLAGS value="/mx /w2 /zd"/> Modified: trunk/jcl/packages/c6/JclBaseExpert.dof =================================================================== --- trunk/jcl/packages/c6/JclBaseExpert.dof 2010-05-07 18:11:28 UTC (rev 3244) +++ trunk/jcl/packages/c6/JclBaseExpert.dof 2010-05-07 18:47:01 UTC (rev 3245) @@ -1,5 +1,5 @@ [Directories] UnitOutputDir=..\..\lib\c6 SearchPath=..\..\source\include -Conditionals=BCB;RELEASE +Conditionals=BCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE Modified: trunk/jcl/packages/c6/JclBaseExpert.dpk =================================================================== --- trunk/jcl/packages/c6/JclBaseExpert.dpk 2010-05-07 18:11:28 UTC (rev 3244) +++ trunk/jcl/packages/c6/JclBaseExpert.dpk 2010-05-07 18:47:01 UTC (rev 3245) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclBaseExpert-D.xml) - Last generated: 02-02-2010 14:38:53 UTC + Last generated: 07-05-2010 18:24:22 UTC ----------------------------------------------------------------------------- } @@ -36,6 +36,9 @@ {$IMPLICITBUILD OFF} {$DEFINE BCB} +{$DEFINE WIN32} +{$DEFINE CONDITIONALEXPRESSIONS} +{$DEFINE VER140} {$DEFINE RELEASE} requires Modified: trunk/jcl/packages/c6/JclContainers.bpk =================================================================== --- trunk/jcl/packages/c6/JclContainers.bpk 2010-05-07 18:11:28 UTC (rev 3244) +++ trunk/jcl/packages/c6/JclContainers.bpk 2010-05-07 18:47:01 UTC (rev 3245) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclContainers-R.xml) - Last generated: 28-06-2009 20:45:12 UTC + Last generated: 07-05-2010 18:24:22 UTC ***************************************************************************** --> <PROJECT> @@ -50,7 +50,7 @@ <DEBUGLIBPATH value="$(BCB)\lib\debug"/> <RELEASELIBPATH value="$(BCB)\lib\release"/> <LINKER value="ilink32"/> - <USERDEFINES value="BCB;RELEASE"/> + <USERDEFINES value="BCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE"/> <SYSDEFINES value="_RTLDLL;NO_STRICT;USEPACKAGES"/> <MAINSOURCE value="JclContainers.cpp"/> <INCLUDEPATH value="..\..\source\common;..\..\source\windows;..\..\source\vcl;..\..\experts\common;$(BCB)\include;$(BCB)\include\vcl"/> @@ -59,9 +59,9 @@ <OTHERFILES value=""/> </MACROS> <OPTIONS> - <CFLAG1 value="-Od -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -c -tWM -DBCB;RELEASE"/> + <CFLAG1 value="-Od -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -c -tWM -DBCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE"/> <PFLAGS value="-U..\..\lib\c6 -N0..\..\lib\c6 -N2..\..\lib\c6 -I..\..\source\include -$YD -$W -$O- -$A8 -v -JPHNE -M - -DBCB;RELEASE + -DBCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE "/> <RFLAGS value=""/> <AFLAGS value="/mx /w2 /zd"/> Modified: trunk/jcl/packages/c6/JclContainers.dof =================================================================== --- trunk/jcl/packages/c6/JclContainers.dof 2010-05-07 18:11:28 UTC (rev 3244) +++ trunk/jcl/packages/c6/JclContainers.dof 2010-05-07 18:47:01 UTC (rev 3245) @@ -1,5 +1,5 @@ [Directories] UnitOutputDir=..\..\lib\c6 SearchPath=..\..\source\include -Conditionals=BCB;RELEASE +Conditionals=BCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE Modified: trunk/jcl/packages/c6/JclContainers.dpk =================================================================== --- trunk/jcl/packages/c6/JclContainers.dpk 2010-05-07 18:11:28 UTC (rev 3244) +++ trunk/jcl/packages/c6/JclContainers.dpk 2010-05-07 18:47:01 UTC (rev 3245) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclContainers-R.xml) - Last generated: 14-03-2009 14:38:21 UTC + Last generated: 07-05-2010 18:24:22 UTC ----------------------------------------------------------------------------- } @@ -36,6 +36,9 @@ {$IMPLICITBUILD OFF} {$DEFINE BCB} +{$DEFINE WIN32} +{$DEFINE CONDITIONALEXPRESSIONS} +{$DEFINE VER140} {$DEFINE RELEASE} requires Modified: trunk/jcl/packages/c6/JclDebugExpert.bpk =================================================================== --- trunk/jcl/packages/c6/JclDebugExpert.bpk 2010-05-07 18:11:28 UTC (rev 3244) +++ trunk/jcl/packages/c6/JclDebugExpert.bpk 2010-05-07 18:47:01 UTC (rev 3245) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclDebugExpert-D.xml) - Last generated: 02-02-2010 14:38:53 UTC + Last generated: 07-05-2010 18:24:22 UTC ***************************************************************************** --> <PROJECT> @@ -45,7 +45,7 @@ <DEBUGLIBPATH value="$(BCB)\lib\debug"/> <RELEASELIBPATH value="$(BCB)\lib\release"/> <LINKER value="ilink32"/> - <USERDEFINES value="BCB;RELEASE"/> + <USERDEFINES value="BCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE"/> <SYSDEFINES value="_RTLDLL;NO_STRICT;USEPACKAGES"/> <MAINSOURCE value="JclDebugExpert.cpp"/> <INCLUDEPATH value="..\..\source\common;..\..\source\windows;..\..\source\vcl;..\..\experts\common;$(BCB)\include;$(BCB)\include\vcl"/> @@ -54,9 +54,9 @@ <OTHERFILES value=""/> </MACROS> <OPTIONS> - <CFLAG1 value="-Od -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -c -tWM -DBCB;RELEASE"/> + <CFLAG1 value="-Od -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -c -tWM -DBCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE"/> <PFLAGS value="-U..\..\lib\c6 -N0..\..\lib\c6 -N2..\..\lib\c6 -I..\..\source\include -$YD -$W -$O- -$A8 -v -JPHNE -M - -LUdesignide -DBCB;RELEASE + -LUdesignide -DBCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE "/> <RFLAGS value=""/> <AFLAGS value="/mx /w2 /zd"/> Modified: trunk/jcl/packages/c6/JclDebugExpert.dof =================================================================== --- trunk/jcl/packages/c6/JclDebugExpert.dof 2010-05-07 18:11:28 UTC (rev 3244) +++ trunk/jcl/packages/c6/JclDebugExpert.dof 2010-05-07 18:47:01 UTC (rev 3245) @@ -1,5 +1,5 @@ [Directories] UnitOutputDir=..\..\lib\c6 SearchPath=..\..\source\include -Conditionals=BCB;RELEASE +Conditionals=BCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE Modified: trunk/jcl/packages/c6/JclDebugExpert.dpk =================================================================== --- trunk/jcl/packages/c6/JclDebugExpert.dpk 2010-05-07 18:11:28 UTC (rev 3244) +++ trunk/jcl/packages/c6/JclDebugExpert.dpk 2010-05-07 18:47:01 UTC (rev 3245) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclDebugExpert-D.xml) - Last generated: 02-02-2010 14:38:53 UTC + Last generated: 07-05-2010 18:24:22 UTC ----------------------------------------------------------------------------- } @@ -36,6 +36,9 @@ {$IMPLICITBUILD OFF} {$DEFINE BCB} +{$DEFINE WIN32} +{$DEFINE CONDITIONALEXPRESSIONS} +{$DEFINE VER140} {$DEFINE RELEASE} requires Modified: trunk/jcl/packages/c6/JclDebugExpertDLL.bpr =================================================================== --- trunk/jcl/packages/c6/JclDebugExpertDLL.bpr 2010-05-07 18:11:28 UTC (rev 3244) +++ trunk/jcl/packages/c6/JclDebugExpertDLL.bpr 2010-05-07 18:47:01 UTC (rev 3245) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclDebugExpertDLL-L.xml) - Last generated: 02-02-2010 14:38:53 UTC + Last generated: 07-05-2010 18:24:22 UTC ***************************************************************************** --> <PROJECT> @@ -45,7 +45,7 @@ <DEBUGLIBPATH value="$(BCB)\lib\debug"/> <RELEASELIBPATH value="$(BCB)\lib\release"/> <LINKER value="ilink32"/> - <USERDEFINES value="BCB;RELEASE"/> + <USERDEFINES value="BCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE"/> <SYSDEFINES value="NO_STRICT;_RTLDLL;USEPACKAGES"/> <MAINSOURCE value="JclDebugExpertDLL.cpp"/> <INCLUDEPATH value="..\..\source\common;..\..\source\windows;..\..\source\vcl;$(BCB)\include;$(BCB)\include\vcl"/> @@ -54,9 +54,9 @@ <OTHERFILES value=""/> </MACROS> <OPTIONS> - <CFLAG1 value="-WD -Od -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -tWD -tWM -c -DBCB;RELEASE"/> + <CFLAG1 value="-WD -Od -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -tWD -tWM -c -DBCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE"/> <PFLAGS value="-U..\..\lib\c6 -N2..\..\lib\c6 -N0..\..\lib\c6 -I..\..\source\include -$YD -$W -$O- -$A8 -v -JPHNE -M - -LUdesignide -DBCB;RELEASE + -LUdesignide -DBCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE "/> <RFLAGS value=""/> <AFLAGS value="/mx /w2 /zd"/> Modified: trunk/jcl/packages/c6/JclDebugExpertDLL.dof =================================================================== --- trunk/jcl/packages/c6/JclDebugExpertDLL.dof 2010-05-07 18:11:28 UTC (rev 3244) +++ trunk/jcl/packages/c6/JclDebugExpertDLL.dof 2010-05-07 18:47:01 UTC (rev 3245) @@ -1,7 +1,7 @@ [Directories] UnitOutputDir=..\..\lib\c6 SearchPath=..\..\source\include -Conditionals=BCB;RELEASE +Conditionals=BCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE [Compiler] PackageNoLink=1 [Linker] Modified: trunk/jcl/packages/c6/JclDeveloperTools.bpk =================================================================== --- trunk/jcl/packages/c6/JclDeveloperTools.bpk 2010-05-07 18:11:28 UTC (rev 3244) +++ trunk/jcl/packages/c6/JclDeveloperTools.bpk 2010-05-07 18:47:01 UTC (rev 3245) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclDeveloperTools-R.xml) - Last generated: 03-02-2010 21:45:31 UTC + Last generated: 07-05-2010 18:24:22 UTC ***************************************************************************** --> <PROJECT> @@ -46,7 +46,7 @@ <DEBUGLIBPATH value="$(BCB)\lib\debug"/> <RELEASELIBPATH value="$(BCB)\lib\release"/> <LINKER value="ilink32"/> - <USERDEFINES value="BCB;RELEASE"/> + <USERDEFINES value="BCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE"/> <SYSDEFINES value="_RTLDLL;NO_STRICT;USEPACKAGES"/> <MAINSOURCE value="JclDeveloperTools.cpp"/> <INCLUDEPATH value="..\..\source\common;..\..\source\windows;..\..\source\vcl;..\..\experts\common;$(BCB)\include;$(BCB)\include\vcl"/> @@ -55,9 +55,9 @@ <OTHERFILES value=""/> </MACROS> <OPTIONS> - <CFLAG1 value="-Od -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -c -tWM -DBCB;RELEASE"/> + <CFLAG1 value="-Od -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -c -tWM -DBCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE"/> <PFLAGS value="-U..\..\lib\c6 -N0..\..\lib\c6 -N2..\..\lib\c6 -I..\..\source\include -$YD -$W -$O- -$A8 -v -JPHNE -M - -DBCB;RELEASE + -DBCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE "/> <RFLAGS value=""/> <AFLAGS value="/mx /w2 /zd"/> Modified: trunk/jcl/packages/c6/JclDeveloperTools.dof =================================================================== --- trunk/jcl/packages/c6/JclDeveloperTools.dof 2010-05-07 18:11:28 UTC (rev 3244) +++ trunk/jcl/packages/c6/JclDeveloperTools.dof 2010-05-07 18:47:01 UTC (rev 3245) @@ -1,5 +1,5 @@ [Directories] UnitOutputDir=..\..\lib\c6 SearchPath=..\..\source\include -Conditionals=BCB;RELEASE +Conditionals=BCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE Modified: trunk/jcl/packages/c6/JclDeveloperTools.dpk =================================================================== --- trunk/jcl/packages/c6/JclDeveloperTools.dpk 2010-05-07 18:11:28 UTC (rev 3244) +++ trunk/jcl/packages/c6/JclDeveloperTools.dpk 2010-05-07 18:47:01 UTC (rev 3245) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclDeveloperTools-R.xml) - Last generated: 03-02-2010 21:45:31 UTC + Last generated: 07-05-2010 18:24:23 UTC ----------------------------------------------------------------------------- } @@ -36,6 +36,9 @@ {$IMPLICITBUILD OFF} {$DEFINE BCB} +{$DEFINE WIN32} +{$DEFINE CONDITIONALEXPRESSIONS} +{$DEFINE VER140} {$DEFINE RELEASE} requires Modified: trunk/jcl/packages/c6/JclFavoriteFoldersExpert.bpk =================================================================== --- trunk/jcl/packages/c6/JclFavoriteFoldersExpert.bpk 2010-05-07 18:11:28 UTC (rev 3244) +++ trunk/jcl/packages/c6/JclFavoriteFoldersExpert.bpk 2010-05-07 18:47:01 UTC (rev 3245) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclFavoriteFoldersExpert-D.xml) - Last generated: 22-09-2009 21:56:23 UTC + Last generated: 07-05-2010 18:24:22 UTC ***************************************************************************** --> <PROJECT> @@ -41,7 +41,7 @@ <DEBUGLIBPATH value="$(BCB)\lib\debug"/> <RELEASELIBPATH value="$(BCB)\lib\release"/> <LINKER value="ilink32"/> - <USERDEFINES value="BCB;RELEASE"/> + <USERDEFINES value="BCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE"/> <SYSDEFINES value="_RTLDLL;NO_STRICT;USEPACKAGES"/> <MAINSOURCE value="JclFavoriteFoldersExpert.cpp"/> <INCLUDEPATH value="..\..\source\common;..\..\source\windows;..\..\source\vcl;..\..\experts\common;$(BCB)\include;$(BCB)\include\vcl"/> @@ -50,9 +50,9 @@ <OTHERFILES value=""/> </MACROS> <OPTIONS> - <CFLAG1 value="-Od -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -c -tWM -DBCB;RELEASE"/> + <CFLAG1 value="-Od -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -c -tWM -DBCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE"/> <PFLAGS value="-U..\..\lib\c6 -N0..\..\lib\c6 -N2..\..\lib\c6 -I..\..\source\include -$YD -$W -$O- -$A8 -v -JPHNE -M - -LUdesignide -DBCB;RELEASE + -LUdesignide -DBCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE "/> <RFLAGS value=""/> <AFLAGS value="/mx /w2 /zd"/> Modified: trunk/jcl/packages/c6/JclFavoriteFoldersExpert.dof =================================================================== --- trunk/jcl/packages/c6/JclFavoriteFoldersExpert.dof 2010-05-07 18:11:28 UTC (rev 3244) +++ trunk/jcl/packages/c6/JclFavoriteFoldersExpert.dof 2010-05-07 18:47:01 UTC (rev 3245) @@ -1,5 +1,5 @@ [Directories] UnitOutputDir=..\..\lib\c6 SearchPath=..\..\source\include -Conditionals=BCB;RELEASE +Conditionals=BCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE Modified: trunk/jcl/packages/c6/JclFavoriteFoldersExpert.dpk =================================================================== --- trunk/jcl/packages/c6/JclFavoriteFoldersExpert.dpk 2010-05-07 18:11:28 UTC (rev 3244) +++ trunk/jcl/packages/c6/JclFavoriteFoldersExpert.dpk 2010-05-07 18:47:01 UTC (rev 3245) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclFavoriteFoldersExpert-D.xml) - Last generated: 22-09-2009 21:56:24 UTC + Last generated: 07-05-2010 18:24:23 UTC ----------------------------------------------------------------------------- } @@ -36,6 +36,9 @@ {$IMPLICITBUILD OFF} {$DEFINE BCB} +{$DEFINE WIN32} +{$DEFINE CONDITIONALEXPRESSIONS} +{$DEFINE VER140} {$DEFINE RELEASE} requires Modified: trunk/jcl/packages/c6/JclFavoriteFoldersExpertDLL.bpr =================================================================== --- trunk/jcl/packages/c6/JclFavoriteFoldersExpertDLL.bpr 2010-05-07 18:11:28 UTC (rev 3244) +++ trunk/jcl/packages/c6/JclFavoriteFoldersExpertDLL.bpr 2010-05-07 18:47:01 UTC (rev 3245) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclFavoriteFoldersExpertDLL-L.xml) - Last generated: 22-09-2009 21:56:23 UTC + Last generated: 07-05-2010 18:24:22 UTC ***************************************************************************** --> <PROJECT> @@ -41,7 +41,7 @@ <DEBUGLIBPATH value="$(BCB)\lib\debug"/> <RELEASELIBPATH value="$(BCB)\lib\release"/> <LINKER value="ilink32"/> - <USERDEFINES value="BCB;RELEASE"/> + <USERDEFINES value="BCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE"/> <SYSDEFINES value="NO_STRICT;_RTLDLL;USEPACKAGES"/> <MAINSOURCE value="JclFavoriteFoldersExpertDLL.cpp"/> <INCLUDEPATH value="..\..\source\common;..\..\source\windows;..\..\source\vcl;$(BCB)\include;$(BCB)\include\vcl"/> @@ -50,9 +50,9 @@ <OTHERFILES value=""/> </MACROS> <OPTIONS> - <CFLAG1 value="-WD -Od -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -tWD -tWM -c -DBCB;RELEASE"/> + <CFLAG1 value="-WD -Od -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -tWD -tWM -c -DBCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE"/> <PFLAGS value="-U..\..\lib\c6 -N2..\..\lib\c6 -N0..\..\lib\c6 -I..\..\source\include -$YD -$W -$O- -$A8 -v -JPHNE -M - -LUdesignide -DBCB;RELEASE + -LUdesignide -DBCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE "/> <RFLAGS value=""/> <AFLAGS value="/mx /w2 /zd"/> Modified: trunk/jcl/packages/c6/JclFavoriteFoldersExpertDLL.dof =================================================================== --- trunk/jcl/packages/c6/JclFavoriteFoldersExpertDLL.dof 2010-05-07 18:11:28 UTC (rev 3244) +++ trunk/jcl/packages/c6/JclFavoriteFoldersExpertDLL.dof 2010-05-07 18:47:01 UTC (rev 3245) @@ -1,7 +1,7 @@ [Directories] UnitOutputDir=..\..\lib\c6 SearchPath=..\..\source\include -Conditionals=BCB;RELEASE +Conditionals=BCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE [Compiler] PackageNoLink=1 [Linker] Modified: trunk/jcl/packages/c6/JclProjectAnalysisExpert.bpk =================================================================== --- trunk/jcl/packages/c6/JclProjectAnalysisExpert.bpk 2010-05-07 18:11:28 UTC (rev 3244) +++ trunk/jcl/packages/c6/JclProjectAnalysisExpert.bpk 2010-05-07 18:47:01 UTC (rev 3245) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclProjectAnalysisExpert-D.xml) - Last generated: 28-06-2009 20:45:12 UTC + Last generated: 07-05-2010 18:24:22 UTC ***************************************************************************** --> <PROJECT> @@ -42,7 +42,7 @@ <DEBUGLIBPATH value="$(BCB)\lib\debug"/> <RELEASELIBPATH value="$(BCB)\lib\release"/> <LINKER value="ilink32"/> - <USERDEFINES value="BCB;RELEASE"/> + <USERDEFINES value="BCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE"/> <SYSDEFINES value="_RTLDLL;NO_STRICT;USEPACKAGES"/> <MAINSOURCE value="JclProjectAnalysisExpert.cpp"/> <INCLUDEPATH value="..\..\source\common;..\..\source\windows;..\..\source\vcl;..\..\experts\common;$(BCB)\include;$(BCB)\include\vcl"/> @@ -51,9 +51,9 @@ <OTHERFILES value=""/> </MACROS> <OPTIONS> - <CFLAG1 value="-Od -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -c -tWM -DBCB;RELEASE"/> + <CFLAG1 value="-Od -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -c -tWM -DBCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE"/> <PFLAGS value="-U..\..\lib\c6 -N0..\..\lib\c6 -N2..\..\lib\c6 -I..\..\source\include -$YD -$W -$O- -$A8 -v -JPHNE -M - -LUdesignide -DBCB;RELEASE + -LUdesignide -DBCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE "/> <RFLAGS value=""/> <AFLAGS value="/mx /w2 /zd"/> Modified: trunk/jcl/packages/c6/JclProjectAnalysisExpert.dof =================================================================== --- trunk/jcl/packages/c6/JclProjectAnalysisExpert.dof 2010-05-07 18:11:28 UTC (rev 3244) +++ trunk/jcl/packages/c6/JclProjectAnalysisExpert.dof 2010-05-07 18:47:01 UTC (rev 3245) @@ -1,5 +1,5 @@ [Directories] UnitOutputDir=..\..\lib\c6 SearchPath=..\..\source\include -Conditionals=BCB;RELEASE +Conditionals=BCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE Modified: trunk/jcl/packages/c6/JclProjectAnalysisExpert.dpk =================================================================== --- trunk/jcl/packages/c6/JclProjectAnalysisExpert.dpk 2010-05-07 18:11:28 UTC (rev 3244) +++ trunk/jcl/packages/c6/JclProjectAnalysisExpert.dpk 2010-05-07 18:47:01 UTC (rev 3245) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclProjectAnalysisExpert-D.xml) - Last generated: 14-03-2009 14:35:13 UTC + Last generated: 07-05-2010 18:24:23 UTC ----------------------------------------------------------------------------- } @@ -36,6 +36,9 @@ {$IMPLICITBUILD OFF} {$DEFINE BCB} +{$DEFINE WIN32} +{$DEFINE CONDITIONALEXPRESSIONS} +{$DEFINE VER140} {$DEFINE RELEASE} requires Modified: trunk/jcl/packages/c6/JclProjectAnalysisExpertDLL.bpr =================================================================== --- trunk/jcl/packages/c6/JclProjectAnalysisExpertDLL.bpr 2010-05-07 18:11:28 UTC (rev 3244) +++ trunk/jcl/packages/c6/JclProjectAnalysisExpertDLL.bpr 2010-05-07 18:47:01 UTC (rev 3245) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclProjectAnalysisExpertDLL-L.xml) - Last generated: 28-06-2009 20:45:12 UTC + Last generated: 07-05-2010 18:24:22 UTC ***************************************************************************** --> <PROJECT> @@ -42,7 +42,7 @@ <DEBUGLIBPATH value="$(BCB)\lib\debug"/> <RELEASELIBPATH value="$(BCB)\lib\release"/> <LINKER value="ilink32"/> - <USERDEFINES value="BCB;RELEASE"/> + <USERDEFINES value="BCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE"/> <SYSDEFINES value="NO_STRICT;_RTLDLL;USEPACKAGES"/> <MAINSOURCE value="JclProjectAnalysisExpertDLL.cpp"/> <INCLUDEPATH value="..\..\source\common;..\..\source\windows;..\..\source\vcl;$(BCB)\include;$(BCB)\include\vcl"/> @@ -51,9 +51,9 @@ <OTHERFILES value=""/> </MACROS> <OPTIONS> - <CFLAG1 value="-WD -Od -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -tWD -tWM -c -DBCB;RELEASE"/> + <CFLAG1 value="-WD -Od -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -tWD -tWM -c -DBCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE"/> <PFLAGS value="-U..\..\lib\c6 -N2..\..\lib\c6 -N0..\..\lib\c6 -I..\..\source\include -$YD -$W -$O- -$A8 -v -JPHNE -M - -LUdesignide -DBCB;RELEASE + -LUdesignide -DBCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE "/> <RFLAGS value=""/> <AFLAGS value="/mx /w2 /zd"/> Modified: trunk/jcl/packages/c6/JclProjectAnalysisExpertDLL.dof =================================================================== --- trunk/jcl/packages/c6/JclProjectAnalysisExpertDLL.dof 2010-05-07 18:11:28 UTC (rev 3244) +++ trunk/jcl/packages/c6/JclProjectAnalysisExpertDLL.dof 2010-05-07 18:47:01 UTC (rev 3245) @@ -1,7 +1,7 @@ [Directories] UnitOutputDir=..\..\lib\c6 SearchPath=..\..\source\include -Conditionals=BCB;RELEASE +Conditionals=BCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE [Compiler] PackageNoLink=1 [Linker] Modified: trunk/jcl/packages/c6/JclRepositoryExpert.bpk =================================================================== --- trunk/jcl/packages/c6/JclRepositoryExpert.bpk 2010-05-07 18:11:28 UTC (rev 3244) +++ trunk/jcl/packages/c6/JclRepositoryExpert.bpk 2010-05-07 18:47:01 UTC (rev 3245) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpert-D.xml) - Last generated: 03-02-2010 20:03:03 UTC + Last generated: 07-05-2010 18:24:22 UTC ***************************************************************************** --> <PROJECT> @@ -62,7 +62,7 @@ <DEBUGLIBPATH value="$(BCB)\lib\debug"/> <RELEASELIBPATH value="$(BCB)\lib\release"/> <LINKER value="ilink32"/> - <USERDEFINES value="BCB;RELEASE"/> + <USERDEFINES value="BCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE"/> <SYSDEFINES value="_RTLDLL;NO_STRICT;USEPACKAGES"/> <MAINSOURCE value="JclRepositoryExpert.cpp"/> <INCLUDEPATH value="..\..\source\common;..\..\source\windows;..\..\source\vcl;..\..\experts\common;$(BCB)\include;$(BCB)\include\vcl"/> @@ -71,9 +71,9 @@ <OTHERFILES value=""/> </MACROS> <OPTIONS> - <CFLAG1 value="-Od -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -c -tWM -DBCB;RELEASE"/> + <CFLAG1 value="-Od -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -c -tWM -DBCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE"/> <PFLAGS value="-U..\..\lib\c6 -N0..\..\lib\c6 -N2..\..\lib\c6 -I..\..\source\include -$YD -$W -$O- -$A8 -v -JPHNE -M - -LUdesignide -DBCB;RELEASE + -LUdesignide -DBCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE "/> <RFLAGS value=""/> <AFLAGS value="/mx /w2 /zd"/> Modified: trunk/jcl/packages/c6/JclRepositoryExpert.dof =================================================================== --- trunk/jcl/packages/c6/JclRepositoryExpert.dof 2010-05-07 18:11:28 UTC (rev 3244) +++ trunk/jcl/packages/c6/JclRepositoryExpert.dof 2010-05-07 18:47:01 UTC (rev 3245) @@ -1,5 +1,5 @@ [Directories] UnitOutputDir=..\..\lib\c6 SearchPath=..\..\source\include -Conditionals=BCB;RELEASE +Conditionals=BCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE Modified: trunk/jcl/packages/c6/JclRepositoryExpert.dpk =================================================================== --- trunk/jcl/packages/c6/JclRepositoryExpert.dpk 2010-05-07 18:11:28 UTC (rev 3244) +++ trunk/jcl/packages/c6/JclRepositoryExpert.dpk 2010-05-07 18:47:01 UTC (rev 3245) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpert-D.xml) - Last generated: 03-02-2010 20:03:03 UTC + Last generated: 07-05-2010 18:24:23 UTC ----------------------------------------------------------------------------- } @@ -36,6 +36,9 @@ {$IMPLICITBUILD OFF} {$DEFINE BCB} +{$DEFINE WIN32} +{$DEFINE CONDITIONALEXPRESSIONS} +{$DEFINE VER140} {$DEFINE RELEASE} requires Modified: trunk/jcl/packages/c6/JclRepositoryExpertDLL.bpr =================================================================== --- trunk/jcl/packages/c6/JclRepositoryExpertDLL.bpr 2010-05-07 18:11:28 UTC (rev 3244) +++ trunk/jcl/packages/c6/JclRepositoryExpertDLL.bpr 2010-05-07 18:47:01 UTC (rev 3245) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpertDLL-L.xml) - Last generated: 03-02-2010 20:03:03 UTC + Last generated: 07-05-2010 18:24:22 UTC ***************************************************************************** --> <PROJECT> @@ -62,7 +62,7 @@ <DEBUGLIBPATH value="$(BCB)\lib\debug"/> <RELEASELIBPATH value="$(BCB)\lib\release"/> <LINKER value="ilink32"/> - <USERDEFINES value="BCB;RELEASE"/> + <USERDEFINES value="BCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE"/> <SYSDEFINES value="NO_STRICT;_RTLDLL;USEPACKAGES"/> <MAINSOURCE value="JclRepositoryExpertDLL.cpp"/> <INCLUDEPATH value="..\..\source\common;..\..\source\windows;..\..\source\vcl;$(BCB)\include;$(BCB)\include\vcl"/> @@ -71,9 +71,9 @@ <OTHERFILES value=""/> </MACROS> <OPTIONS> - <CFLAG1 value="-WD -Od -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -tWD -tWM -c -DBCB;RELEASE"/> + <CFLAG1 value="-WD -Od -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -tWD -tWM -c -DBCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE"/> <PFLAGS value="-U..\..\lib\c6 -N2..\..\lib\c6 -N0..\..\lib\c6 -I..\..\source\include -$YD -$W -$O- -$A8 -v -JPHNE -M - -LUdesignide -DBCB;RELEASE + -LUdesignide -DBCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE "/> <RFLAGS value=""/> <AFLAGS value="/mx /w2 /zd"/> Modified: trunk/jcl/packages/c6/JclRepositoryExpertDLL.dof =================================================================== --- trunk/jcl/packages/c6/JclRepositoryExpertDLL.dof 2010-05-07 18:11:28 UTC (rev 3244) +++ trunk/jcl/packages/c6/JclRepositoryExpertDLL.dof 2010-05-07 18:47:01 UTC (rev 3245) @@ -1,7 +1,7 @@ [Directories] UnitOutputDir=..\..\lib\c6 SearchPath=..\..\source\include -Conditionals=BCB;RELEASE +Conditionals=BCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE [Compiler] PackageNoLink=1 [Linker] Modified: trunk/jcl/packages/c6/JclSIMDViewExpert.bpk =================================================================== --- trunk/jcl/packages/c6/JclSIMDViewExpert.bpk 2010-05-07 18:11:28 UTC (rev 3244) +++ trunk/jcl/packages/c6/JclSIMDViewExpert.bpk 2010-05-07 18:47:01 UTC (rev 3245) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclSIMDViewExpert-D.xml) - Last generated: 28-06-2009 20:45:12 UTC + Last generated: 07-05-2010 18:24:22 UTC ***************************************************************************** --> <PROJECT> @@ -47,7 +47,7 @@ <DEBUGLIBPATH value="$(BCB)\lib\debug"/> <RELEASELIBPATH value="$(BCB)\lib\release"/> <LINKER value="ilink32"/> - <USERDEFINES value="BCB;RELEASE"/> + <USERDEFINES value="BCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE"/> <SYSDEFINES value="_RTLDLL;NO_STRICT;USEPACKAGES"/> <MAINSOURCE value="JclSIMDViewExpert.cpp"/> <INCLUDEPATH value="..\..\source\common;..\..\source\windows;..\..\source\vcl;..\..\experts\common;$(BCB)\include;$(BCB)\include\vcl"/> @@ -56,9 +56,9 @@ <OTHERFILES value=""/> </MACROS> <OPTIONS> - <CFLAG1 value="-Od -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -c -tWM -DBCB;RELEASE"/> + <CFLAG1 value="-Od -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -c -tWM -DBCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE"/> <PFLAGS value="-U..\..\lib\c6 -N0..\..\lib\c6 -N2..\..\lib\c6 -I..\..\source\include -$YD -$W -$O- -$A8 -v -JPHNE -M - -LUdesignide -DBCB;RELEASE + -LUdesignide -DBCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE "/> <RFLAGS value=""/> <AFLAGS value="/mx /w2 /zd"/> Modified: trunk/jcl/packages/c6/JclSIMDViewExpert.dof =================================================================== --- trunk/jcl/packages/c6/JclSIMDViewExpert.dof 2010-05-07 18:11:28 UTC (rev 3244) +++ trunk/jcl/packages/c6/JclSIMDViewExpert.dof 2010-05-07 18:47:01 UTC (rev 3245) @@ -1,5 +1,5 @@ [Directories] UnitOutputDir=..\..\lib\c6 SearchPath=..\..\source\include -Conditionals=BCB;RELEASE +Conditionals=BCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE Modified: trunk/jcl/packages/c6/JclSIMDViewExpert.dpk =================================================================== --- trunk/jcl/packages/c6/JclSIMDViewExpert.dpk 2010-05-07 18:11:28 UTC (rev 3244) +++ trunk/jcl/packages/c6/JclSIMDViewExpert.dpk 2010-05-07 18:47:01 UTC (rev 3245) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclSIMDViewExpert-D.xml) - Last generated: 14-03-2009 14:35:13 UTC + Last generated: 07-05-2010 18:24:23 UTC ----------------------------------------------------------------------------- } @@ -36,6 +36,9 @@ {$IMPLICITBUILD OFF} {$DEFINE BCB} +{$DEFINE WIN32} +{$DEFINE CONDITIONALEXPRESSIONS} +{$DEFINE VER140} {$DEFINE RELEASE} requires Modified: trunk/jcl/packages/c6/JclSIMDViewExpertDLL.bpr =================================================================== --- trunk/jcl/packages/c6/JclSIMDViewExpertDLL.bpr 2010-05-07 18:11:28 UTC (rev 3244) +++ trunk/jcl/packages/c6/JclSIMDViewExpertDLL.bpr 2010-05-07 18:47:01 UTC (rev 3245) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclSIMDViewExpertDLL-L.xml) - Last generated: 28-06-2009 20:45:12 UTC + Last generated: 07-05-2010 18:24:22 UTC ***************************************************************************** --> <PROJECT> @@ -47,7 +47,7 @@ <DEBUGLIBPATH value="$(BCB)\lib\debug"/> <RELEASELIBPATH value="$(BCB)\lib\release"/> <LINKER value="ilink32"/> - <USERDEFINES value="BCB;RELEASE"/> + <USERDEFINES value="BCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE"/> <SYSDEFINES value="NO_STRICT;_RTLDLL;USEPACKAGES"/> <MAINSOURCE value="JclSIMDViewExpertDLL.cpp"/> <INCLUDEPATH value="..\..\source\common;..\..\source\windows;..\..\source\vcl;$(BCB)\include;$(BCB)\include\vcl"/> @@ -56,9 +56,9 @@ <OTHERFILES value=""/> </MACROS> <OPTIONS> - <CFLAG1 value="-WD -Od -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -tWD -tWM -c -DBCB;RELEASE"/> + <CFLAG1 value="-WD -Od -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -tWD -tWM -c -DBCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE"/> <PFLAGS value="-U..\..\lib\c6 -N2..\..\lib\c6 -N0..\..\lib\c6 -I..\..\source\include -$YD -$W -$O- -$A8 -v -JPHNE -M - -LUdesignide -DBCB;RELEASE + -LUdesignide -DBCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE "/> <RFLAGS value=""/> <AFLAGS value="/mx /w2 /zd"/> Modified: trunk/jcl/packages/c6/JclSIMDViewExpertDLL.dof =================================================================== --- trunk/jcl/packages/c6/JclSIMDViewExpertDLL.dof 2010-05-07 18:11:28 UTC (rev 3244) +++ trunk/jcl/packages/c6/JclSIMDViewExpertDLL.dof 2010-05-07 18:47:01 UTC (rev 3245) @@ -1,7 +1,7 @@ [Directories] UnitOutputDir=..\..\lib\c6 SearchPath=..\..\source\include -Conditionals=BCB;RELEASE +Conditionals=BCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE [Compiler] PackageNoLink=1 [Linker] Modified: trunk/jcl/packages/c6/JclStackTraceViewerExpert.bpk =================================================================== --- trunk/jcl/packages/c6/JclStackTraceViewerExpert.bpk 2010-05-07 18:11:28 UTC (rev 3244) +++ trunk/jcl/packages/c6/JclStackTraceViewerExpert.bpk 2010-05-07 18:47:01 UTC (rev 3245) @@ -5,7 +5,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclStackTraceViewerExpert-D.xml) - Last generated: 10-08-2009 13:49:47 UTC + Last generated: 07-05-2010 18:24:22 UTC ***************************************************************************** --> <PROJECT> @@ -60,7 +60,7 @@ <DEBUGLIBPATH value="$(BCB)\lib\debug"/> <RELEASELIBPATH value="$(BCB)\lib\release"/> <LINKER value="ilink32"/> - <USERDEFINES value="BCB;RELEASE"/> + <USERDEFINES value="BCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE"/> <SYSDEFINES value="_RTLDLL;NO_STRICT;USEPACKAGES"/> <MAINSOURCE value="JclStackTraceViewerExpert.cpp"/> <INCLUDEPATH value="..\..\source\common;..\..\source\windows;..\..\source\vcl;..\..\experts\common;$(BCB)\include;$(BCB)\include\vcl"/> @@ -69,9 +69,9 @@ <OTHERFILES value=""/> </MACROS> <OPTIONS> - <CFLAG1 value="-Od -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -c -tWM -DBCB;RELEASE"/> + <CFLAG1 value="-Od -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -c -tWM -DBCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE"/> <PFLAGS value="-U..\..\lib\c6 -N0..\..\lib\c6 -N2..\..\lib\c6 -I..\..\source\include -$YD -$W -$O- -$A8 -v -JPHNE -M - -LUdesignide -DBCB;RELEASE + -LUdesignide -DBCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE "/> <RFLAGS value=""/> <AFLAGS value="/mx /w2 /zd"/> Modified: trunk/jcl/packages/c6/JclStackTraceViewerExpert.dof =================================================================== --- trunk/jcl/packages/c6/JclStackTraceViewerExpert.dof 2010-05-07 18:11:28 UTC (rev 3244) +++ trunk/jcl/packages/c6/JclStackTraceViewerExpert.dof 2010-05-07 18:47:01 UTC (rev 3245) @@ -1,5 +1,5 @@ [Directories] UnitOutputDir=..\..\lib\c6 SearchPath=..\..\source\include -Conditionals=BCB;RELEASE +Conditionals=BCB;WIN32;CONDITIONALEXPRESSIONS;VER140;RELEASE Modified: trunk/jcl/packages/c6/JclStackTraceViewerExpert.dpk =================================================================== --- trunk/jcl/packages/c6/JclStackT... [truncated message content] |
From: <ou...@us...> - 2010-05-07 18:11:36
|
Revision: 3244 http://jcl.svn.sourceforge.net/jcl/?rev=3244&view=rev Author: outchy Date: 2010-05-07 18:11:28 +0000 (Fri, 07 May 2010) Log Message: ----------- revert rev 3243 that was sent by error. Revision Links: -------------- http://jcl.svn.sourceforge.net/jcl/?rev=3243&view=rev Modified Paths: -------------- trunk/jcl/packages/xml/Jcl-R.xml Added Paths: ----------- 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 Modified: trunk/jcl/packages/xml/Jcl-R.xml =================================================================== --- trunk/jcl/packages/xml/Jcl-R.xml 2010-05-07 18:03:14 UTC (rev 3243) +++ trunk/jcl/packages/xml/Jcl-R.xml 2010-05-07 18:11:28 UTC (rev 3244) @@ -20,6 +20,14 @@ <File Name="..\..\source\common\JclCompression.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclCounter.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclDateTime.pas" Targets="all" Formname="" Condition=""/> + <File Name="..\..\source\common\JclEDI.pas" Targets="all" Formname="" Condition=""/> + <File Name="..\..\source\common\JclEDISEF.pas" Targets="all" Formname="" Condition=""/> + <File Name="..\..\source\common\JclEDITranslators.pas" Targets="all" Formname="" Condition=""/> + <File Name="..\..\source\common\JclEDIXML.pas" Targets="all" Formname="" Condition=""/> + <File Name="..\..\source\common\JclEDI_ANSIX12.pas" Targets="all" Formname="" Condition=""/> + <File Name="..\..\source\common\JclEDI_ANSIX12_Ext.pas" Targets="all" Formname="" Condition=""/> + <File Name="..\..\source\common\JclEDI_UNEDIFACT.pas" Targets="all" Formname="" Condition=""/> + <File Name="..\..\source\common\JclEDI_UNEDIFACT_Ext.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclExprEval.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclFileUtils.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclIniFiles.pas" Targets="all" Formname="" Condition=""/> Copied: trunk/jcl/source/common/JclEDI.pas (from rev 3242, trunk/jcl/source/common/JclEDI.pas) =================================================================== --- trunk/jcl/source/common/JclEDI.pas (rev 0) +++ trunk/jcl/source/common/JclEDI.pas 2010-05-07 18:11:28 UTC (rev 3244) @@ -0,0 +1,1690 @@ +{**************************************************************************************************} +{ } +{ 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 JclEDI.pas. } +{ } +{ The Initial Developer of the Original Code is Raymond Alexander. } +{ Portions created by Raymond Alexander are Copyright Raymond Alexander. All rights reserved. } +{ } +{ Contributor(s): } +{ Raymond Alexander (rayspostbox3), Robert Marquardt, Robert Rossmair, Petr Vones, } +{ Andreas Hausladen } +{ } +{**************************************************************************************************} +{ } +{ Contains classes to eaisly parse EDI documents and data. Variable delimiter detection allows } +{ parsing of the file without knowledge of the standards at an Interchange level. This enables } +{ parsing and construction of EDI documents with different delimiters. } +{ } +{ Unit owner: Raymond Alexander } +{ Date created: Before February, 1, 2001 } +{ Additional Info: } +{ E-Mail at RaysDelphiBox3 att hotmail dott com } +{ For latest EDI specific demos see http://sourceforge.net/projects/edisdk } +{ See home page for latest news & events and online help. } +{ } +{**************************************************************************************************} +{ } +{ Last modified: $Date:: $ } +{ Revision: $Rev:: $ } +{ Author: $Author:: $ } +{ } +{**************************************************************************************************} + +unit JclEDI; + +{$I jcl.inc} + +{$IFDEF EDI_WEAK_PACKAGE_UNITS} + {$IFDEF SUPPORTS_WEAKPACKAGEUNIT} + {$WEAKPACKAGEUNIT ON} + {$ENDIF SUPPORTS_WEAKPACKAGEUNIT} +{$ENDIF EDI_WEAK_PACKAGE_UNITS} +// Add the following directive in project options for debugging memory leaks. +// {$DEFINE ENABLE_EDI_DEBUGGING} + +interface + +uses + SysUtils, Classes, + {$IFNDEF EDI_WEAK_PACKAGE_UNITS} + {$IFDEF UNITVERSIONING} + JclUnitVersioning, + {$ENDIF UNITVERSIONING} + {$ENDIF ~EDI_WEAK_PACKAGE_UNITS} + JclBase, JclResources; + +const + NA_LoopId = 'N/A'; // Constant used for loop id comparison + ElementSpecId_Reserved = 'Reserved'; + + EDIDataType_Numeric = 'N'; + EDIDataType_Decimal = 'R'; + EDIDataType_Identifier = 'ID'; + EDIDataType_String = 'AN'; + EDIDataType_Date = 'DT'; + EDIDataType_Time = 'TM'; + EDIDataType_Binary = 'B'; + +{$IFDEF ENABLE_EDI_DEBUGGING} +var + Debug_EDIDataObjectsCreated: Int64; + Debug_EDIDataObjectsDestroyed: Int64; + Debug_EDIDataObjectListCreated: Int64; + Debug_EDIDataObjectListDestroyed: Int64; + Debug_EDIDataObjectListItemsCreated: Int64; + Debug_EDIDataObjectListItemsDestroyed: Int64; +{$ENDIF ENABLE_EDI_DEBUGGING} + +type + {$TYPEINFO ON} + TEDIObject = class(TObject); // Base EDI Object + {$IFNDEF TYPEINFO_ON} + {$TYPEINFO OFF} + {$ENDIF ~TYPEINFO_ON} + TEDIObjectArray = array of TEDIObject; + + EJclEDIError = class(EJclError) + public + constructor CreateID(ID: Cardinal); + constructor CreateIDFmt(ID: Cardinal; const Args: array of const); + end; + + // EDI Forward Class Declarations + TEDIDataObject = class; + TEDIDataObjectGroup = class; + TEDIObjectListItem = class; + TEDIObjectList = class; + TEDIDataObjectListItem = class; + TEDIDataObjectList = class; + + // EDI Delimiters Object + TEDIDelimiters = class(TEDIObject) + private + FSegmentDelimiter: string; + FElementDelimiter: string; + FSubElementSeperator: string; // Also known as: Component Data Seperator + FSegmentDelimiterLength: Integer; + FElementDelimiterLength: Integer; + FSubelementSeperatorLength: Integer; + procedure SetSD(const Delimiter: string); + procedure SetED(const Delimiter: string); + procedure SetSS(const Delimiter: string); + public + constructor Create; overload; + constructor Create(const SD, ED, SS: string); overload; + published + property SD: string read FSegmentDelimiter write SetSD; + property ED: string read FElementDelimiter write SetED; + property SS: string read FSubElementSeperator write SetSS; + property SDLen: Integer read FSegmentDelimiterLength; + property EDLen: Integer read FElementDelimiterLength; + property SSLen: Integer read FSubElementSeperatorLength; + end; + + // EDI Data Object + TEDIDataObjectType = + (ediUnknown, ediElement, ediCompositeElement, ediSegment, ediLoop, + ediTransactionSet, ediMessage, ediFunctionalGroup, + ediInterchangeControl, ediFile, ediCustom); + + TEDIDataObjectDataState = (ediCreated, ediAssembled, ediDisassembled); + + TCustomData = Pointer; // backward compatibility + + TEDIDataObject = class(TEDIObject) + private + procedure SetDelimiters(const Delimiters: TEDIDelimiters); + protected + FEDIDOT: TEDIDataObjectType; + FState: TEDIDataObjectDataState; + FData: string; + FLength: Integer; + FParent: TEDIDataObject; + FDelimiters: TEDIDelimiters; + FErrorLog: TStrings; + FSpecPointer: TEDIObject; + FCustomData1: TCustomData; + FCustomData2: TCustomData; + function GetData: string; + procedure SetData(const Data: string); + public + constructor Create(Parent: TEDIDataObject); reintroduce; + destructor Destroy; override; + function Assemble: string; virtual; abstract; + procedure Disassemble; virtual; abstract; + property SpecPointer: TEDIObject read FSpecPointer write FSpecPointer; + property CustomData1: TCustomData read FCustomData1 write FCustomData1; + property CustomData2: TCustomData read FCustomData2 write FCustomData2; + published + property State: TEDIDataObjectDataState read FState; + property Data: string read GetData write SetData; + property DataLength: Integer read FLength; + property Parent: TEDIDataObject read FParent write FParent; + property Delimiters: TEDIDelimiters read FDelimiters write SetDelimiters; + end; + + TEDIDataObjectArray = array of TEDIDataObject; + + // EDI Data Object Group + TEDIDataObjectGroup = class(TEDIDataObject) + protected + FGroupIsParent: Boolean; + FEDIDataObjects: TEDIDataObjectList; + FCreateObjectType: TEDIDataObjectType; + function GetCount: Integer; + function GetEDIDataObject(Index: Integer): TEDIDataObject; + procedure SetEDIDataObject(Index: Integer; EDIDataObject: TEDIDataObject); + function InternalAssignDelimiters: TEDIDelimiters; virtual; abstract; + function InternalCreateEDIDataObject: TEDIDataObject; virtual; abstract; + public + constructor Create(Parent: TEDIDataObject; EDIDataObjectCount: Integer = 0); reintroduce; + destructor Destroy; override; + function IndexIsValid(Index: Integer): Boolean; + // + function AddEDIDataObject: Integer; + function AppendEDIDataObject(EDIDataObject: TEDIDataObject): Integer; + function InsertEDIDataObject(InsertIndex: Integer): Integer; overload; + function InsertEDIDataObject(InsertIndex: Integer; EDIDataObject: + TEDIDataObject): Integer; overload; + procedure DeleteEDIDataObject(Index: Integer); overload; + procedure DeleteEDIDataObject(EDIDataObject: TEDIDataObject); overload; + // + function AddEDIDataObjects(Count: Integer): Integer; + function AppendEDIDataObjects(EDIDataObjectArray: TEDIDataObjectArray): Integer; + function InsertEDIDataObjects(InsertIndex, Count: Integer): Integer; overload; + function InsertEDIDataObjects(InsertIndex: Integer; + EDIDataObjectArray: TEDIDataObjectArray): Integer; overload; + procedure DeleteEDIDataObjects; overload; + procedure DeleteEDIDataObjects(Index, Count: Integer); overload; + // + function GetIndexPositionFromParent: Integer; virtual; + // + property EDIDataObject[Index: Integer]: TEDIDataObject read GetEDIDataObject + write SetEDIDataObject; default; + property EDIDataObjects: TEDIDataObjectList read FEDIDataObjects; + published + property CreateObjectType: TEDIDataObjectType read FCreateObjectType; + property EDIDataObjectCount: Integer read GetCount; + end; + + TEDIDataObjectGroupArray = array of TEDIDataObjectGroup; + + // EDI Data Object Linked List Header and Item classes + TEDIObjectListItem = class(TEDIObject) + protected + FParent: TEDIObjectList; + FPriorItem: TEDIObjectListItem; + FNextItem: TEDIObjectListItem; + FEDIObject: TEDIObject; + FItemIndex: Integer; + FName: string; + public + constructor Create(Parent: TEDIObjectList; PriorItem: TEDIObjectListItem; + EDIObject: TEDIObject = nil); + destructor Destroy; override; + function GetIndexPositionFromParent: Integer; + procedure FreeAndNilEDIDataObject; + published + property ItemIndex: Integer read FItemIndex write FItemIndex; + property PriorItem: TEDIObjectListItem read FPriorItem write FPriorItem; + property NextItem: TEDIObjectListItem read FNextItem write FNextItem; + property EDIObject: TEDIObject read FEDIObject write FEDIObject; + property Name: string read FName write FName; + property Parent: TEDIObjectList read FParent write FParent; + end; + + TEDIDataObjectListOptions = set of (loAutoUpdateIndexes); + + TEDIObjectList = class(TEDIObject) + private + function GetItem(Index: Integer): TEDIObjectListItem; + protected + FOwnsObjects: Boolean; + FCount: Integer; + FOptions: TEDIDataObjectListOptions; + FFirstItem: TEDIObjectListItem; + FLastItem: TEDIObjectListItem; + FCurrentItem: TEDIObjectListItem; + function GetEDIObject(Index: Integer): TEDIObject; + procedure SetEDIObject(Index: Integer; const Value: TEDIObject); + public + constructor Create(OwnsObjects: Boolean = True); + destructor Destroy; override; + procedure Add(Item: TEDIObjectListItem; Name: string = ''); overload; + function Add(EDIObject: TEDIObject; Name: string = ''): TEDIObjectListItem; overload; + function CreateListItem(PriorItem: TEDIObjectListItem; + EDIObject: TEDIObject = nil): TEDIObjectListItem; virtual; + function Find(Item: TEDIObjectListItem): TEDIObjectListItem; overload; + function Find(EDIObject: TEDIObject): TEDIObjectListItem; overload; + function FindEDIObject(EDIObject: TEDIObject): TEDIObject; + function Extract(Item: TEDIObjectListItem): TEDIObjectListItem; overload; virtual; + function Extract(EDIObject: TEDIObject): TEDIObject; overload; virtual; + procedure Remove(Item: TEDIObjectListItem); overload; + procedure Remove(EDIObject: TEDIObject); overload; + function Insert(Item, BeforeItem: TEDIObjectListItem): TEDIObjectListItem; overload; + function Insert(EDIObject, BeforeEDIObject: TEDIObject): TEDIObjectListItem; overload; + function Insert(BeforeItem: TEDIObjectListItem): TEDIObjectListItem; overload; + function Insert(BeforeEDIObject: TEDIObject): TEDIObjectListItem; overload; + procedure Clear; + function First(Index: Integer = 0): TEDIObjectListItem; virtual; + function Next: TEDIObjectListItem; virtual; + function Prior: TEDIObjectListItem; virtual; + function Last: TEDIObjectListItem; virtual; + procedure UpdateCount; + // ...ByName procedures and functions + function FindItemByName(Name: string; + StartItem: TEDIObjectListItem = nil): TEDIObjectListItem; virtual; + function ReturnListItemsByName(Name: string): TEDIObjectList; virtual; + // Dynamic Array Emulation + function IndexOf(Item: TEDIObjectListItem): Integer; overload; + function IndexOf(EDIObject: TEDIObject): Integer; overload; + function IndexIsValid(Index: Integer): Boolean; + procedure Insert(InsertIndex: Integer; EDIObject: TEDIObject); overload; + procedure Delete(Index: Integer); overload; + procedure Delete(EDIObject: TEDIObject); overload; + procedure UpdateIndexes(StartItem: TEDIObjectListItem = nil); + // + property Item[Index: Integer]: TEDIObjectListItem read GetItem; + property EDIObject[Index: Integer]: TEDIObject read GetEDIObject + write SetEDIObject; default; + published + property Count: Integer read FCount; + property OwnsObjects: Boolean read FOwnsObjects write FOwnsObjects; + property Options: TEDIDataObjectListOptions read FOptions write FOptions; + property CurrentItem: TEDIObjectListItem read FCurrentItem; + end; + + TEDIDataObjectListItem = class(TEDIObjectListItem) + private + function GetEDIDataObject: TEDIDataObject; + procedure SetEDIDataObject(const Value: TEDIDataObject); + published + property EDIDataObject: TEDIDataObject read GetEDIDataObject write SetEDIDataObject; + end; + + TEDIDataObjectList = class(TEDIObjectList) + private + function GetEDIDataObject(Index: Integer): TEDIDataObject; + procedure SetEDIDataObject(Index: Integer; const Value: TEDIDataObject); + public + function CreateListItem(PriorItem: TEDIObjectListItem; + EDIObject: TEDIObject = nil): TEDIObjectListItem; override; + property EDIDataObject[Index: Integer]: TEDIDataObject read GetEDIDataObject + write SetEDIDataObject; default; + end; + + // EDI Loop Stack + TEDILoopStackRecord = record + SegmentId: string; + SpecStartIndex: Integer; + OwnerLoopId: string; + ParentLoopId: string; + EDIObject: TEDIObject; + EDISpecObject: TEDIObject; + end; + + TEDILoopStackArray = array of TEDILoopStackRecord; + + TEDILoopStackFlags = (ediAltStackPointer, ediStackResized, ediLoopRepeated); + + TEDILoopStackFlagSet = set of TEDILoopStackFlags; + + TEDILoopStackOnAddLoopEvent = procedure(StackRecord: TEDILoopStackRecord; + SegmentId, OwnerLoopId, ParentLoopId: string; var EDIObject: TEDIObject) of object; + + TEDILoopStack = class(TEDIObject) + private + function GetSize: Integer; + protected + FStack: TEDILoopStackArray; + FFlags: TEDILoopStackFlagSet; + FCheckAssignedEDIObject: Boolean; + FOnAddLoop: TEDILoopStackOnAddLoopEvent; + procedure DoAddLoop(StackRecord: TEDILoopStackRecord; + SegmentId, OwnerLoopId, ParentLoopId: string; var EDIObject: TEDIObject); + public + constructor Create; + destructor Destroy; override; + // Basic Stack Routines + function Peek: TEDILoopStackRecord; overload; + function Peek(Index: Integer): TEDILoopStackRecord; overload; + procedure Pop(Index: Integer); + function Push(SegmentId, OwnerLoopId, ParentLoopId: string; StartIndex: Integer; + EDIObject: TEDIObject): Integer; + // Extended Stack Routines + function GetSafeStackIndex(Index: Integer): Integer; + function SetStackPointer(OwnerLoopId, ParentLoopId: string): Integer; + procedure UpdateStackObject(EDIObject: TEDIObject); + procedure UpdateStackData(SegmentId, OwnerLoopId, ParentLoopId: string; StartIndex: Integer; + EDIObject: TEDIObject); + // Extended Stack Routines + function ValidateLoopStack(SegmentId, OwnerLoopId, ParentLoopId: string; StartIndex: Integer; + EDIObject: TEDIObject): TEDILoopStackRecord; + function Debug: string; + // + property Stack: TEDILoopStackArray read FStack; + published + property Size: Integer read GetSize; + property Flags: TEDILoopStackFlagSet read FFlags write FFlags; + property OnAddLoop: TEDILoopStackOnAddLoopEvent read FOnAddLoop write FOnAddLoop; + end; + +// Other +// Compatibility functions +function StringRemove(const S, Pattern: string; Flags: TReplaceFlags): string; +function StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string; + +const + EDIErrors: array [1..58] of PResStringRec = + ( @RsEDIError001, @RsEDIError002, @RsEDIError003, @RsEDIError004, @RsEDIError005, @RsEDIError006, @RsEDIError007, + @RsEDIError008, @RsEDIError009, @RsEDIError010, @RsEDIError011, @RsEDIError012, @RsEDIError013, @RsEDIError014, + @RsEDIError015, @RsEDIError016, @RsEDIError017, @RsEDIError018, @RsEDIError019, @RsEDIError020, @RsEDIError021, + @RsEDIError022, @RsEDIError023, @RsEDIError024, @RsEDIError025, @RsEDIError026, @RsEDIError027, @RsEDIError028, + @RsEDIError029, @RsEDIError030, @RsEDIError031, @RsEDIError032, @RsEDIError033, @RsEDIError034, @RsEDIError035, + @RsEDIError036, @RsEDIError037, @RsEDIError038, @RsEDIError039, @RsEDIError040, @RsEDIError041, @RsEDIError042, + @RsEDIError043, @RsEDIError044, @RsEDIError045, @RsEDIError046, @RsEDIError047, @RsEDIError048, @RsEDIError049, + @RsEDIError050, @RsEDIError051, @RsEDIError052, @RsEDIError053, @RsEDIError054, @RsEDIError055, @RsEDIError056, + @RsEDIError057, @RsEDIError058 ); + +{$IFNDEF EDI_WEAK_PACKAGE_UNITS} +{$IFDEF UNITVERSIONING} +const + UnitVersioning: TUnitVersionInfo = ( + RCSfile: '$URL$'; + Revision: '$Revision$'; + Date: '$Date$'; + LogPath: 'JCL\source\common'; + Extra: ''; + Data: nil + ); +{$ENDIF UNITVERSIONING} +{$ENDIF ~EDI_WEAK_PACKAGE_UNITS} + +implementation + +uses + JclStrings; + +// Other +function StringRemove(const S, Pattern: string; Flags: TReplaceFlags): string; +var + SearchPattern: string; + I, Offset, SearchPatternLength: Integer; +begin + if rfIgnoreCase in Flags then + begin + Result := AnsiUpperCase(S); + SearchPattern := AnsiUpperCase(Pattern); + end + else + begin + Result := S; + SearchPattern := Pattern; + end; + SearchPatternLength := Length(SearchPattern); + Result := S; + + I := 1; + Offset := 1; + while I <= Length(Result) do + begin + if SearchPatternLength = 1 then + begin + while Result[I] = SearchPattern[1] do + begin + Offset := Offset + SearchPatternLength; + if not (rfReplaceAll in Flags) then + Break; + Inc(I); + end; + end + else // SearchPatternLength > 1 + begin + while Copy(Result, Offset, SearchPatternLength) = SearchPattern do + begin + Offset := Offset + SearchPatternLength; + if not (rfReplaceAll in Flags) then + Break; + end; + end; + + if Offset <= Length(Result) then + Result[I] := S[Offset] + else + begin + Result[I] := #0; + SetLength(Result, I-1); + Break; + end; + + if not (rfReplaceAll in Flags) then + Break; + + Inc(I); + Inc(Offset); + end; +end; + +function StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string; +var + SearchString, SearchPattern: string; + I, SearchIndex, ReplaceIndex: Integer; + SearchPatternLength, ReplacePatternLength: Integer; + SearchResult, ReplaceCount: Integer; +begin + Result := ''; + // Handle Case Sensitivity + if rfIgnoreCase in Flags then + begin + SearchString := AnsiUpperCase(S); + SearchPattern := AnsiUpperCase(OldPattern); + end + else + begin + SearchString := S; + SearchPattern := OldPattern; + end; + SearchPatternLength := Length(OldPattern); + ReplacePatternLength := Length(NewPattern); + // Calculate length of result string + ReplaceCount := 0; + SearchResult := StrSearch(SearchPattern, SearchString, 1); + if rfReplaceAll in Flags then + while SearchResult <> 0 do + begin + Inc(SearchResult, SearchPatternLength); // Increment match position, by length of match + Inc(ReplaceCount); + SearchResult := StrSearch(SearchPattern, SearchString, SearchResult); + end + else + if SearchResult <> 0 then + Inc(ReplaceCount); + SetLength(Result, Length(S) + ((ReplacePatternLength - SearchPatternLength) * ReplaceCount)); + // Copy the characters by looping through the result and source at the same time + ReplaceCount := 0; + ReplaceIndex := 1; + SearchIndex := 1; + // Loop while the indexes are still in range + while (ReplaceIndex <= Length(Result)) and (SearchIndex <= Length(SearchString)) do + begin + // Enter algorithm if replacing a pattern or there have been no replacements yet + if (rfReplaceAll in Flags) or ((not (rfReplaceAll in Flags)) and (ReplaceCount = 0)) then + // Replace the pattern (including repeating patterns) + while Copy(SearchString, SearchIndex, SearchPatternLength) = SearchPattern do + begin + // Move forward in the search string + SearchIndex := SearchIndex + Length(SearchPattern); + // Replace an old pattern by writing the new pattern to the result + I := 1; + while (ReplaceIndex <= Length(Result)) and (I <= ReplacePatternLength) do + begin + Result[ReplaceIndex] := NewPattern[I]; + Inc(I); + Inc(ReplaceIndex); + end; + // + Inc(ReplaceCount); + // If only making one replacement then break + if not (rfReplaceAll in Flags) then + Break; + end; + + // Copy character + if (ReplaceIndex <= Length(Result)) and (SearchIndex <= Length(SearchString)) then + Result[ReplaceIndex] := S[SearchIndex]; + + // Set indexes for next copy + Inc(SearchIndex); + Inc(ReplaceIndex); + end; +end; + +//=== { EJclEDIError } ======================================================= + +constructor EJclEDIError.CreateID(ID: Cardinal); +begin + CreateRes(EDIErrors[ID]); +end; + +constructor EJclEDIError.CreateIDFmt(ID: Cardinal; const Args: array of const); +begin + CreateResFmt(EDIErrors[ID], Args); +end; + +//=== { TEDIDelimiters } ===================================================== + +constructor TEDIDelimiters.Create; +begin + Create('~', '*', '>'); +end; + +constructor TEDIDelimiters.Create(const SD, ED, SS: string); +begin + inherited Create; + SetSD(SD); + SetED(ED); + SetSS(SS); +end; + +procedure TEDIDelimiters.SetED(const Delimiter: string); +begin + FElementDelimiter := Delimiter; + FElementDelimiterLength := Length(FElementDelimiter); +end; + +procedure TEDIDelimiters.SetSD(const Delimiter: string); +begin + FSegmentDelimiter := Delimiter; + FSegmentDelimiterLength := Length(FSegmentDelimiter); +end; + +procedure TEDIDelimiters.SetSS(const Delimiter: string); +begin + FSubelementSeperator := Delimiter; + FSubelementSeperatorLength := Length(FSubElementSeperator); +end; + +//=== { TEDIDataObject } ===================================================== + +constructor TEDIDataObject.Create(Parent: TEDIDataObject); +begin + inherited Create; + FState := ediCreated; + FEDIDOT := ediUnknown; + FData := ''; + FLength := 0; + FParent := Parent; + FDelimiters := nil; + FSpecPointer := nil; + FCustomData1 := nil; + FCustomData2 := nil; + {$IFDEF ENABLE_EDI_DEBUGGING} + Inc(Debug_EDIDataObjectsCreated); + {$ENDIF ENABLE_EDI_DEBUGGING} +end; + +destructor TEDIDataObject.Destroy; +begin + {$IFDEF ENABLE_EDI_DEBUGGING} + Inc(Debug_EDIDataObjectsDestroyed); + {$ENDIF ENABLE_EDI_DEBUGGING} + if not Assigned(FParent) then + FDelimiters.Free; + FDelimiters := nil; + FSpecPointer := nil; + FCustomData1 := nil; + FCustomData2 := nil; + inherited Destroy; +end; + +function TEDIDataObject.GetData: string; +begin + Result := FData; +end; + +procedure TEDIDataObject.SetData(const Data: string); +begin + FData := Data; + FLength := Length(FData); +end; + +procedure TEDIDataObject.SetDelimiters(const Delimiters: TEDIDelimiters); +begin + if not Assigned(FParent) then + FreeAndNil(FDelimiters); + FDelimiters := Delimiters; +end; + +//=== { TEDIDataObjectGroup } ================================================ + +constructor TEDIDataObjectGroup.Create(Parent: TEDIDataObject; EDIDataObjectCount: Integer); +begin + inherited Create(Parent); + FCreateObjectType := ediUnknown; + FGroupIsParent := True; + FEDIDataObjects := TEDIDataObjectList.Create; + if EDIDataObjectCount > 0 then + AddEDIDataObjects(EDIDataObjectCount); +end; + +function TEDIDataObjectGroup.AddEDIDataObjects(Count: Integer): Integer; +var + I: Integer; +begin + Result := FEDIDataObjects.Count; // Return position of 1st + for I := 1 to Count do + FEDIDataObjects.Add(InternalCreateEDIDataObject); +end; + +function TEDIDataObjectGroup.AddEDIDataObject: Integer; +begin + Result := FEDIDataObjects.Count; // Return position + FEDIDataObjects.Add(InternalCreateEDIDataObject); +end; + +function TEDIDataObjectGroup.AppendEDIDataObject(EDIDataObject: TEDIDataObject): Integer; +begin + Result := FEDIDataObjects.Count; // Return position + FEDIDataObjects.Add(EDIDataObject); + if FGroupIsParent then + EDIDataObject.Parent := Self; +end; + +function TEDIDataObjectGroup.AppendEDIDataObjects(EDIDataObjectArray: TEDIDataObjectArray): Integer; +var + I: Integer; +begin + Result := FEDIDataObjects.Count; // Return position of 1st + for I := Low(EDIDataObjectArray) to High(EDIDataObjectArray) do + begin + FEDIDataObjects.Add(EDIDataObjectArray[I]); + if FGroupIsParent then + EDIDataObjectArray[I].Parent := Self; + end; +end; + +procedure TEDIDataObjectGroup.DeleteEDIDataObject(EDIDataObject: TEDIDataObject); +begin + if loAutoUpdateIndexes in FEDIDataObjects.Options then + FEDIDataObjects.Delete(EDIDataObject) + else + FEDIDataObjects.Remove(EDIDataObject); +end; + +procedure TEDIDataObjectGroup.DeleteEDIDataObject(Index: Integer); +begin + if IndexIsValid(Index) then + FEDIDataObjects.Delete(Index) + else + raise EJclEDIError.CreateIDFmt(10, [Self.ClassName, IntToStr(Index)]); +end; + +procedure TEDIDataObjectGroup.DeleteEDIDataObjects; +begin + FEDIDataObjects.Clear; +end; + +procedure TEDIDataObjectGroup.DeleteEDIDataObjects(Index, Count: Integer); +var + I: Integer; +begin + if IndexIsValid(Index) then + begin + FEDIDataObjects.Options := FEDIDataObjects.Options - [loAutoUpdateIndexes]; + try + for I := 1 to Count do + DeleteEDIDataObject(Index); + finally + FEDIDataObjects.Options := FEDIDataObjects.Options + [loAutoUpdateIndexes]; + end; + end + else + raise EJclEDIError.CreateIDFmt(11, [IntToStr(Index)]); +end; + +destructor TEDIDataObjectGroup.Destroy; +begin + DeleteEDIDataObjects; + FreeAndNil(FEDIDataObjects); + inherited Destroy; +end; + +function TEDIDataObjectGroup.GetEDIDataObject(Index: Integer): TEDIDataObject; +begin + if FEDIDataObjects.Count > 0 then + if Index >= 0 then + if Index <= FEDIDataObjects.Count - 1 then + begin + if not Assigned(FEDIDataObjects[Index]) then + raise EJclEDIError.CreateIDFmt(6, [Self.ClassName, IntToStr(Index)]); + Result := FEDIDataObjects[Index]; + end + else + raise EJclEDIError.CreateIDFmt(5, [Self.ClassName, IntToStr(Index)]) + else + raise EJclEDIError.CreateIDFmt(4, [Self.ClassName, IntToStr(Index)]) + else + raise EJclEDIError.CreateIDFmt(3, [Self.ClassName, IntToStr(Index)]); +end; + +function TEDIDataObjectGroup.IndexIsValid(Index: Integer): Boolean; +begin + Result := FEDIDataObjects.IndexIsValid(Index); +end; + +function TEDIDataObjectGroup.InsertEDIDataObject(InsertIndex: Integer): Integer; +begin + Result := InsertIndex; // Return position + if IndexIsValid(InsertIndex) then + FEDIDataObjects.Insert(InsertIndex, InternalCreateEDIDataObject) + else + Result := AddEDIDataObject; +end; + +function TEDIDataObjectGroup.InsertEDIDataObject(InsertIndex: Integer; + EDIDataObject: TEDIDataObject): Integer; +begin + Result := InsertIndex; // Return position + if IndexIsValid(InsertIndex) then + begin + FEDIDataObjects.Insert(InsertIndex, EDIDataObject); + if FGroupIsParent then + EDIDataObject.Parent := Self; + end + else + Result := AppendEDIDataObject(EDIDataObject); +end; + +function TEDIDataObjectGroup.InsertEDIDataObjects(InsertIndex: Integer; + EDIDataObjectArray: TEDIDataObjectArray): Integer; +var + I: Integer; +begin + Result := InsertIndex; // Return position of 1st + if IndexIsValid(InsertIndex) then + begin + for I := High(EDIDataObjectArray) downto Low(EDIDataObjectArray) do + begin + FEDIDataObjects.Insert(InsertIndex, EDIDataObjectArray[I]); + if FGroupIsParent then + EDIDataObjectArray[I].Parent := Self; + end; + end + else + Result := AppendEDIDataObjects(EDIDataObjectArray); +end; + +function TEDIDataObjectGroup.InsertEDIDataObjects(InsertIndex, Count: Integer): Integer; +var + I: Integer; +begin + Result := InsertIndex; // Return position of 1st + if IndexIsValid(InsertIndex) then + begin + for I := 1 to Count do + FEDIDataObjects.Insert(InsertIndex, InternalCreateEDIDataObject); + end + else + Result := AddEDIDataObjects(Count); +end; + +procedure TEDIDataObjectGroup.SetEDIDataObject(Index: Integer; EDIDataObject: TEDIDataObject); +begin + if FEDIDataObjects.Count > 0 then + if Index >= 0 then + if Index <= FEDIDataObjects.Count - 1 then + begin + FEDIDataObjects.Item[Index].FreeAndNilEDIDataObject; + FEDIDataObjects[Index] := EDIDataObject; + if FGroupIsParent then + FEDIDataObjects[Index].Parent := Self; + end + else + raise EJclEDIError.CreateIDFmt(9, [Self.ClassName, IntToStr(Index)]) + else + raise EJclEDIError.CreateIDFmt(8, [Self.ClassName, IntToStr(Index)]) + else + raise EJclEDIError.CreateIDFmt(7, [Self.ClassName, IntToStr(Index)]); +end; + +function TEDIDataObjectGroup.GetIndexPositionFromParent: Integer; +var + I: Integer; + ParentGroup: TEDIDataObjectGroup; +begin + Result := -1; + if Assigned(Parent) and (Parent is TEDIDataObjectGroup) then + begin + ParentGroup := TEDIDataObjectGroup(Parent); + for I := 0 to ParentGroup.EDIDataObjectCount - 1 do + if ParentGroup.EDIDataObject[I] = Self then + begin + Result := I; + Break; + end; + end; // if +end; + +function TEDIDataObjectGroup.GetCount: Integer; +begin + Result := FEDIDataObjects.Count; +end; + +//=== { TEDIObjectListItem } ================================================= + +constructor TEDIObjectListItem.Create(Parent: TEDIObjectList; + PriorItem: TEDIObjectListItem; EDIObject: TEDIObject = nil); +begin + inherited Create; + FName := ''; + FParent := Parent; + FItemIndex := 0; + FEDIObject := EDIObject; + FPriorItem := PriorItem; + FNextItem := nil; + if FPriorItem <> nil then + FItemIndex := FPriorItem.ItemIndex + 1; + {$IFDEF ENABLE_EDI_DEBUGGING} + Inc(Debug_EDIDataObjectListItemsCreated); + {$ENDIF ENABLE_EDI_DEBUGGING} +end; + +destructor TEDIObjectListItem.Destroy; +begin + {$IFDEF ENABLE_EDI_DEBUGGING} + Inc(Debug_EDIDataObjectListItemsDestroyed); + {$ENDIF ENABLE_EDI_DEBUGGING} + FPriorItem := nil; + FNextItem := nil; + if FParent.OwnsObjects then + FreeAndNilEDIDataObject; + FEDIObject := nil; + FParent := nil; + inherited Destroy; +end; + +procedure TEDIObjectListItem.FreeAndNilEDIDataObject; +begin + FreeAndNil(FEDIObject); +end; + +function TEDIObjectListItem.GetIndexPositionFromParent: Integer; +begin + Result := FParent.IndexOf(Self); +end; + +//=== { TEDIObjectList } ===================================================== + +constructor TEDIObjectList.Create(OwnsObjects: Boolean = True); +begin + inherited Create; + FOwnsObjects := OwnsObjects; + FFirstItem := nil; + FLastItem := nil; + FCurrentItem := nil; + FCount := 0; + FOptions := [loAutoUpdateIndexes]; + {$IFDEF ENABLE_EDI_DEBUGGING} + Inc(Debug_EDIDataObjectListCreated); + {$ENDIF ENABLE_EDI_DEBUGGING} +end; + +destructor TEDIObjectList.Destroy; +begin + {$IFDEF ENABLE_EDI_DEBUGGING} + Inc(Debug_EDIDataObjectListDestroyed); + {$ENDIF ENABLE_EDI_DEBUGGING} + Clear; + inherited Destroy; +end; + +procedure TEDIObjectList.Clear; +var + ListItem: TEDIObjectListItem; + TempItem: TEDIObjectListItem; +begin + ListItem := FFirstItem; + while ListItem <> nil do + begin + TempItem := ListItem; + ListItem := ListItem.NextItem; + TempItem.Free; + end; + FFirstItem := nil; + FLastItem := nil; + FCurrentItem := nil; + FCount := 0; +end; + +function TEDIObjectList.First(Index: Integer): TEDIObjectListItem; +begin + if Index = 0 then + Result := FFirstItem + else + Result := GetItem(Index); + FCurrentItem := Result; +end; + +function TEDIObjectList.Last: TEDIObjectListItem; +begin + FCurrentItem := FLastItem; + Result := FCurrentItem; +end; + +function TEDIObjectList.Next: TEDIObjectListItem; +begin + FCurrentItem := FCurrentItem.NextItem; + Result := FCurrentItem; +end; + +function TEDIObjectList.Prior: TEDIObjectListItem; +begin + FCurrentItem := FCurrentItem.PriorItem; + Result := FCurrentItem; +end; + +function TEDIObjectList.Add(EDIObject: TEDIObject; Name: string): TEDIObjectListItem; +begin + Result := CreateListItem(FLastItem, EDIObject); + Result.Name := Name; + if FLastItem <> nil then + FLastItem.NextItem := Result; + if FFirstItem = nil then + FFirstItem := Result; + FLastItem := Result; + FCurrentItem := Result; + Inc(FCount); +end; + +function TEDIObjectList.FindItemByName(Name: string; + StartItem: TEDIObjectListItem): TEDIObjectListItem; +var + ListItem: TEDIObjectListItem; +begin + Result := nil; + if StartItem <> nil then + ListItem := StartItem + else + ListItem := First; + while ListItem <> nil do + begin + if ListItem.Name = Name then + begin + Result := ListItem; + Break; + end; + ListItem := Next; + end; +end; + +procedure TEDIObjectList.Insert(InsertIndex: Integer; EDIObject: TEDIObject); +var + ListItem: TEDIObjectListItem; +begin + FCurrentItem := GetItem(InsertIndex); + if FCurrentItem <> nil then + begin + //Link new item + ListItem := CreateListItem(FCurrentItem.PriorItem); + ListItem.NextItem := FCurrentItem; + ListItem.EDIObject := EDIObject; + //Relink current item + if FCurrentItem.PriorItem <> nil then + FCurrentItem.PriorItem.NextItem := ListItem + else + FFirstItem := ListItem; + FCurrentItem.PriorItem := ListItem; + // + FCurrentItem := ListItem; + Inc(FCount); + // Update the indexes starting at the current item. + if loAutoUpdateIndexes in FOptions then + UpdateIndexes(FCurrentItem); //Pass nil to force update of all items + end + else + Add(EDIObject); +end; + +function TEDIObjectList.GetItem(Index: Integer): TEDIObjectListItem; +var + I: Integer; + ListItem: TEDIObjectListItem; +begin + Result := nil; + if FCurrentItem <> nil then // Attempt to search from the current item. + begin + if Index = FCurrentItem.ItemIndex then // The index already points to the current item. + Result := FCurrentItem + else + if Index > FCurrentItem.ItemIndex then // Search forward in the list. + begin + I := FCurrentItem.ItemIndex - 1; + ListItem := FCurrentItem; + while ListItem <> nil do + begin + Inc(I); + if I = Index then + begin + Result := ListItem; + Break; + end; + ListItem := ListItem.NextItem; + end; + FCurrentItem := Result; + end + else // if Index < FCurrentItem.ItemIndex then // Search backward in the list. + begin + I := FCurrentItem.ItemIndex + 1; + ListItem := FCurrentItem; + while ListItem <> nil do + begin + Dec(I); + if I = Index then + begin + Result := ListItem; + Break; + end; + ListItem := ListItem.PriorItem; + end; + FCurrentItem := Result; + end; + end + else // No current item was assigned so search from the beginning of the structure. + begin + I := -1; + FCurrentItem := FFirstItem; + ListItem := FFirstItem; + while ListItem <> nil do + begin + Inc(I); + if I = Index then + begin + Result := ListItem; + Break; + end; + ListItem := ListItem.NextItem; + end; + FCurrentItem := Result; + end; +end; + +procedure TEDIObjectList.Delete(Index: Integer); +var + ListItem: TEDIObjectListItem; +begin + ListItem := GetItem(Index); + if ListItem <> nil then + begin + Remove(ListItem); + // Update the indexes starting at the current item. + if loAutoUpdateIndexes in FOptions then + UpdateIndexes(FCurrentItem.PriorItem); //Pass nil to force update of all items + end; +end; + +procedure TEDIObjectList.Delete(EDIObject: TEDIObject); +begin + Remove(EDIObject); + // Update the indexes starting at the current item. + if loAutoUpdateIndexes in FOptions then + UpdateIndexes(nil); //Pass nil to force update of all items +end; + +procedure TEDIObjectList.UpdateIndexes(StartItem: TEDIObjectListItem = nil); +var + I: Integer; + ListItem: TEDIObjectListItem; +begin + if StartItem <> nil then + begin + ListItem := StartItem; + I := StartItem.ItemIndex - 1; + end + else + begin + ListItem := FFirstItem; + I := -1; + end; + while ListItem <> nil do + begin + Inc(I); + ListItem.ItemIndex := I; + ListItem := ListItem.NextItem; + end; +end; + +procedure TEDIObjectList.UpdateCount; +var + ListItem: TEDIObjectListItem; +begin + FCount := 0; + ListItem := FFirstItem; + while ListItem <> nil do + begin + ListItem := ListItem.NextItem; + Inc(FCount); + end; +end; + +procedure TEDIObjectList.Remove(EDIObject: TEDIObject); +var + ListItem: TEDIObjectListItem; +begin + ListItem := Find(EDIObject); + if ListItem <> nil then + begin + // Remove the item from the list + ListItem := Extract(ListItem); + // Free the list item + FreeAndNil(ListItem); + end; +end; + +function TEDIObjectList.Extract(EDIObject: TEDIObject): TEDIObject; +var + ListItem: TEDIObjectListItem; +begin + Result := nil; + ListItem := Find(EDIObject); + if ListItem <> nil then + begin + // Extract the EDI Data Object + Result := ListItem.EDIObject; + ListItem.EDIObject := nil; + // Remove the item from the list + ListItem := Extract(ListItem); + // Free the list item + FreeAndNil(ListItem); + end; +end; + +function TEDIObjectList.IndexOf(EDIObject: TEDIObject): Integer; +var + I: Integer; + ListItem: TEDIObjectListItem; +begin + Result := -1; + I := 0; + ListItem := FFirstItem; + while ListItem <> nil do + begin + if ListItem.EDIObject = EDIObject then + begin + FCurrentItem := ListItem; + FCurrentItem.ItemIndex := I; + Result := I; + Break; + end; + ListItem := ListItem.NextItem; + Inc(I); + end; +end; + +function TEDIObjectList.GetEDIObject(Index: Integer): TEDIObject; +var + ListItem: TEDIObjectListItem; +begin + Result := nil; + ListItem := GetItem(Index); + if ListItem <> nil then + Result := ListItem.EDIObject; +end; + +procedure TEDIObjectList.SetEDIObject(Index: Integer; const Value: TEDIObject); +var + ListItem: TEDIObjectListItem; +begin + ListItem := GetItem(Index); + if ListItem <> nil then + ListItem.EDIObject := Value; +end; + +function TEDIObjectList.ReturnListItemsByName(Name: string): TEDIObjectList; +var + ListItem: TEDIObjectListItem; +begin + Result := TEDIObjectList.Create(False); + ListItem := First; + while ListItem <> nil do + begin + if ListItem.Name = Name then + Result.Add(ListItem.EDIObject, ListItem.Name); + ListItem := Next; + end; //while +end; + +function TEDIObjectList.IndexOf(Item: TEDIObjectListItem): Integer; +var + I: Integer; + ListItem: TEDIObjectListItem; +begin + Result := -1; + I := 0; + ListItem := FFirstItem; + while ListItem <> nil do + begin + if ListItem = Item then + begin + FCurrentItem := ListItem; + FCurrentItem.ItemIndex := I; + Result := I; + Break; + end; + ListItem := ListItem.NextItem; + Inc(I); + end; +end; + +procedure TEDIObjectList.Remove(Item: TEDIObjectListItem); +begin + // Remove the item from the list + Item := Extract(Item); + // Free the list item + FreeAndNil(Item); +end; + +function TEDIObjectList.Extract(Item: TEDIObjectListItem): TEDIObjectListItem; +begin + Result := Item; + // Set current item + if Item.NextItem <> nil then + FCurrentItem := Item.NextItem + else + FCurrentItem := Item.PriorItem; + // Extract the item and relink existing items. + if Item.NextItem <> nil then + Item.NextItem.PriorItem := Item.PriorItem; + if Item.PriorItem <> nil then + Item.PriorItem.NextItem := Item.NextItem; + if Item = FFirstItem then + FFirstItem := Item.NextItem; + if Item = FLastItem then + FLastItem := Item.PriorItem; + // Update the count + Dec(FCount); +end; + +procedure TEDIObjectList.Add(Item: TEDIObjectListItem; Name: string); +begin + Item.Parent := Self; + Item.Name := Name; + Item.NextItem := nil; + Item.PriorItem := nil; + if FLastItem <> nil then + begin + Item.PriorItem := FLastItem; + FLastItem.NextItem := Item; + end; + if FFirstItem = nil then + FFirstItem := Item; + FLastItem := Item; + FCurrentItem := Item; + Inc(FCount); +end; + +function TEDIObjectList.FindEDIObject(EDIObject: TEDIObject): TEDIObject; +var + ListItem: TEDIObjectListItem; +begin + Result := nil; + ListItem := FFirstItem; + while ListItem <> nil do + begin + if ListItem.EDIObject = EDIObject then + begin + FCurrentItem := ListItem; + Result := ListItem.EDIObject; + Break; + end; + ListItem := ListItem.NextItem; + end; +end; + +function TEDIObjectList.Find(Item: TEDIObjectListItem): TEDIObjectListItem; +var + ListItem: TEDIObjectListItem; +begin + Result := nil; + ListItem := FFirstItem; + while ListItem <> nil do + begin + if ListItem = Item then + begin + FCurrentItem := ListItem; + Result := ListItem; + Break; + end; + ListItem := ListItem.NextItem; + end; +end; + +function TEDIObjectList.Find(EDIObject: TEDIObject): TEDIObjectListItem; +var + ListItem: TEDIObjectListItem; +begin + Result := nil; + ListItem := FFirstItem; + while ListItem <> nil do + begin + if ListItem.EDIObject = EDIObject then + begin + FCurrentItem := ListItem; + Result := ListItem; + Break; + end; + ListItem := ListItem.NextItem; + end; +end; + +function TEDIObjectList.IndexIsValid(Index: Integer): Boolean; +begin + Result := False; + if (FCount > 0) and (Index >= 0) and (Index <= FCount - 1) then + Result := True; +end; + +function TEDIObjectList.Insert(Item, BeforeItem: TEDIObjectListItem): TEDIObjectListItem; +begin + Result := Item; + if Result = nil then + Result := CreateListItem(BeforeItem, nil); + Result.Parent := Self; + Result.PriorItem := nil; + Result.NextItem := nil; + if BeforeItem <> nil then // Insert item + begin + Result.PriorItem := BeforeItem.PriorItem; + BeforeItem.PriorItem := Result; + if Result.PriorItem <> nil then + Result.PriorItem.NextItem := Result; + Result.NextItem := BeforeItem; + end + else + if FFirstItem <> nil then // Insert as first item + begin + FFirstItem.PriorItem := Result; + Result.NextItem := FFirstItem; + FFirstItem := Result; + end + else + Add(Result); // Add as first item + FCurrentItem := Result; + Inc(FCount); +end; + +function TEDIObjectList.Insert(EDIObject, BeforeEDIObject: TEDIObject): TEDIObjectListItem; +var + BeforeItem: TEDIObjectListItem; +begin + BeforeItem := Find(BeforeEDIObject); + Result := CreateListItem(BeforeItem, EDIObject); + Insert(Result, BeforeItem); +end; + +function TEDIObjectList.Insert(BeforeItem: TEDIObjectListItem): TEDIObjectListItem; +begin + Result := CreateListItem(BeforeItem, nil); + Insert(Result, BeforeItem); +end; + +function TEDIObjectList.Insert(BeforeEDIObject: TEDIObject): TEDIObjectListItem; +begin + Result := Insert(nil, BeforeEDIObject); +end; + +//=== { TEDIDataObjectListItem } ============================================= + +function TEDIDataObjectListItem.GetEDIDataObject: TEDIDataObject; +begin + Result := TEDIDataObject(FEDIObject); +end; + +procedure TEDIDataObjectListItem.SetEDIDataObject(const Value: TEDIDataObject); +begin + FEDIObject := Value; +end; + +//=== { TEDIDataObjectList } ================================================= + +function TEDIDataObjectList.CreateListItem(PriorItem: TEDIObjectListItem; + EDIObject: TEDIObject): TEDIObjectListItem; +begin + Result := TEDIDataObjectListItem.Create(Self, PriorItem, EDIObject); +end; + +function TEDIDataObjectList.GetEDIDataObject(Index: Integer): TEDIDataObject; +begin + Result := TEDIDataObject(GetEDIObject(Index)); +end; + +procedure TEDIDataObjectList.SetEDIDataObject(Index: Integer; const Value: TEDIDataObject); +begin + SetEDIObject(Index, Value); +end; + +function TEDIObjectList.CreateListItem(PriorItem: TEDIObjectListItem; + EDIObject: TEDIObject = nil): TEDIObjectListItem; +begin + Result := TEDIObjectListItem.Create(Self, PriorItem, EDIObject); +end; + +//=== { TEDILoopStack } ====================================================== + +constructor TEDILoopStack.Create; +begin + inherited Create; + SetLength(FStack, 0); + FFlags := []; +end; + +destructor TEDILoopStack.Destroy; +var + I: Integer; +begin + for I := Low(FStack) to High(FStack) do + FStack[I].EDIObject := nil; + SetLength(FStack, 0); + inherited Destroy; +end; + +function TEDILoopStack.Debug: string; +var + I: Integer; +begin + Result := 'Loop Stack' + NativeLineBreak; + for I := 0 to High(FStack) do + Result := Result + FStack[I].SegmentId + ', ' + + FStack[I].OwnerLoopId + ', ' + + FStack[I].ParentLoopId + ', ' + + IntToStr(FStack[I].SpecStartIndex) + NativeLineBreak; +end; + +procedure TEDILoopStack.DoAddLoop(StackRecord: TEDILoopStackRecord; + SegmentId, OwnerLoopId, ParentLoopId: string; var EDIObject: TEDIObject); +begin + if Assigned(FOnAddLoop) then + FOnAddLoop(StackRecord, SegmentId, OwnerLoopId, ParentLoopId, EDIObject); +end; + +function TEDILoopStack.GetSafeStackIndex(Index: Integer): Integer; +begin + if Length(FStack) > 0 then + begin + if Index >= Low(FStack) then + begin + if Index <= High(FStack) then + Result := Index + else + Result := High(FStack); + end + else + Result := Low(FStack); + end + else + raise EJclEDIError.CreateIDFmt(57, [IntToStr(Index)]); +end; + +function TEDILoopStack.GetSize: Integer; +begin + Result := Length(FStack); +end; + +function TEDILoopStack.Peek: TEDILoopStackRecord; +begin + Result := FStack[High(FStack)]; +end; + +function TEDILoopStack.Peek(Index: Integer): TEDILoopStackRecord; +begin + if Length(FStack) > 0 then + if Index >= Low(FStack) then + if Index <= High(FStack) then + Result := FStack[Index] + else + raise EJclEDIError.CreateIDFmt(54, [IntToStr(Index)]) + else + raise EJclEDIError.CreateIDFmt(55, [IntToStr(Index)]) + else + raise EJclEDIError.CreateIDFmt(56, [IntToStr(Index)]); +end; + +procedure TEDILoopStack.Pop(Index: Integer); +begin + // Resize loop stack if the index is less than the length + if (Index >= 0) and (Index < Length(FStack)) then + begin + SetLength(FStack, Index); + FFlags := FFlags + [ediStackResized]; + end; +end; + +function TEDILoopStack.Push(SegmentId, OwnerLoopId, ParentLoopId: string; StartIndex: Integer; + EDIObject: TEDIObject): Integer; +begin + // Add to loop stack + SetLength(FStack, Length(FStack) + 1); + UpdateStackData(SegmentId, OwnerLoopId, ParentLoopId, StartIndex, EDIObject); + Result := High(FStack); +end; + +function TEDILoopStack.SetStackPointer(OwnerLoopId, + ParentLoopId: string): Integer; +var + I: Integer; +begin + FFlags := FFlags - [ediStackResized]; + FFlags := FFlags - [ediAltStackPointer]; + Result := -1; // Entry not found + // Find the loop in the stack + for I := High(FStack) downto 0 do + begin + if (OwnerLoopId = FStack[I].OwnerLoopId) and + (ParentLoopId = FStack[I].ParentLoopId) then + begin + Result := I; + // Pop entries from the stack starting at the index after the found loop + Pop(I + 1); + Break; + end; + end; + // Check if an exact entry was found + if Result = -1 then + begin + // Find the parent loop in the stack + for I := High(FStack) downto 0 do + begin + if (ParentLoopId = FStack[I].ParentLoopId) and + (FStack[I].OwnerLoopId <> NA_LoopId) then + begin + FFlags := FFlags + [ediAltStackPointer]; + Result := GetSafeStackIndex(I); + // Pop entries from the stack starting at the index after the found loop + Pop(I + 1); + Break; + end; + end; + end; +end; + +procedure TEDILoopStack.UpdateStackData(SegmentId, OwnerLoopId, ParentLoopId: string; + StartIndex: Integer; EDIObject: TEDIObject); +begin + FStack[High(FStack)].SegmentId := SegmentId; + FStack[High(FStack)].OwnerLoopId := OwnerLoopId; + FStack[High(FStack)].ParentLoopId := ParentLoopId; + FStack[High(FStack)].SpecStartIndex := StartIndex; + FStack[High(FStack)].EDIObject := EDIObject; +end; + +procedure TEDILoopStack.UpdateStackObject(EDIObject: TEDIObject); +begin + FStack[High(FStack)].EDIObject := EDIObject; +end; + +function TEDILoopStack.ValidateLoopStack(SegmentId, OwnerLoopId, ParentLoopId: string; + StartIndex: Integer; EDIObject: TEDIObject): TEDILoopStackRecord; +var + I: Integer; + StackRecord: TEDILoopStackRecord; +begin + if Length(FStack) <= 0 then + // Add entry to stack + Push(SegmentId, OwnerLoopId, ParentLoopId, StartIndex, EDIObject) + else + begin + I := SetStackPointer(OwnerLoopId, ParentLoopId); + if I >= 0 then // Entry found + begin + if ediLoopRepeated in FFlags then + begin + // Get the previous stack record so the repeated loop will not be nested + StackRecord := Peek(I-1); + // In event handler add loop to external data structure since it repeated + // See JclEDI_ANSIX12.TEDITransactionSetDocument class for implementation example. + DoAddLoop(StackRecord, SegmentId, OwnerLoopId, ParentLoopId, EDIObject); + // Update stack object only + UpdateStackObject(EDIObject); + // Debug + // ShowMessage('LoopRepeated'); + end + else + if ediAltStackPointer in FFlags then + begin + // Get the previous stack record because the loop + // is not to be nested at the current stack pointer + StackRecord := Peek(I-1); + // In event handler add loop to external data structure since it is new + // See JclEDI_ANSIX12.TEDITransactionSetDocument class for implementation example. + DoAddLoop(StackRecord, SegmentId, OwnerLoopId, ParentLoopId, EDIObject); + // Update stack entry + UpdateStackData(SegmentId, OwnerLoopId, ParentLoopId, StartIndex, EDIObject); + // Debug + // ShowMessage('AltStackPointer'); + end + else + if ediStackResized in FFlags then + begin + // Debug + // ShowMessage('Stack Size Decreased'); + end + else + begin + // Segment is part of loop + end; + end + else + if I = -1 then // Entry not found. + begin + // In event handler add loop since it is new + StackRecord := Peek; + // In event handler add loop to external data structure since it is new + DoAddLoop(StackRecord, SegmentId, OwnerLoopId, ParentLoopId, EDIObject); + // Add entry to stack + Push(SegmentId, OwnerLoopId, ParentLoopId, StartIndex, EDIObject); + // Debug + // ShowMessage('Stack Size Increased'); + end; + end; + Result := Peek; +end; + +{$IFNDEF EDI_WEAK_PACKAGE_UNITS} +{$IFDEF UNITVERSIONING} +initialization + RegisterUnitVersion(HInstance, UnitVersioning); + +finalization + UnregisterUnitVersion(HInstance); +{$ENDIF UNITVERSIONING} +{$ENDIF ~EDI_WEAK_PACKAGE_UNITS} +end. Copied: trunk/jcl/source/common/JclEDISEF.pas (from rev 3242, trunk/jcl/source/common/JclEDISEF.pas) =================================================================== --- trunk/jcl/source/common/JclEDISEF.pas (rev 0) +++ trunk/jcl/source/common/JclEDISEF.pas 2010-05-07 18:11:28 UTC (rev 3244) @@ -0,0 +1,4745 @@ +{**************************************************************************************************} +{ } +{ 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 JclEDISEF.pas. } +{ } +{ The Initial Developer of the Original Code is Raymond Alexander. } +{ Portions created by Raymond Alexander are Copyright (C) Raymond Alexander. All rights reserved. } +{ } +{ Contributor(s): } +{ Raymond Alexander (rayspostbox3), Robert Marquardt, Robert Rossmair, Petr Vones } +{ } +{**************************************************************************************************} +{ } +{ EDI Standard Exchange Format (*.sef) File Parser Unit } +{ } +{ This unit is still in development } +{ } +{ Unit owner: Raymond Alexander } +{ Date created: July, 20, 2003 } +{ Additional Info: } +{ E-Mail at RaysDelphiBox3 att hotmail dott com } +{ For latest EDI specific demos see http://sourceforge.net/projects/edisdk } +{ See home page for latest news & events and online help. } +{ } +{**************************************************************************************************} +{ } +{ Last modified: $Date:: ... [truncated message content] |
From: <ou...@us...> - 2010-05-07 18:03:23
|
Revision: 3243 http://jcl.svn.sourceforge.net/jcl/?rev=3243&view=rev Author: outchy Date: 2010-05-07 18:03:14 +0000 (Fri, 07 May 2010) Log Message: ----------- Modified Paths: -------------- trunk/jcl/packages/xml/Jcl-R.xml Removed Paths: ------------- 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 Modified: trunk/jcl/packages/xml/Jcl-R.xml =================================================================== --- trunk/jcl/packages/xml/Jcl-R.xml 2010-05-04 21:05:47 UTC (rev 3242) +++ trunk/jcl/packages/xml/Jcl-R.xml 2010-05-07 18:03:14 UTC (rev 3243) @@ -20,14 +20,6 @@ <File Name="..\..\source\common\JclCompression.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclCounter.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclDateTime.pas" Targets="all" Formname="" Condition=""/> - <File Name="..\..\source\common\JclEDI.pas" Targets="all" Formname="" Condition=""/> - <File Name="..\..\source\common\JclEDISEF.pas" Targets="all" Formname="" Condition=""/> - <File Name="..\..\source\common\JclEDITranslators.pas" Targets="all" Formname="" Condition=""/> - <File Name="..\..\source\common\JclEDIXML.pas" Targets="all" Formname="" Condition=""/> - <File Name="..\..\source\common\JclEDI_ANSIX12.pas" Targets="all" Formname="" Condition=""/> - <File Name="..\..\source\common\JclEDI_ANSIX12_Ext.pas" Targets="all" Formname="" Condition=""/> - <File Name="..\..\source\common\JclEDI_UNEDIFACT.pas" Targets="all" Formname="" Condition=""/> - <File Name="..\..\source\common\JclEDI_UNEDIFACT_Ext.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclExprEval.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclFileUtils.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclIniFiles.pas" Targets="all" Formname="" Condition=""/> Deleted: trunk/jcl/source/common/JclEDI.pas =================================================================== --- trunk/jcl/source/common/JclEDI.pas 2010-05-04 21:05:47 UTC (rev 3242) +++ trunk/jcl/source/common/JclEDI.pas 2010-05-07 18:03:14 UTC (rev 3243) @@ -1,1690 +0,0 @@ -{**************************************************************************************************} -{ } -{ 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 JclEDI.pas. } -{ } -{ The Initial Developer of the Original Code is Raymond Alexander. } -{ Portions created by Raymond Alexander are Copyright Raymond Alexander. All rights reserved. } -{ } -{ Contributor(s): } -{ Raymond Alexander (rayspostbox3), Robert Marquardt, Robert Rossmair, Petr Vones, } -{ Andreas Hausladen } -{ } -{**************************************************************************************************} -{ } -{ Contains classes to eaisly parse EDI documents and data. Variable delimiter detection allows } -{ parsing of the file without knowledge of the standards at an Interchange level. This enables } -{ parsing and construction of EDI documents with different delimiters. } -{ } -{ Unit owner: Raymond Alexander } -{ Date created: Before February, 1, 2001 } -{ Additional Info: } -{ E-Mail at RaysDelphiBox3 att hotmail dott com } -{ For latest EDI specific demos see http://sourceforge.net/projects/edisdk } -{ See home page for latest news & events and online help. } -{ } -{**************************************************************************************************} -{ } -{ Last modified: $Date:: $ } -{ Revision: $Rev:: $ } -{ Author: $Author:: $ } -{ } -{**************************************************************************************************} - -unit JclEDI; - -{$I jcl.inc} - -{$IFDEF EDI_WEAK_PACKAGE_UNITS} - {$IFDEF SUPPORTS_WEAKPACKAGEUNIT} - {$WEAKPACKAGEUNIT ON} - {$ENDIF SUPPORTS_WEAKPACKAGEUNIT} -{$ENDIF EDI_WEAK_PACKAGE_UNITS} -// Add the following directive in project options for debugging memory leaks. -// {$DEFINE ENABLE_EDI_DEBUGGING} - -interface - -uses - SysUtils, Classes, - {$IFNDEF EDI_WEAK_PACKAGE_UNITS} - {$IFDEF UNITVERSIONING} - JclUnitVersioning, - {$ENDIF UNITVERSIONING} - {$ENDIF ~EDI_WEAK_PACKAGE_UNITS} - JclBase, JclResources; - -const - NA_LoopId = 'N/A'; // Constant used for loop id comparison - ElementSpecId_Reserved = 'Reserved'; - - EDIDataType_Numeric = 'N'; - EDIDataType_Decimal = 'R'; - EDIDataType_Identifier = 'ID'; - EDIDataType_String = 'AN'; - EDIDataType_Date = 'DT'; - EDIDataType_Time = 'TM'; - EDIDataType_Binary = 'B'; - -{$IFDEF ENABLE_EDI_DEBUGGING} -var - Debug_EDIDataObjectsCreated: Int64; - Debug_EDIDataObjectsDestroyed: Int64; - Debug_EDIDataObjectListCreated: Int64; - Debug_EDIDataObjectListDestroyed: Int64; - Debug_EDIDataObjectListItemsCreated: Int64; - Debug_EDIDataObjectListItemsDestroyed: Int64; -{$ENDIF ENABLE_EDI_DEBUGGING} - -type - {$TYPEINFO ON} - TEDIObject = class(TObject); // Base EDI Object - {$IFNDEF TYPEINFO_ON} - {$TYPEINFO OFF} - {$ENDIF ~TYPEINFO_ON} - TEDIObjectArray = array of TEDIObject; - - EJclEDIError = class(EJclError) - public - constructor CreateID(ID: Cardinal); - constructor CreateIDFmt(ID: Cardinal; const Args: array of const); - end; - - // EDI Forward Class Declarations - TEDIDataObject = class; - TEDIDataObjectGroup = class; - TEDIObjectListItem = class; - TEDIObjectList = class; - TEDIDataObjectListItem = class; - TEDIDataObjectList = class; - - // EDI Delimiters Object - TEDIDelimiters = class(TEDIObject) - private - FSegmentDelimiter: string; - FElementDelimiter: string; - FSubElementSeperator: string; // Also known as: Component Data Seperator - FSegmentDelimiterLength: Integer; - FElementDelimiterLength: Integer; - FSubelementSeperatorLength: Integer; - procedure SetSD(const Delimiter: string); - procedure SetED(const Delimiter: string); - procedure SetSS(const Delimiter: string); - public - constructor Create; overload; - constructor Create(const SD, ED, SS: string); overload; - published - property SD: string read FSegmentDelimiter write SetSD; - property ED: string read FElementDelimiter write SetED; - property SS: string read FSubElementSeperator write SetSS; - property SDLen: Integer read FSegmentDelimiterLength; - property EDLen: Integer read FElementDelimiterLength; - property SSLen: Integer read FSubElementSeperatorLength; - end; - - // EDI Data Object - TEDIDataObjectType = - (ediUnknown, ediElement, ediCompositeElement, ediSegment, ediLoop, - ediTransactionSet, ediMessage, ediFunctionalGroup, - ediInterchangeControl, ediFile, ediCustom); - - TEDIDataObjectDataState = (ediCreated, ediAssembled, ediDisassembled); - - TCustomData = Pointer; // backward compatibility - - TEDIDataObject = class(TEDIObject) - private - procedure SetDelimiters(const Delimiters: TEDIDelimiters); - protected - FEDIDOT: TEDIDataObjectType; - FState: TEDIDataObjectDataState; - FData: string; - FLength: Integer; - FParent: TEDIDataObject; - FDelimiters: TEDIDelimiters; - FErrorLog: TStrings; - FSpecPointer: TEDIObject; - FCustomData1: TCustomData; - FCustomData2: TCustomData; - function GetData: string; - procedure SetData(const Data: string); - public - constructor Create(Parent: TEDIDataObject); reintroduce; - destructor Destroy; override; - function Assemble: string; virtual; abstract; - procedure Disassemble; virtual; abstract; - property SpecPointer: TEDIObject read FSpecPointer write FSpecPointer; - property CustomData1: TCustomData read FCustomData1 write FCustomData1; - property CustomData2: TCustomData read FCustomData2 write FCustomData2; - published - property State: TEDIDataObjectDataState read FState; - property Data: string read GetData write SetData; - property DataLength: Integer read FLength; - property Parent: TEDIDataObject read FParent write FParent; - property Delimiters: TEDIDelimiters read FDelimiters write SetDelimiters; - end; - - TEDIDataObjectArray = array of TEDIDataObject; - - // EDI Data Object Group - TEDIDataObjectGroup = class(TEDIDataObject) - protected - FGroupIsParent: Boolean; - FEDIDataObjects: TEDIDataObjectList; - FCreateObjectType: TEDIDataObjectType; - function GetCount: Integer; - function GetEDIDataObject(Index: Integer): TEDIDataObject; - procedure SetEDIDataObject(Index: Integer; EDIDataObject: TEDIDataObject); - function InternalAssignDelimiters: TEDIDelimiters; virtual; abstract; - function InternalCreateEDIDataObject: TEDIDataObject; virtual; abstract; - public - constructor Create(Parent: TEDIDataObject; EDIDataObjectCount: Integer = 0); reintroduce; - destructor Destroy; override; - function IndexIsValid(Index: Integer): Boolean; - // - function AddEDIDataObject: Integer; - function AppendEDIDataObject(EDIDataObject: TEDIDataObject): Integer; - function InsertEDIDataObject(InsertIndex: Integer): Integer; overload; - function InsertEDIDataObject(InsertIndex: Integer; EDIDataObject: - TEDIDataObject): Integer; overload; - procedure DeleteEDIDataObject(Index: Integer); overload; - procedure DeleteEDIDataObject(EDIDataObject: TEDIDataObject); overload; - // - function AddEDIDataObjects(Count: Integer): Integer; - function AppendEDIDataObjects(EDIDataObjectArray: TEDIDataObjectArray): Integer; - function InsertEDIDataObjects(InsertIndex, Count: Integer): Integer; overload; - function InsertEDIDataObjects(InsertIndex: Integer; - EDIDataObjectArray: TEDIDataObjectArray): Integer; overload; - procedure DeleteEDIDataObjects; overload; - procedure DeleteEDIDataObjects(Index, Count: Integer); overload; - // - function GetIndexPositionFromParent: Integer; virtual; - // - property EDIDataObject[Index: Integer]: TEDIDataObject read GetEDIDataObject - write SetEDIDataObject; default; - property EDIDataObjects: TEDIDataObjectList read FEDIDataObjects; - published - property CreateObjectType: TEDIDataObjectType read FCreateObjectType; - property EDIDataObjectCount: Integer read GetCount; - end; - - TEDIDataObjectGroupArray = array of TEDIDataObjectGroup; - - // EDI Data Object Linked List Header and Item classes - TEDIObjectListItem = class(TEDIObject) - protected - FParent: TEDIObjectList; - FPriorItem: TEDIObjectListItem; - FNextItem: TEDIObjectListItem; - FEDIObject: TEDIObject; - FItemIndex: Integer; - FName: string; - public - constructor Create(Parent: TEDIObjectList; PriorItem: TEDIObjectListItem; - EDIObject: TEDIObject = nil); - destructor Destroy; override; - function GetIndexPositionFromParent: Integer; - procedure FreeAndNilEDIDataObject; - published - property ItemIndex: Integer read FItemIndex write FItemIndex; - property PriorItem: TEDIObjectListItem read FPriorItem write FPriorItem; - property NextItem: TEDIObjectListItem read FNextItem write FNextItem; - property EDIObject: TEDIObject read FEDIObject write FEDIObject; - property Name: string read FName write FName; - property Parent: TEDIObjectList read FParent write FParent; - end; - - TEDIDataObjectListOptions = set of (loAutoUpdateIndexes); - - TEDIObjectList = class(TEDIObject) - private - function GetItem(Index: Integer): TEDIObjectListItem; - protected - FOwnsObjects: Boolean; - FCount: Integer; - FOptions: TEDIDataObjectListOptions; - FFirstItem: TEDIObjectListItem; - FLastItem: TEDIObjectListItem; - FCurrentItem: TEDIObjectListItem; - function GetEDIObject(Index: Integer): TEDIObject; - procedure SetEDIObject(Index: Integer; const Value: TEDIObject); - public - constructor Create(OwnsObjects: Boolean = True); - destructor Destroy; override; - procedure Add(Item: TEDIObjectListItem; Name: string = ''); overload; - function Add(EDIObject: TEDIObject; Name: string = ''): TEDIObjectListItem; overload; - function CreateListItem(PriorItem: TEDIObjectListItem; - EDIObject: TEDIObject = nil): TEDIObjectListItem; virtual; - function Find(Item: TEDIObjectListItem): TEDIObjectListItem; overload; - function Find(EDIObject: TEDIObject): TEDIObjectListItem; overload; - function FindEDIObject(EDIObject: TEDIObject): TEDIObject; - function Extract(Item: TEDIObjectListItem): TEDIObjectListItem; overload; virtual; - function Extract(EDIObject: TEDIObject): TEDIObject; overload; virtual; - procedure Remove(Item: TEDIObjectListItem); overload; - procedure Remove(EDIObject: TEDIObject); overload; - function Insert(Item, BeforeItem: TEDIObjectListItem): TEDIObjectListItem; overload; - function Insert(EDIObject, BeforeEDIObject: TEDIObject): TEDIObjectListItem; overload; - function Insert(BeforeItem: TEDIObjectListItem): TEDIObjectListItem; overload; - function Insert(BeforeEDIObject: TEDIObject): TEDIObjectListItem; overload; - procedure Clear; - function First(Index: Integer = 0): TEDIObjectListItem; virtual; - function Next: TEDIObjectListItem; virtual; - function Prior: TEDIObjectListItem; virtual; - function Last: TEDIObjectListItem; virtual; - procedure UpdateCount; - // ...ByName procedures and functions - function FindItemByName(Name: string; - StartItem: TEDIObjectListItem = nil): TEDIObjectListItem; virtual; - function ReturnListItemsByName(Name: string): TEDIObjectList; virtual; - // Dynamic Array Emulation - function IndexOf(Item: TEDIObjectListItem): Integer; overload; - function IndexOf(EDIObject: TEDIObject): Integer; overload; - function IndexIsValid(Index: Integer): Boolean; - procedure Insert(InsertIndex: Integer; EDIObject: TEDIObject); overload; - procedure Delete(Index: Integer); overload; - procedure Delete(EDIObject: TEDIObject); overload; - procedure UpdateIndexes(StartItem: TEDIObjectListItem = nil); - // - property Item[Index: Integer]: TEDIObjectListItem read GetItem; - property EDIObject[Index: Integer]: TEDIObject read GetEDIObject - write SetEDIObject; default; - published - property Count: Integer read FCount; - property OwnsObjects: Boolean read FOwnsObjects write FOwnsObjects; - property Options: TEDIDataObjectListOptions read FOptions write FOptions; - property CurrentItem: TEDIObjectListItem read FCurrentItem; - end; - - TEDIDataObjectListItem = class(TEDIObjectListItem) - private - function GetEDIDataObject: TEDIDataObject; - procedure SetEDIDataObject(const Value: TEDIDataObject); - published - property EDIDataObject: TEDIDataObject read GetEDIDataObject write SetEDIDataObject; - end; - - TEDIDataObjectList = class(TEDIObjectList) - private - function GetEDIDataObject(Index: Integer): TEDIDataObject; - procedure SetEDIDataObject(Index: Integer; const Value: TEDIDataObject); - public - function CreateListItem(PriorItem: TEDIObjectListItem; - EDIObject: TEDIObject = nil): TEDIObjectListItem; override; - property EDIDataObject[Index: Integer]: TEDIDataObject read GetEDIDataObject - write SetEDIDataObject; default; - end; - - // EDI Loop Stack - TEDILoopStackRecord = record - SegmentId: string; - SpecStartIndex: Integer; - OwnerLoopId: string; - ParentLoopId: string; - EDIObject: TEDIObject; - EDISpecObject: TEDIObject; - end; - - TEDILoopStackArray = array of TEDILoopStackRecord; - - TEDILoopStackFlags = (ediAltStackPointer, ediStackResized, ediLoopRepeated); - - TEDILoopStackFlagSet = set of TEDILoopStackFlags; - - TEDILoopStackOnAddLoopEvent = procedure(StackRecord: TEDILoopStackRecord; - SegmentId, OwnerLoopId, ParentLoopId: string; var EDIObject: TEDIObject) of object; - - TEDILoopStack = class(TEDIObject) - private - function GetSize: Integer; - protected - FStack: TEDILoopStackArray; - FFlags: TEDILoopStackFlagSet; - FCheckAssignedEDIObject: Boolean; - FOnAddLoop: TEDILoopStackOnAddLoopEvent; - procedure DoAddLoop(StackRecord: TEDILoopStackRecord; - SegmentId, OwnerLoopId, ParentLoopId: string; var EDIObject: TEDIObject); - public - constructor Create; - destructor Destroy; override; - // Basic Stack Routines - function Peek: TEDILoopStackRecord; overload; - function Peek(Index: Integer): TEDILoopStackRecord; overload; - procedure Pop(Index: Integer); - function Push(SegmentId, OwnerLoopId, ParentLoopId: string; StartIndex: Integer; - EDIObject: TEDIObject): Integer; - // Extended Stack Routines - function GetSafeStackIndex(Index: Integer): Integer; - function SetStackPointer(OwnerLoopId, ParentLoopId: string): Integer; - procedure UpdateStackObject(EDIObject: TEDIObject); - procedure UpdateStackData(SegmentId, OwnerLoopId, ParentLoopId: string; StartIndex: Integer; - EDIObject: TEDIObject); - // Extended Stack Routines - function ValidateLoopStack(SegmentId, OwnerLoopId, ParentLoopId: string; StartIndex: Integer; - EDIObject: TEDIObject): TEDILoopStackRecord; - function Debug: string; - // - property Stack: TEDILoopStackArray read FStack; - published - property Size: Integer read GetSize; - property Flags: TEDILoopStackFlagSet read FFlags write FFlags; - property OnAddLoop: TEDILoopStackOnAddLoopEvent read FOnAddLoop write FOnAddLoop; - end; - -// Other -// Compatibility functions -function StringRemove(const S, Pattern: string; Flags: TReplaceFlags): string; -function StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string; - -const - EDIErrors: array [1..58] of PResStringRec = - ( @RsEDIError001, @RsEDIError002, @RsEDIError003, @RsEDIError004, @RsEDIError005, @RsEDIError006, @RsEDIError007, - @RsEDIError008, @RsEDIError009, @RsEDIError010, @RsEDIError011, @RsEDIError012, @RsEDIError013, @RsEDIError014, - @RsEDIError015, @RsEDIError016, @RsEDIError017, @RsEDIError018, @RsEDIError019, @RsEDIError020, @RsEDIError021, - @RsEDIError022, @RsEDIError023, @RsEDIError024, @RsEDIError025, @RsEDIError026, @RsEDIError027, @RsEDIError028, - @RsEDIError029, @RsEDIError030, @RsEDIError031, @RsEDIError032, @RsEDIError033, @RsEDIError034, @RsEDIError035, - @RsEDIError036, @RsEDIError037, @RsEDIError038, @RsEDIError039, @RsEDIError040, @RsEDIError041, @RsEDIError042, - @RsEDIError043, @RsEDIError044, @RsEDIError045, @RsEDIError046, @RsEDIError047, @RsEDIError048, @RsEDIError049, - @RsEDIError050, @RsEDIError051, @RsEDIError052, @RsEDIError053, @RsEDIError054, @RsEDIError055, @RsEDIError056, - @RsEDIError057, @RsEDIError058 ); - -{$IFNDEF EDI_WEAK_PACKAGE_UNITS} -{$IFDEF UNITVERSIONING} -const - UnitVersioning: TUnitVersionInfo = ( - RCSfile: '$URL$'; - Revision: '$Revision$'; - Date: '$Date$'; - LogPath: 'JCL\source\common'; - Extra: ''; - Data: nil - ); -{$ENDIF UNITVERSIONING} -{$ENDIF ~EDI_WEAK_PACKAGE_UNITS} - -implementation - -uses - JclStrings; - -// Other -function StringRemove(const S, Pattern: string; Flags: TReplaceFlags): string; -var - SearchPattern: string; - I, Offset, SearchPatternLength: Integer; -begin - if rfIgnoreCase in Flags then - begin - Result := AnsiUpperCase(S); - SearchPattern := AnsiUpperCase(Pattern); - end - else - begin - Result := S; - SearchPattern := Pattern; - end; - SearchPatternLength := Length(SearchPattern); - Result := S; - - I := 1; - Offset := 1; - while I <= Length(Result) do - begin - if SearchPatternLength = 1 then - begin - while Result[I] = SearchPattern[1] do - begin - Offset := Offset + SearchPatternLength; - if not (rfReplaceAll in Flags) then - Break; - Inc(I); - end; - end - else // SearchPatternLength > 1 - begin - while Copy(Result, Offset, SearchPatternLength) = SearchPattern do - begin - Offset := Offset + SearchPatternLength; - if not (rfReplaceAll in Flags) then - Break; - end; - end; - - if Offset <= Length(Result) then - Result[I] := S[Offset] - else - begin - Result[I] := #0; - SetLength(Result, I-1); - Break; - end; - - if not (rfReplaceAll in Flags) then - Break; - - Inc(I); - Inc(Offset); - end; -end; - -function StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string; -var - SearchString, SearchPattern: string; - I, SearchIndex, ReplaceIndex: Integer; - SearchPatternLength, ReplacePatternLength: Integer; - SearchResult, ReplaceCount: Integer; -begin - Result := ''; - // Handle Case Sensitivity - if rfIgnoreCase in Flags then - begin - SearchString := AnsiUpperCase(S); - SearchPattern := AnsiUpperCase(OldPattern); - end - else - begin - SearchString := S; - SearchPattern := OldPattern; - end; - SearchPatternLength := Length(OldPattern); - ReplacePatternLength := Length(NewPattern); - // Calculate length of result string - ReplaceCount := 0; - SearchResult := StrSearch(SearchPattern, SearchString, 1); - if rfReplaceAll in Flags then - while SearchResult <> 0 do - begin - Inc(SearchResult, SearchPatternLength); // Increment match position, by length of match - Inc(ReplaceCount); - SearchResult := StrSearch(SearchPattern, SearchString, SearchResult); - end - else - if SearchResult <> 0 then - Inc(ReplaceCount); - SetLength(Result, Length(S) + ((ReplacePatternLength - SearchPatternLength) * ReplaceCount)); - // Copy the characters by looping through the result and source at the same time - ReplaceCount := 0; - ReplaceIndex := 1; - SearchIndex := 1; - // Loop while the indexes are still in range - while (ReplaceIndex <= Length(Result)) and (SearchIndex <= Length(SearchString)) do - begin - // Enter algorithm if replacing a pattern or there have been no replacements yet - if (rfReplaceAll in Flags) or ((not (rfReplaceAll in Flags)) and (ReplaceCount = 0)) then - // Replace the pattern (including repeating patterns) - while Copy(SearchString, SearchIndex, SearchPatternLength) = SearchPattern do - begin - // Move forward in the search string - SearchIndex := SearchIndex + Length(SearchPattern); - // Replace an old pattern by writing the new pattern to the result - I := 1; - while (ReplaceIndex <= Length(Result)) and (I <= ReplacePatternLength) do - begin - Result[ReplaceIndex] := NewPattern[I]; - Inc(I); - Inc(ReplaceIndex); - end; - // - Inc(ReplaceCount); - // If only making one replacement then break - if not (rfReplaceAll in Flags) then - Break; - end; - - // Copy character - if (ReplaceIndex <= Length(Result)) and (SearchIndex <= Length(SearchString)) then - Result[ReplaceIndex] := S[SearchIndex]; - - // Set indexes for next copy - Inc(SearchIndex); - Inc(ReplaceIndex); - end; -end; - -//=== { EJclEDIError } ======================================================= - -constructor EJclEDIError.CreateID(ID: Cardinal); -begin - CreateRes(EDIErrors[ID]); -end; - -constructor EJclEDIError.CreateIDFmt(ID: Cardinal; const Args: array of const); -begin - CreateResFmt(EDIErrors[ID], Args); -end; - -//=== { TEDIDelimiters } ===================================================== - -constructor TEDIDelimiters.Create; -begin - Create('~', '*', '>'); -end; - -constructor TEDIDelimiters.Create(const SD, ED, SS: string); -begin - inherited Create; - SetSD(SD); - SetED(ED); - SetSS(SS); -end; - -procedure TEDIDelimiters.SetED(const Delimiter: string); -begin - FElementDelimiter := Delimiter; - FElementDelimiterLength := Length(FElementDelimiter); -end; - -procedure TEDIDelimiters.SetSD(const Delimiter: string); -begin - FSegmentDelimiter := Delimiter; - FSegmentDelimiterLength := Length(FSegmentDelimiter); -end; - -procedure TEDIDelimiters.SetSS(const Delimiter: string); -begin - FSubelementSeperator := Delimiter; - FSubelementSeperatorLength := Length(FSubElementSeperator); -end; - -//=== { TEDIDataObject } ===================================================== - -constructor TEDIDataObject.Create(Parent: TEDIDataObject); -begin - inherited Create; - FState := ediCreated; - FEDIDOT := ediUnknown; - FData := ''; - FLength := 0; - FParent := Parent; - FDelimiters := nil; - FSpecPointer := nil; - FCustomData1 := nil; - FCustomData2 := nil; - {$IFDEF ENABLE_EDI_DEBUGGING} - Inc(Debug_EDIDataObjectsCreated); - {$ENDIF ENABLE_EDI_DEBUGGING} -end; - -destructor TEDIDataObject.Destroy; -begin - {$IFDEF ENABLE_EDI_DEBUGGING} - Inc(Debug_EDIDataObjectsDestroyed); - {$ENDIF ENABLE_EDI_DEBUGGING} - if not Assigned(FParent) then - FDelimiters.Free; - FDelimiters := nil; - FSpecPointer := nil; - FCustomData1 := nil; - FCustomData2 := nil; - inherited Destroy; -end; - -function TEDIDataObject.GetData: string; -begin - Result := FData; -end; - -procedure TEDIDataObject.SetData(const Data: string); -begin - FData := Data; - FLength := Length(FData); -end; - -procedure TEDIDataObject.SetDelimiters(const Delimiters: TEDIDelimiters); -begin - if not Assigned(FParent) then - FreeAndNil(FDelimiters); - FDelimiters := Delimiters; -end; - -//=== { TEDIDataObjectGroup } ================================================ - -constructor TEDIDataObjectGroup.Create(Parent: TEDIDataObject; EDIDataObjectCount: Integer); -begin - inherited Create(Parent); - FCreateObjectType := ediUnknown; - FGroupIsParent := True; - FEDIDataObjects := TEDIDataObjectList.Create; - if EDIDataObjectCount > 0 then - AddEDIDataObjects(EDIDataObjectCount); -end; - -function TEDIDataObjectGroup.AddEDIDataObjects(Count: Integer): Integer; -var - I: Integer; -begin - Result := FEDIDataObjects.Count; // Return position of 1st - for I := 1 to Count do - FEDIDataObjects.Add(InternalCreateEDIDataObject); -end; - -function TEDIDataObjectGroup.AddEDIDataObject: Integer; -begin - Result := FEDIDataObjects.Count; // Return position - FEDIDataObjects.Add(InternalCreateEDIDataObject); -end; - -function TEDIDataObjectGroup.AppendEDIDataObject(EDIDataObject: TEDIDataObject): Integer; -begin - Result := FEDIDataObjects.Count; // Return position - FEDIDataObjects.Add(EDIDataObject); - if FGroupIsParent then - EDIDataObject.Parent := Self; -end; - -function TEDIDataObjectGroup.AppendEDIDataObjects(EDIDataObjectArray: TEDIDataObjectArray): Integer; -var - I: Integer; -begin - Result := FEDIDataObjects.Count; // Return position of 1st - for I := Low(EDIDataObjectArray) to High(EDIDataObjectArray) do - begin - FEDIDataObjects.Add(EDIDataObjectArray[I]); - if FGroupIsParent then - EDIDataObjectArray[I].Parent := Self; - end; -end; - -procedure TEDIDataObjectGroup.DeleteEDIDataObject(EDIDataObject: TEDIDataObject); -begin - if loAutoUpdateIndexes in FEDIDataObjects.Options then - FEDIDataObjects.Delete(EDIDataObject) - else - FEDIDataObjects.Remove(EDIDataObject); -end; - -procedure TEDIDataObjectGroup.DeleteEDIDataObject(Index: Integer); -begin - if IndexIsValid(Index) then - FEDIDataObjects.Delete(Index) - else - raise EJclEDIError.CreateIDFmt(10, [Self.ClassName, IntToStr(Index)]); -end; - -procedure TEDIDataObjectGroup.DeleteEDIDataObjects; -begin - FEDIDataObjects.Clear; -end; - -procedure TEDIDataObjectGroup.DeleteEDIDataObjects(Index, Count: Integer); -var - I: Integer; -begin - if IndexIsValid(Index) then - begin - FEDIDataObjects.Options := FEDIDataObjects.Options - [loAutoUpdateIndexes]; - try - for I := 1 to Count do - DeleteEDIDataObject(Index); - finally - FEDIDataObjects.Options := FEDIDataObjects.Options + [loAutoUpdateIndexes]; - end; - end - else - raise EJclEDIError.CreateIDFmt(11, [IntToStr(Index)]); -end; - -destructor TEDIDataObjectGroup.Destroy; -begin - DeleteEDIDataObjects; - FreeAndNil(FEDIDataObjects); - inherited Destroy; -end; - -function TEDIDataObjectGroup.GetEDIDataObject(Index: Integer): TEDIDataObject; -begin - if FEDIDataObjects.Count > 0 then - if Index >= 0 then - if Index <= FEDIDataObjects.Count - 1 then - begin - if not Assigned(FEDIDataObjects[Index]) then - raise EJclEDIError.CreateIDFmt(6, [Self.ClassName, IntToStr(Index)]); - Result := FEDIDataObjects[Index]; - end - else - raise EJclEDIError.CreateIDFmt(5, [Self.ClassName, IntToStr(Index)]) - else - raise EJclEDIError.CreateIDFmt(4, [Self.ClassName, IntToStr(Index)]) - else - raise EJclEDIError.CreateIDFmt(3, [Self.ClassName, IntToStr(Index)]); -end; - -function TEDIDataObjectGroup.IndexIsValid(Index: Integer): Boolean; -begin - Result := FEDIDataObjects.IndexIsValid(Index); -end; - -function TEDIDataObjectGroup.InsertEDIDataObject(InsertIndex: Integer): Integer; -begin - Result := InsertIndex; // Return position - if IndexIsValid(InsertIndex) then - FEDIDataObjects.Insert(InsertIndex, InternalCreateEDIDataObject) - else - Result := AddEDIDataObject; -end; - -function TEDIDataObjectGroup.InsertEDIDataObject(InsertIndex: Integer; - EDIDataObject: TEDIDataObject): Integer; -begin - Result := InsertIndex; // Return position - if IndexIsValid(InsertIndex) then - begin - FEDIDataObjects.Insert(InsertIndex, EDIDataObject); - if FGroupIsParent then - EDIDataObject.Parent := Self; - end - else - Result := AppendEDIDataObject(EDIDataObject); -end; - -function TEDIDataObjectGroup.InsertEDIDataObjects(InsertIndex: Integer; - EDIDataObjectArray: TEDIDataObjectArray): Integer; -var - I: Integer; -begin - Result := InsertIndex; // Return position of 1st - if IndexIsValid(InsertIndex) then - begin - for I := High(EDIDataObjectArray) downto Low(EDIDataObjectArray) do - begin - FEDIDataObjects.Insert(InsertIndex, EDIDataObjectArray[I]); - if FGroupIsParent then - EDIDataObjectArray[I].Parent := Self; - end; - end - else - Result := AppendEDIDataObjects(EDIDataObjectArray); -end; - -function TEDIDataObjectGroup.InsertEDIDataObjects(InsertIndex, Count: Integer): Integer; -var - I: Integer; -begin - Result := InsertIndex; // Return position of 1st - if IndexIsValid(InsertIndex) then - begin - for I := 1 to Count do - FEDIDataObjects.Insert(InsertIndex, InternalCreateEDIDataObject); - end - else - Result := AddEDIDataObjects(Count); -end; - -procedure TEDIDataObjectGroup.SetEDIDataObject(Index: Integer; EDIDataObject: TEDIDataObject); -begin - if FEDIDataObjects.Count > 0 then - if Index >= 0 then - if Index <= FEDIDataObjects.Count - 1 then - begin - FEDIDataObjects.Item[Index].FreeAndNilEDIDataObject; - FEDIDataObjects[Index] := EDIDataObject; - if FGroupIsParent then - FEDIDataObjects[Index].Parent := Self; - end - else - raise EJclEDIError.CreateIDFmt(9, [Self.ClassName, IntToStr(Index)]) - else - raise EJclEDIError.CreateIDFmt(8, [Self.ClassName, IntToStr(Index)]) - else - raise EJclEDIError.CreateIDFmt(7, [Self.ClassName, IntToStr(Index)]); -end; - -function TEDIDataObjectGroup.GetIndexPositionFromParent: Integer; -var - I: Integer; - ParentGroup: TEDIDataObjectGroup; -begin - Result := -1; - if Assigned(Parent) and (Parent is TEDIDataObjectGroup) then - begin - ParentGroup := TEDIDataObjectGroup(Parent); - for I := 0 to ParentGroup.EDIDataObjectCount - 1 do - if ParentGroup.EDIDataObject[I] = Self then - begin - Result := I; - Break; - end; - end; // if -end; - -function TEDIDataObjectGroup.GetCount: Integer; -begin - Result := FEDIDataObjects.Count; -end; - -//=== { TEDIObjectListItem } ================================================= - -constructor TEDIObjectListItem.Create(Parent: TEDIObjectList; - PriorItem: TEDIObjectListItem; EDIObject: TEDIObject = nil); -begin - inherited Create; - FName := ''; - FParent := Parent; - FItemIndex := 0; - FEDIObject := EDIObject; - FPriorItem := PriorItem; - FNextItem := nil; - if FPriorItem <> nil then - FItemIndex := FPriorItem.ItemIndex + 1; - {$IFDEF ENABLE_EDI_DEBUGGING} - Inc(Debug_EDIDataObjectListItemsCreated); - {$ENDIF ENABLE_EDI_DEBUGGING} -end; - -destructor TEDIObjectListItem.Destroy; -begin - {$IFDEF ENABLE_EDI_DEBUGGING} - Inc(Debug_EDIDataObjectListItemsDestroyed); - {$ENDIF ENABLE_EDI_DEBUGGING} - FPriorItem := nil; - FNextItem := nil; - if FParent.OwnsObjects then - FreeAndNilEDIDataObject; - FEDIObject := nil; - FParent := nil; - inherited Destroy; -end; - -procedure TEDIObjectListItem.FreeAndNilEDIDataObject; -begin - FreeAndNil(FEDIObject); -end; - -function TEDIObjectListItem.GetIndexPositionFromParent: Integer; -begin - Result := FParent.IndexOf(Self); -end; - -//=== { TEDIObjectList } ===================================================== - -constructor TEDIObjectList.Create(OwnsObjects: Boolean = True); -begin - inherited Create; - FOwnsObjects := OwnsObjects; - FFirstItem := nil; - FLastItem := nil; - FCurrentItem := nil; - FCount := 0; - FOptions := [loAutoUpdateIndexes]; - {$IFDEF ENABLE_EDI_DEBUGGING} - Inc(Debug_EDIDataObjectListCreated); - {$ENDIF ENABLE_EDI_DEBUGGING} -end; - -destructor TEDIObjectList.Destroy; -begin - {$IFDEF ENABLE_EDI_DEBUGGING} - Inc(Debug_EDIDataObjectListDestroyed); - {$ENDIF ENABLE_EDI_DEBUGGING} - Clear; - inherited Destroy; -end; - -procedure TEDIObjectList.Clear; -var - ListItem: TEDIObjectListItem; - TempItem: TEDIObjectListItem; -begin - ListItem := FFirstItem; - while ListItem <> nil do - begin - TempItem := ListItem; - ListItem := ListItem.NextItem; - TempItem.Free; - end; - FFirstItem := nil; - FLastItem := nil; - FCurrentItem := nil; - FCount := 0; -end; - -function TEDIObjectList.First(Index: Integer): TEDIObjectListItem; -begin - if Index = 0 then - Result := FFirstItem - else - Result := GetItem(Index); - FCurrentItem := Result; -end; - -function TEDIObjectList.Last: TEDIObjectListItem; -begin - FCurrentItem := FLastItem; - Result := FCurrentItem; -end; - -function TEDIObjectList.Next: TEDIObjectListItem; -begin - FCurrentItem := FCurrentItem.NextItem; - Result := FCurrentItem; -end; - -function TEDIObjectList.Prior: TEDIObjectListItem; -begin - FCurrentItem := FCurrentItem.PriorItem; - Result := FCurrentItem; -end; - -function TEDIObjectList.Add(EDIObject: TEDIObject; Name: string): TEDIObjectListItem; -begin - Result := CreateListItem(FLastItem, EDIObject); - Result.Name := Name; - if FLastItem <> nil then - FLastItem.NextItem := Result; - if FFirstItem = nil then - FFirstItem := Result; - FLastItem := Result; - FCurrentItem := Result; - Inc(FCount); -end; - -function TEDIObjectList.FindItemByName(Name: string; - StartItem: TEDIObjectListItem): TEDIObjectListItem; -var - ListItem: TEDIObjectListItem; -begin - Result := nil; - if StartItem <> nil then - ListItem := StartItem - else - ListItem := First; - while ListItem <> nil do - begin - if ListItem.Name = Name then - begin - Result := ListItem; - Break; - end; - ListItem := Next; - end; -end; - -procedure TEDIObjectList.Insert(InsertIndex: Integer; EDIObject: TEDIObject); -var - ListItem: TEDIObjectListItem; -begin - FCurrentItem := GetItem(InsertIndex); - if FCurrentItem <> nil then - begin - //Link new item - ListItem := CreateListItem(FCurrentItem.PriorItem); - ListItem.NextItem := FCurrentItem; - ListItem.EDIObject := EDIObject; - //Relink current item - if FCurrentItem.PriorItem <> nil then - FCurrentItem.PriorItem.NextItem := ListItem - else - FFirstItem := ListItem; - FCurrentItem.PriorItem := ListItem; - // - FCurrentItem := ListItem; - Inc(FCount); - // Update the indexes starting at the current item. - if loAutoUpdateIndexes in FOptions then - UpdateIndexes(FCurrentItem); //Pass nil to force update of all items - end - else - Add(EDIObject); -end; - -function TEDIObjectList.GetItem(Index: Integer): TEDIObjectListItem; -var - I: Integer; - ListItem: TEDIObjectListItem; -begin - Result := nil; - if FCurrentItem <> nil then // Attempt to search from the current item. - begin - if Index = FCurrentItem.ItemIndex then // The index already points to the current item. - Result := FCurrentItem - else - if Index > FCurrentItem.ItemIndex then // Search forward in the list. - begin - I := FCurrentItem.ItemIndex - 1; - ListItem := FCurrentItem; - while ListItem <> nil do - begin - Inc(I); - if I = Index then - begin - Result := ListItem; - Break; - end; - ListItem := ListItem.NextItem; - end; - FCurrentItem := Result; - end - else // if Index < FCurrentItem.ItemIndex then // Search backward in the list. - begin - I := FCurrentItem.ItemIndex + 1; - ListItem := FCurrentItem; - while ListItem <> nil do - begin - Dec(I); - if I = Index then - begin - Result := ListItem; - Break; - end; - ListItem := ListItem.PriorItem; - end; - FCurrentItem := Result; - end; - end - else // No current item was assigned so search from the beginning of the structure. - begin - I := -1; - FCurrentItem := FFirstItem; - ListItem := FFirstItem; - while ListItem <> nil do - begin - Inc(I); - if I = Index then - begin - Result := ListItem; - Break; - end; - ListItem := ListItem.NextItem; - end; - FCurrentItem := Result; - end; -end; - -procedure TEDIObjectList.Delete(Index: Integer); -var - ListItem: TEDIObjectListItem; -begin - ListItem := GetItem(Index); - if ListItem <> nil then - begin - Remove(ListItem); - // Update the indexes starting at the current item. - if loAutoUpdateIndexes in FOptions then - UpdateIndexes(FCurrentItem.PriorItem); //Pass nil to force update of all items - end; -end; - -procedure TEDIObjectList.Delete(EDIObject: TEDIObject); -begin - Remove(EDIObject); - // Update the indexes starting at the current item. - if loAutoUpdateIndexes in FOptions then - UpdateIndexes(nil); //Pass nil to force update of all items -end; - -procedure TEDIObjectList.UpdateIndexes(StartItem: TEDIObjectListItem = nil); -var - I: Integer; - ListItem: TEDIObjectListItem; -begin - if StartItem <> nil then - begin - ListItem := StartItem; - I := StartItem.ItemIndex - 1; - end - else - begin - ListItem := FFirstItem; - I := -1; - end; - while ListItem <> nil do - begin - Inc(I); - ListItem.ItemIndex := I; - ListItem := ListItem.NextItem; - end; -end; - -procedure TEDIObjectList.UpdateCount; -var - ListItem: TEDIObjectListItem; -begin - FCount := 0; - ListItem := FFirstItem; - while ListItem <> nil do - begin - ListItem := ListItem.NextItem; - Inc(FCount); - end; -end; - -procedure TEDIObjectList.Remove(EDIObject: TEDIObject); -var - ListItem: TEDIObjectListItem; -begin - ListItem := Find(EDIObject); - if ListItem <> nil then - begin - // Remove the item from the list - ListItem := Extract(ListItem); - // Free the list item - FreeAndNil(ListItem); - end; -end; - -function TEDIObjectList.Extract(EDIObject: TEDIObject): TEDIObject; -var - ListItem: TEDIObjectListItem; -begin - Result := nil; - ListItem := Find(EDIObject); - if ListItem <> nil then - begin - // Extract the EDI Data Object - Result := ListItem.EDIObject; - ListItem.EDIObject := nil; - // Remove the item from the list - ListItem := Extract(ListItem); - // Free the list item - FreeAndNil(ListItem); - end; -end; - -function TEDIObjectList.IndexOf(EDIObject: TEDIObject): Integer; -var - I: Integer; - ListItem: TEDIObjectListItem; -begin - Result := -1; - I := 0; - ListItem := FFirstItem; - while ListItem <> nil do - begin - if ListItem.EDIObject = EDIObject then - begin - FCurrentItem := ListItem; - FCurrentItem.ItemIndex := I; - Result := I; - Break; - end; - ListItem := ListItem.NextItem; - Inc(I); - end; -end; - -function TEDIObjectList.GetEDIObject(Index: Integer): TEDIObject; -var - ListItem: TEDIObjectListItem; -begin - Result := nil; - ListItem := GetItem(Index); - if ListItem <> nil then - Result := ListItem.EDIObject; -end; - -procedure TEDIObjectList.SetEDIObject(Index: Integer; const Value: TEDIObject); -var - ListItem: TEDIObjectListItem; -begin - ListItem := GetItem(Index); - if ListItem <> nil then - ListItem.EDIObject := Value; -end; - -function TEDIObjectList.ReturnListItemsByName(Name: string): TEDIObjectList; -var - ListItem: TEDIObjectListItem; -begin - Result := TEDIObjectList.Create(False); - ListItem := First; - while ListItem <> nil do - begin - if ListItem.Name = Name then - Result.Add(ListItem.EDIObject, ListItem.Name); - ListItem := Next; - end; //while -end; - -function TEDIObjectList.IndexOf(Item: TEDIObjectListItem): Integer; -var - I: Integer; - ListItem: TEDIObjectListItem; -begin - Result := -1; - I := 0; - ListItem := FFirstItem; - while ListItem <> nil do - begin - if ListItem = Item then - begin - FCurrentItem := ListItem; - FCurrentItem.ItemIndex := I; - Result := I; - Break; - end; - ListItem := ListItem.NextItem; - Inc(I); - end; -end; - -procedure TEDIObjectList.Remove(Item: TEDIObjectListItem); -begin - // Remove the item from the list - Item := Extract(Item); - // Free the list item - FreeAndNil(Item); -end; - -function TEDIObjectList.Extract(Item: TEDIObjectListItem): TEDIObjectListItem; -begin - Result := Item; - // Set current item - if Item.NextItem <> nil then - FCurrentItem := Item.NextItem - else - FCurrentItem := Item.PriorItem; - // Extract the item and relink existing items. - if Item.NextItem <> nil then - Item.NextItem.PriorItem := Item.PriorItem; - if Item.PriorItem <> nil then - Item.PriorItem.NextItem := Item.NextItem; - if Item = FFirstItem then - FFirstItem := Item.NextItem; - if Item = FLastItem then - FLastItem := Item.PriorItem; - // Update the count - Dec(FCount); -end; - -procedure TEDIObjectList.Add(Item: TEDIObjectListItem; Name: string); -begin - Item.Parent := Self; - Item.Name := Name; - Item.NextItem := nil; - Item.PriorItem := nil; - if FLastItem <> nil then - begin - Item.PriorItem := FLastItem; - FLastItem.NextItem := Item; - end; - if FFirstItem = nil then - FFirstItem := Item; - FLastItem := Item; - FCurrentItem := Item; - Inc(FCount); -end; - -function TEDIObjectList.FindEDIObject(EDIObject: TEDIObject): TEDIObject; -var - ListItem: TEDIObjectListItem; -begin - Result := nil; - ListItem := FFirstItem; - while ListItem <> nil do - begin - if ListItem.EDIObject = EDIObject then - begin - FCurrentItem := ListItem; - Result := ListItem.EDIObject; - Break; - end; - ListItem := ListItem.NextItem; - end; -end; - -function TEDIObjectList.Find(Item: TEDIObjectListItem): TEDIObjectListItem; -var - ListItem: TEDIObjectListItem; -begin - Result := nil; - ListItem := FFirstItem; - while ListItem <> nil do - begin - if ListItem = Item then - begin - FCurrentItem := ListItem; - Result := ListItem; - Break; - end; - ListItem := ListItem.NextItem; - end; -end; - -function TEDIObjectList.Find(EDIObject: TEDIObject): TEDIObjectListItem; -var - ListItem: TEDIObjectListItem; -begin - Result := nil; - ListItem := FFirstItem; - while ListItem <> nil do - begin - if ListItem.EDIObject = EDIObject then - begin - FCurrentItem := ListItem; - Result := ListItem; - Break; - end; - ListItem := ListItem.NextItem; - end; -end; - -function TEDIObjectList.IndexIsValid(Index: Integer): Boolean; -begin - Result := False; - if (FCount > 0) and (Index >= 0) and (Index <= FCount - 1) then - Result := True; -end; - -function TEDIObjectList.Insert(Item, BeforeItem: TEDIObjectListItem): TEDIObjectListItem; -begin - Result := Item; - if Result = nil then - Result := CreateListItem(BeforeItem, nil); - Result.Parent := Self; - Result.PriorItem := nil; - Result.NextItem := nil; - if BeforeItem <> nil then // Insert item - begin - Result.PriorItem := BeforeItem.PriorItem; - BeforeItem.PriorItem := Result; - if Result.PriorItem <> nil then - Result.PriorItem.NextItem := Result; - Result.NextItem := BeforeItem; - end - else - if FFirstItem <> nil then // Insert as first item - begin - FFirstItem.PriorItem := Result; - Result.NextItem := FFirstItem; - FFirstItem := Result; - end - else - Add(Result); // Add as first item - FCurrentItem := Result; - Inc(FCount); -end; - -function TEDIObjectList.Insert(EDIObject, BeforeEDIObject: TEDIObject): TEDIObjectListItem; -var - BeforeItem: TEDIObjectListItem; -begin - BeforeItem := Find(BeforeEDIObject); - Result := CreateListItem(BeforeItem, EDIObject); - Insert(Result, BeforeItem); -end; - -function TEDIObjectList.Insert(BeforeItem: TEDIObjectListItem): TEDIObjectListItem; -begin - Result := CreateListItem(BeforeItem, nil); - Insert(Result, BeforeItem); -end; - -function TEDIObjectList.Insert(BeforeEDIObject: TEDIObject): TEDIObjectListItem; -begin - Result := Insert(nil, BeforeEDIObject); -end; - -//=== { TEDIDataObjectListItem } ============================================= - -function TEDIDataObjectListItem.GetEDIDataObject: TEDIDataObject; -begin - Result := TEDIDataObject(FEDIObject); -end; - -procedure TEDIDataObjectListItem.SetEDIDataObject(const Value: TEDIDataObject); -begin - FEDIObject := Value; -end; - -//=== { TEDIDataObjectList } ================================================= - -function TEDIDataObjectList.CreateListItem(PriorItem: TEDIObjectListItem; - EDIObject: TEDIObject): TEDIObjectListItem; -begin - Result := TEDIDataObjectListItem.Create(Self, PriorItem, EDIObject); -end; - -function TEDIDataObjectList.GetEDIDataObject(Index: Integer): TEDIDataObject; -begin - Result := TEDIDataObject(GetEDIObject(Index)); -end; - -procedure TEDIDataObjectList.SetEDIDataObject(Index: Integer; const Value: TEDIDataObject); -begin - SetEDIObject(Index, Value); -end; - -function TEDIObjectList.CreateListItem(PriorItem: TEDIObjectListItem; - EDIObject: TEDIObject = nil): TEDIObjectListItem; -begin - Result := TEDIObjectListItem.Create(Self, PriorItem, EDIObject); -end; - -//=== { TEDILoopStack } ====================================================== - -constructor TEDILoopStack.Create; -begin - inherited Create; - SetLength(FStack, 0); - FFlags := []; -end; - -destructor TEDILoopStack.Destroy; -var - I: Integer; -begin - for I := Low(FStack) to High(FStack) do - FStack[I].EDIObject := nil; - SetLength(FStack, 0); - inherited Destroy; -end; - -function TEDILoopStack.Debug: string; -var - I: Integer; -begin - Result := 'Loop Stack' + NativeLineBreak; - for I := 0 to High(FStack) do - Result := Result + FStack[I].SegmentId + ', ' + - FStack[I].OwnerLoopId + ', ' + - FStack[I].ParentLoopId + ', ' + - IntToStr(FStack[I].SpecStartIndex) + NativeLineBreak; -end; - -procedure TEDILoopStack.DoAddLoop(StackRecord: TEDILoopStackRecord; - SegmentId, OwnerLoopId, ParentLoopId: string; var EDIObject: TEDIObject); -begin - if Assigned(FOnAddLoop) then - FOnAddLoop(StackRecord, SegmentId, OwnerLoopId, ParentLoopId, EDIObject); -end; - -function TEDILoopStack.GetSafeStackIndex(Index: Integer): Integer; -begin - if Length(FStack) > 0 then - begin - if Index >= Low(FStack) then - begin - if Index <= High(FStack) then - Result := Index - else - Result := High(FStack); - end - else - Result := Low(FStack); - end - else - raise EJclEDIError.CreateIDFmt(57, [IntToStr(Index)]); -end; - -function TEDILoopStack.GetSize: Integer; -begin - Result := Length(FStack); -end; - -function TEDILoopStack.Peek: TEDILoopStackRecord; -begin - Result := FStack[High(FStack)]; -end; - -function TEDILoopStack.Peek(Index: Integer): TEDILoopStackRecord; -begin - if Length(FStack) > 0 then - if Index >= Low(FStack) then - if Index <= High(FStack) then - Result := FStack[Index] - else - raise EJclEDIError.CreateIDFmt(54, [IntToStr(Index)]) - else - raise EJclEDIError.CreateIDFmt(55, [IntToStr(Index)]) - else - raise EJclEDIError.CreateIDFmt(56, [IntToStr(Index)]); -end; - -procedure TEDILoopStack.Pop(Index: Integer); -begin - // Resize loop stack if the index is less than the length - if (Index >= 0) and (Index < Length(FStack)) then - begin - SetLength(FStack, Index); - FFlags := FFlags + [ediStackResized]; - end; -end; - -function TEDILoopStack.Push(SegmentId, OwnerLoopId, ParentLoopId: string; StartIndex: Integer; - EDIObject: TEDIObject): Integer; -begin - // Add to loop stack - SetLength(FStack, Length(FStack) + 1); - UpdateStackData(SegmentId, OwnerLoopId, ParentLoopId, StartIndex, EDIObject); - Result := High(FStack); -end; - -function TEDILoopStack.SetStackPointer(OwnerLoopId, - ParentLoopId: string): Integer; -var - I: Integer; -begin - FFlags := FFlags - [ediStackResized]; - FFlags := FFlags - [ediAltStackPointer]; - Result := -1; // Entry not found - // Find the loop in the stack - for I := High(FStack) downto 0 do - begin - if (OwnerLoopId = FStack[I].OwnerLoopId) and - (ParentLoopId = FStack[I].ParentLoopId) then - begin - Result := I; - // Pop entries from the stack starting at the index after the found loop - Pop(I + 1); - Break; - end; - end; - // Check if an exact entry was found - if Result = -1 then - begin - // Find the parent loop in the stack - for I := High(FStack) downto 0 do - begin - if (ParentLoopId = FStack[I].ParentLoopId) and - (FStack[I].OwnerLoopId <> NA_LoopId) then - begin - FFlags := FFlags + [ediAltStackPointer]; - Result := GetSafeStackIndex(I); - // Pop entries from the stack starting at the index after the found loop - Pop(I + 1); - Break; - end; - end; - end; -end; - -procedure TEDILoopStack.UpdateStackData(SegmentId, OwnerLoopId, ParentLoopId: string; - StartIndex: Integer; EDIObject: TEDIObject); -begin - FStack[High(FStack)].SegmentId := SegmentId; - FStack[High(FStack)].OwnerLoopId := OwnerLoopId; - FStack[High(FStack)].ParentLoopId := ParentLoopId; - FStack[High(FStack)].SpecStartIndex := StartIndex; - FStack[High(FStack)].EDIObject := EDIObject; -end; - -procedure TEDILoopStack.UpdateStackObject(EDIObject: TEDIObject); -begin - FStack[High(FStack)].EDIObject := EDIObject; -end; - -function TEDILoopStack.ValidateLoopStack(SegmentId, OwnerLoopId, ParentLoopId: string; - StartIndex: Integer; EDIObject: TEDIObject): TEDILoopStackRecord; -var - I: Integer; - StackRecord: TEDILoopStackRecord; -begin - if Length(FStack) <= 0 then - // Add entry to stack - Push(SegmentId, OwnerLoopId, ParentLoopId, StartIndex, EDIObject) - else - begin - I := SetStackPointer(OwnerLoopId, ParentLoopId); - if I >= 0 then // Entry found - begin - if ediLoopRepeated in FFlags then - begin - // Get the previous stack record so the repeated loop will not be nested - StackRecord := Peek(I-1); - // In event handler add loop to external data structure since it repeated - // See JclEDI_ANSIX12.TEDITransactionSetDocument class for implementation example. - DoAddLoop(StackRecord, SegmentId, OwnerLoopId, ParentLoopId, EDIObject); - // Update stack object only - UpdateStackObject(EDIObject); - // Debug - // ShowMessage('LoopRepeated'); - end - else - if ediAltStackPointer in FFlags then - begin - // Get the previous stack record because the loop - // is not to be nested at the current stack pointer - StackRecord := Peek(I-1); - // In event handler add loop to external data structure since it is new - // See JclEDI_ANSIX12.TEDITransactionSetDocument class for implementation example. - DoAddLoop(StackRecord, SegmentId, OwnerLoopId, ParentLoopId, EDIObject); - // Update stack entry - UpdateStackData(SegmentId, OwnerLoopId, ParentLoopId, StartIndex, EDIObject); - // Debug - // ShowMessage('AltStackPointer'); - end - else - if ediStackResized in FFlags then - begin - // Debug - // ShowMessage('Stack Size Decreased'); - end - else - begin - // Segment is part of loop - end; - end - else - if I = -1 then // Entry not found. - begin - // In event handler add loop since it is new - StackRecord := Peek; - // In event handler add loop to external data structure since it is new - DoAddLoop(StackRecord, SegmentId, OwnerLoopId, ParentLoopId, EDIObject); - // Add entry to stack - Push(SegmentId, OwnerLoopId, ParentLoopId, StartIndex, EDIObject); - // Debug - // ShowMessage('Stack Size Increased'); - end; - end; - Result := Peek; -end; - -{$IFNDEF EDI_WEAK_PACKAGE_UNITS} -{$IFDEF UNITVERSIONING} -initialization - RegisterUnitVersion(HInstance, UnitVersioning); - -finalization - UnregisterUnitVersion(HInstance); -{$ENDIF UNITVERSIONING} -{$ENDIF ~EDI_WEAK_PACKAGE_UNITS} -end. Deleted: trunk/jcl/source/common/JclEDISEF.pas =================================================================== --- trunk/jcl/source/common/JclEDISEF.pas 2010-05-04 21:05:47 UTC (rev 3242) +++ trunk/jcl/source/common/JclEDISEF.pas 2010-05-07 18:03:14 UTC (rev 3243) @@ -1,4745 +0,0 @@ -{**************************************************************************************************} -{ } -{ 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 JclEDISEF.pas. } -{ } -{ The Initial Developer of the Original Code is Raymond Alexander. } -{ Portions created by Raymond Alexander are Copyright (C) Raymond Alexander. All rights reserved. } -{ } -{ Contributor(s): } -{ Raymond Alexander (rayspostbox3), Robert Marquardt, Robert Rossmair, Petr Vones } -{ } -{**************************************************************************************************} -{ } -{ EDI Standard Exchange Format (*.sef) File Parser Unit } -{ } -{ This unit is still in development } -{ } -{ Unit owner: Raymond Alexander } -{ Date created: July, 20, 2003 } -{ Additional Info: } -{ E-Mail at RaysDelphiBox3 att hotmail dott com } -{ For latest EDI specific demos see http://sourceforge.net/projects/edisdk } -{ See home page for latest news & events and online help. } -{ } -{**************************************************************************************************} -{ } -{ Last modified: $Date:: $ } -{ Revision: $Rev:: $ } -{ Author: $Author:: $ } -{ ... [truncated message content] |