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: <ah...@us...> - 2008-03-11 17:40:00
|
Revision: 2362 http://jcl.svn.sourceforge.net/jcl/?rev=2362&view=rev Author: ahuser Date: 2008-03-11 10:39:57 -0700 (Tue, 11 Mar 2008) Log Message: ----------- Adjusted directories Modified Paths: -------------- trunk/thirdparty/InnoSetup/SourceDirectories.iss Modified: trunk/thirdparty/InnoSetup/SourceDirectories.iss =================================================================== --- trunk/thirdparty/InnoSetup/SourceDirectories.iss 2008-03-11 17:23:15 UTC (rev 2361) +++ trunk/thirdparty/InnoSetup/SourceDirectories.iss 2008-03-11 17:39:57 UTC (rev 2362) @@ -1,6 +1,5 @@ #define JclRoot "Z:\JEDI\JCL" #define BorlandRoot = "C:\Borland" #define CodeGearRoot = "C:\CodeGear" -#define BorlandSudioProjects "C:\Dokumente und Einstellungen\Andreas\Eigene Dateien\Borland Studio-Projekte" -#define CommonDocs "C:\Dokumente und Einstellungen\All Users\Dokumente" - +#define BorlandSudioProjects "C:\Users\Andreas\Documents\Borland Studio Projekte" +#define CommonDocs "C:\Users\Public\Documents" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ah...@us...> - 2008-03-11 17:23:19
|
Revision: 2361 http://jcl.svn.sourceforge.net/jcl/?rev=2361&view=rev Author: ahuser Date: 2008-03-11 10:23:15 -0700 (Tue, 11 Mar 2008) Log Message: ----------- InnoSetup 5.2.3modified Modified Paths: -------------- trunk/thirdparty/InnoSetup/InnoSetup/Compil32.exe trunk/thirdparty/InnoSetup/InnoSetup/Default.isl trunk/thirdparty/InnoSetup/InnoSetup/ISCmplr.dls trunk/thirdparty/InnoSetup/InnoSetup/Setup.e32 trunk/thirdparty/InnoSetup/InnoSetup/SetupLdr.e32 Modified: trunk/thirdparty/InnoSetup/InnoSetup/Compil32.exe =================================================================== (Binary files differ) Modified: trunk/thirdparty/InnoSetup/InnoSetup/Default.isl =================================================================== --- trunk/thirdparty/InnoSetup/InnoSetup/Default.isl 2008-03-09 22:54:44 UTC (rev 2360) +++ trunk/thirdparty/InnoSetup/InnoSetup/Default.isl 2008-03-11 17:23:15 UTC (rev 2361) @@ -1,7 +1,7 @@ ; *** Inno Setup version 5.1.11+ English messages *** ; ; To download user-contributed translations of this file, go to: -; http://www.jrsoftware.org/is3rdparty.php +; http://www.jrsoftware.org/files/istrans/ ; ; Note: When translating this text, do not add periods (.) to the end of ; messages that didn't have them already, because on those messages Inno Modified: trunk/thirdparty/InnoSetup/InnoSetup/ISCmplr.dls =================================================================== (Binary files differ) Modified: trunk/thirdparty/InnoSetup/InnoSetup/Setup.e32 =================================================================== (Binary files differ) Modified: trunk/thirdparty/InnoSetup/InnoSetup/SetupLdr.e32 =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ah...@us...> - 2008-03-09 22:54:49
|
Revision: 2360 http://jcl.svn.sourceforge.net/jcl/?rev=2360&view=rev Author: ahuser Date: 2008-03-09 15:54:44 -0700 (Sun, 09 Mar 2008) Log Message: ----------- Delphi 6, 7, 9 compiler fails on "SizeOf(Char)" Modified Paths: -------------- trunk/jcl/source/jedi.inc Modified: trunk/jcl/source/jedi.inc =================================================================== --- trunk/jcl/source/jedi.inc 2008-03-09 14:40:21 UTC (rev 2359) +++ trunk/jcl/source/jedi.inc 2008-03-09 22:54:44 UTC (rev 2360) @@ -935,9 +935,9 @@ {$IFDEF CLR} {$DEFINE SUPPORTS_UNICODE} {$ELSE} - {$IF SizeOf(Char) > 1} + {$IFDEF COMPILER12_UP} {$DEFINE SUPPORTS_UNICODE} - {$IFEND} + {$ENDIF COMPILER12_UP} {$ENDIF CLR} {$ENDIF CONDITIONALEXPRESSIONS} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2008-03-09 14:40:46
|
Revision: 2359 http://jcl.svn.sourceforge.net/jcl/?rev=2359&view=rev Author: outchy Date: 2008-03-09 07:40:21 -0700 (Sun, 09 Mar 2008) Log Message: ----------- issue reported by Mike B. in newsgroups: The archivedemo won't open a split archive (test.7z.001, test.7z.002,...,test.7z.nnn). It raises an exception about "Incorrect Function". The archivedemo however does create correct split files that can be read by 7zip and extracted, with one proviso. By default, the archivedemo generates split names with the file extension numbered ????.7z.1, ????.7z.2 etc. These cannot be read by 7zip. By renaming the extensions to ????.7z.001, ????.7z.002 etc, then they can be opened by 7zip. To generate these names automatically, you need to change the format string from %d to %.3d. Modified Paths: -------------- trunk/jcl/examples/windows/compression/archive/UMain.pas Modified: trunk/jcl/examples/windows/compression/archive/UMain.pas =================================================================== --- trunk/jcl/examples/windows/compression/archive/UMain.pas 2008-02-27 08:18:19 UTC (rev 2358) +++ trunk/jcl/examples/windows/compression/archive/UMain.pas 2008-03-09 14:40:21 UTC (rev 2359) @@ -232,7 +232,7 @@ InputQuery('Archive password', 'Value', Password); if VolumeSize <> 0 then - ArchiveFileName := ArchiveFileName + '.%d'; + ArchiveFileName := ArchiveFileName + '.%.3d'; FArchive := AFormat.Create(ArchiveFileName, VolumeSize, VolumeSize <> 0); FArchive.Password := Password; @@ -274,7 +274,7 @@ InputQuery('Archive password', 'Value', Password); if VolumeSize <> 0 then - ArchiveFileName := ArchiveFileName + '.%d'; + ArchiveFileName := ArchiveFileName + '.%.3d'; FArchive := AFormat.Create(ArchiveFileName, VolumeSize, VolumeSize <> 0); FArchive.Password := Password; @@ -305,7 +305,7 @@ if AFormat <> nil then begin if SplitArchive then - ArchiveFileName := ArchiveFileName + '.%d'; + ArchiveFileName := ArchiveFileName + '.%.3d'; InputQuery('Archive password', 'Value', Password); @@ -352,7 +352,7 @@ if AFormat <> nil then begin if SplitArchive then - ArchiveFileName := ArchiveFileName + '.%d'; + ArchiveFileName := ArchiveFileName + '.%.3d'; InputQuery('Archive password', 'Value', Password); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ob...@us...> - 2008-02-27 08:18:21
|
Revision: 2358 http://jcl.svn.sourceforge.net/jcl/?rev=2358&view=rev Author: obones Date: 2008-02-27 00:18:19 -0800 (Wed, 27 Feb 2008) Log Message: ----------- cleaner English message Modified Paths: -------------- trunk/jcl/experts/debug/tools/MakeJclDbg.dpr Modified: trunk/jcl/experts/debug/tools/MakeJclDbg.dpr =================================================================== --- trunk/jcl/experts/debug/tools/MakeJclDbg.dpr 2008-02-24 18:50:45 UTC (rev 2357) +++ trunk/jcl/experts/debug/tools/MakeJclDbg.dpr 2008-02-27 08:18:19 UTC (rev 2358) @@ -128,7 +128,7 @@ WriteLn('Usage: MAKEJCLDBG -<J|E> <map filenames>'); WriteLn(' J - Create .JDBG files'); WriteLn(' E - Insert debug data into executable files'); - WriteLn('Executable files must be in the same directory like MAP files'); + WriteLn('Executable files must be in the same directory as the MAP files'); end else if not MakeDebugData(ParamStr(2)) then This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <AH...@us...> - 2008-02-24 18:50:47
|
Revision: 2357 http://jcl.svn.sourceforge.net/jcl/?rev=2357&view=rev Author: AHUser Date: 2008-02-24 10:50:45 -0800 (Sun, 24 Feb 2008) Log Message: ----------- Support for Unicode by replacing assembler function Modified Paths: -------------- trunk/jcl/experts/debug/converter/JclDebugIdeImpl.pas trunk/jcl/source/common/JclStrings.pas trunk/jcl/source/jedi.inc Modified: trunk/jcl/experts/debug/converter/JclDebugIdeImpl.pas =================================================================== --- trunk/jcl/experts/debug/converter/JclDebugIdeImpl.pas 2008-02-20 09:30:04 UTC (rev 2356) +++ trunk/jcl/experts/debug/converter/JclDebugIdeImpl.pas 2008-02-24 18:50:45 UTC (rev 2357) @@ -185,6 +185,9 @@ uses TypInfo, + {$IFDEF HAS_UNIT_VARIANTS} + Variants, + {$ENDIF HAS_UNIT_VARIANTS} JclBase, JclBorlandTools, JclDebug, JclDebugIdeResult, JclOtaResources; @@ -433,8 +436,8 @@ if not Assigned(ProjOptions) then raise EJclExpertException.CreateTrace(RsENoProjectOptions); - - if ProjOptions.Values[MapFileOptionName] <> MapFileOptionDetailed then + // keep EVariantConvert away from us + if (VarToStr(ProjOptions.Values[MapFileOptionName]) <> IntToStr(MapFileOptionDetailed)) then begin if MessageDlg(Format(RsChangeMapFileOption, [ExtractFileName(Project.FileName)]), mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin @@ -1487,7 +1490,7 @@ on ExceptionObj: TObject do begin JclExpertShowExceptionDialog(ExceptionObj); - raise; + //raise; Do not lock out the user from compiling anything end; end; end; Modified: trunk/jcl/source/common/JclStrings.pas =================================================================== --- trunk/jcl/source/common/JclStrings.pas 2008-02-20 09:30:04 UTC (rev 2356) +++ trunk/jcl/source/common/JclStrings.pas 2008-02-24 18:50:45 UTC (rev 2357) @@ -235,13 +235,18 @@ {$ENDIF WIN32} {$IFNDEF CLR} +{$IFNDEF SUPPORTS_UNICODE} +{$IFDEF KEEP_DEPRECATED} // String Management -procedure StrAddRef(var S: string); -function StrAllocSize(const S: string): Longint; -procedure StrDecRef(var S: string); +procedure StrAddRef(var S: string); {$IFDEF SUPPORTS_DEPRECATED} deprecated; {$ENDIF} +function StrAllocSize(const S: string): Longint; {$IFDEF SUPPORTS_DEPRECATED} deprecated; {$ENDIF} +procedure StrDecRef(var S: string); {$IFDEF SUPPORTS_DEPRECATED} deprecated; {$ENDIF} +function StrLength(const S: string): Longint; {$IFDEF SUPPORTS_DEPRECATED} deprecated; {$ENDIF} +function StrRefCount(const S: string): Longint; {$IFDEF SUPPORTS_DEPRECATED} deprecated; {$ENDIF} +{$ENDIF KEEP_DEPRECATED} +{$ENDIF ~SUPPORTS_UNICODE} + function StrLen(S: PChar): Integer; -function StrLength(const S: string): Longint; -function StrRefCount(const S: string): Longint; {$ENDIF ~CLR} procedure StrResetLength(var S: string); overload; {$IFDEF CLR} @@ -356,8 +361,8 @@ {$IFDEF KEEP_DEPRECATED} function BooleanToStr(B: Boolean): string; {$ENDIF KEEP_DEPRECATED} -function FileToString(const FileName: string): AnsiString; -procedure StringToFile(const FileName: string; const Contents: AnsiString; Append: Boolean = False); +function FileToString(const FileName: string): AnsiString; // AnsiString here because it is binary data +procedure StringToFile(const FileName: string; const Contents: AnsiString; Append: Boolean = False); // AnsiString here because it is binary data function StrToken(var S: string; Separator: Char): string; procedure StrTokens(const S: string; const List: TStrings); procedure StrTokenToStrings(S: string; Separator: Char; const List: TStrings); @@ -412,26 +417,26 @@ // System.Text.StringBuilder. // It is zero based and the method that allow an TObject (Append, Insert, // AppendFormat) are limited to IToString implementors. + // This class is not threadsafe. Any instance of TStringBuilder should not + // be used in different threads at the same time. TStringBuilder = class(TInterfacedObject, IToString) private FChars: TCharDynArray; FLength: Integer; FMaxCapacity: Integer; - FLock: TJclIntfCriticalSection; function GetCapacity: Integer; procedure SetCapacity(const Value: Integer); function GetChars(Index: Integer): Char; procedure SetChars(Index: Integer; const Value: Char); procedure Set_Length(const Value: Integer); - + protected function AppendPChar(Value: PChar; Count: Integer; RepeatCount: Integer = 1): TStringBuilder; function InsertPChar(Index: Integer; Value: PChar; Count: Integer; RepeatCount: Integer = 1): TStringBuilder; public constructor Create(const Value: string; Capacity: Integer = 16); overload; constructor Create(Capacity: Integer = 16; MaxCapacity: Integer = MaxInt); overload; constructor Create(const Value: string; StartIndex, Length, Capacity: Integer); overload; - destructor Destroy; override; function Append(const Value: string): TStringBuilder; overload; function Append(const Value: string; StartIndex, Length: Integer): TStringBuilder; overload; @@ -597,33 +602,41 @@ {$IFDEF HAS_UNIT_LIBC} Libc, {$ENDIF HAS_UNIT_LIBC} + {$IFDEF SUPPORTS_UNICODE} + StrUtils, + {$ENDIF SUPPORTS_UNICODE} JclLogic, JclResources, JclStreams; //=== Internal =============================================================== {$IFNDEF CLR} + +{$IFNDEF SUPPORTS_UNICODE} type - TAnsiStrRec = packed record + TStrRec = packed record AllocSize: Longint; RefCount: Longint; Length: Longint; end; +{$ENDIF ~SUPPORTS_UNICODE} const - AnsiStrRecSize = SizeOf(TAnsiStrRec); // size of the string header rec - AnsiCharCount = Ord(High(Char)) + 1; // # of chars in one set - AnsiLoOffset = AnsiCharCount * 0; // offset to lower case chars - AnsiUpOffset = AnsiCharCount * 1; // offset to upper case chars - AnsiReOffset = AnsiCharCount * 2; // offset to reverse case chars - AnsiAlOffset = 12; // offset to AllocSize in StrRec - AnsiRfOffset = 8; // offset to RefCount in StrRec - AnsiLnOffset = 4; // offset to Length in StrRec - AnsiCaseMapSize = AnsiCharCount * 3; // # of chars is a table + MaxStrCharCount = Ord(High(Char)) + 1; // # of chars in one set + StrLoOffset = MaxStrCharCount * 0; // offset to lower case chars + StrUpOffset = MaxStrCharCount * 1; // offset to upper case chars + StrReOffset = MaxStrCharCount * 2; // offset to reverse case chars + StrCaseMapSize = MaxStrCharCount * 3; // # of chars is a table + {$IFNDEF SUPPORTS_UNICODE} + StrRecSize = SizeOf(TStrRec); // size of the string header rec + StrAllocOffset = 12; // offset to AllocSize in StrRec + StrRefCountOffset = 8; // offset to RefCount in StrRec + StrLengthOffset = 4; // offset to Length in StrRec + {$ENDIF ~SUPPORTS_UNICODE} var - AnsiCaseMap: array [0..AnsiCaseMapSize - 1] of Char; // case mappings - AnsiCaseMapReady: Boolean = False; // true if case map exists - AnsiCharTypes: array [Char] of Word; + StrCaseMap: array [0..StrCaseMapSize - 1] of Char; // case mappings + StrCaseMapReady: Boolean = False; // true if case map exists + StrCharTypes: array [Char] of Word; procedure LoadCharTypes; var @@ -661,7 +674,7 @@ CurrType := CurrType or C1_ALPHA; {$DEFINE CHAR_TYPES_INITIALIZED} {$ENDIF LINUX} - AnsiCharTypes[CurrChar] := CurrType; + StrCharTypes[CurrChar] := CurrType; {$IFNDEF CHAR_TYPES_INITIALIZED} Implement case map initialization here {$ENDIF ~CHAR_TYPES_INITIALIZED} @@ -672,7 +685,7 @@ var CurrChar, UpCaseChar, LoCaseChar, ReCaseChar: Char; begin - if not AnsiCaseMapReady then + if not StrCaseMapReady then begin for CurrChar := Low(Char) to High(Char) do begin @@ -698,11 +711,11 @@ ReCaseChar := UpCaseChar else ReCaseChar := CurrChar; - AnsiCaseMap[Ord(CurrChar) + AnsiLoOffset] := LoCaseChar; - AnsiCaseMap[Ord(CurrChar) + AnsiUpOffset] := UpCaseChar; - AnsiCaseMap[Ord(CurrChar) + AnsiReOffset] := ReCaseChar; + StrCaseMap[Ord(CurrChar) + StrLoOffset] := LoCaseChar; + StrCaseMap[Ord(CurrChar) + StrUpOffset] := UpCaseChar; + StrCaseMap[Ord(CurrChar) + StrReOffset] := ReCaseChar; end; - AnsiCaseMapReady := True; + StrCaseMapReady := True; end; end; {$ENDIF ~CLR} @@ -712,18 +725,36 @@ {$IFDEF CLR} const - AnsiLoOffset = 0; - AnsiUpOffset = 1; + StrLoOffset = 0; + StrUpOffset = 1; procedure StrCase(var Str: string; const Offset: Integer); begin - if Offset = AnsiUpOffset then + if Offset = StrUpOffset then Str := Str.ToUpper else Str := Str.ToLower; end; {$ELSE} -procedure StrCase(var Str: string; const Offset: Integer); register; assembler; +procedure StrCase(var Str: string; const Offset: Integer); +{$IFDEF SUPPORTS_UNICODE} +var + Len: Integer; + RetValue: string; +begin + Len := Length(Str); + SetLength(RetValue, Len); + case Offset of + StrUpOffset: + LCMapString(LOCALE_USER_DEFAULT, LCMAP_UPPERCASE, PChar(Str), Len, PChar(RetValue), Len); + StrLoOffset: + LCMapString(LOCALE_USER_DEFAULT, LCMAP_LOWERCASE, PChar(Str), Len, PChar(RetValue), Len); + else + Assert(False, 'StrReOffset not supported'); + end; + Str := RetValue; +end; +{$ELSE} asm // make sure that the string is not null @@ -743,7 +774,7 @@ // get the length, and prepare the counter - MOV ECX, [EAX - AnsiStrRecSize].TAnsiStrRec.Length + MOV ECX, [EAX - StrRecSize].TStrRec.Length DEC ECX JS @@StrIsNull @@ -756,9 +787,9 @@ // load case map and prepare variables } {$IFDEF PIC} - LEA EBX, [EBX][AnsiCaseMap + EDX] + LEA EBX, [EBX][StrCaseMap + EDX] {$ELSE} - LEA EBX, [AnsiCaseMap + EDX] + LEA EBX, [StrCaseMap + EDX] {$ENDIF PIC} MOV ESI, EAX XOR EDX, EDX @@ -816,6 +847,7 @@ @@StrIsNull: end; +{$ENDIF SUPPORTS_UNICODE} {$ENDIF CLR} {$IFNDEF CLR} @@ -823,7 +855,28 @@ // Uppercases or Lowercases a give null terminated string depending on the // passed offset. (UpOffset or LoOffset) -procedure StrCaseBuff(S: PChar; const Offset: Integer); register; assembler; +procedure StrCaseBuff(S: PChar; const Offset: Integer); +{$IFDEF SUPPORTS_UNICODE} +var + Len: Integer; + RetValue: string; +begin + if S <> nil then + begin + Len := StrLen(S); + SetLength(RetValue, Len); + case Offset of + StrUpOffset: + LCMapString(LOCALE_USER_DEFAULT, LCMAP_UPPERCASE, S, Len, PChar(RetValue), Len); + StrLoOffset: + LCMapString(LOCALE_USER_DEFAULT, LCMAP_LOWERCASE, S, Len, PChar(RetValue), Len); + else + Assert(False, 'StrReOffset not supported'); + end; + Move(PChar(RetValue)^, S^, Len * SizeOf(Char)); + end; +end; +{$ELSE} asm // make sure the string is not null @@ -838,9 +891,9 @@ // load case map and prepare variables {$IFDEF PIC} - LEA EBX, [EBX][AnsiCaseMap + EDX] + LEA EBX, [EBX][StrCaseMap + EDX] {$ELSE} - LEA EBX, [AnsiCaseMap + EDX] + LEA EBX, [StrCaseMap + EDX] {$ENDIF PIC} MOV ESI, EAX XOR EDX, EDX @@ -895,18 +948,13 @@ @@StrIsNull: end; +{$ENDIF SUPPORTS_UNICODE} -function StrEndW(Str: PWideChar): PWideChar; assembler; -// returns a pointer to the end of a null terminated string -// stolen from JclUnicode -asm - MOV EDX, EDI - MOV EDI, EAX - MOV ECX, 0FFFFFFFFH - XOR AX, AX - REPNE SCASW - LEA EAX, [EDI - 2] - MOV EDI, EDX +function StrEndW(Str: PWideChar): PWideChar; +begin + Result := Str; + while Result^ <> #0 do + Inc(Result); end; {$ENDIF ~CLR} @@ -1266,14 +1314,13 @@ procedure StrLowerInPlace(var S: string); {$IFDEF PIC} begin - StrCase(S, AnsiLoOffset); + StrCase(S, StrLoOffset); end; {$ELSE} -assembler; asm - // StrCase(S, AnsiLoOffset) + // StrCase(S, StrLoOffset) - XOR EDX, EDX // MOV EDX, LoOffset + XOR EDX, EDX // MOV EDX, StrLoOffset JMP StrCase end; {$ENDIF PIC} @@ -1282,10 +1329,9 @@ procedure StrLowerBuff(S: PChar); {$IFDEF PIC} begin - StrCaseBuff(S, AnsiLoOffset); + StrCaseBuff(S, StrLoOffset); end; {$ELSE} -assembler; asm // StrCaseBuff(S, LoOffset) XOR EDX, EDX // MOV EDX, LoOffset @@ -1322,7 +1368,7 @@ {$IFDEF CLR} MoveString(Source, FromIndex, Dest, ToIndex, Count); {$ELSE} - Move(Source[FromIndex], Dest[ToIndex], Count); + Move(Source[FromIndex], Dest[ToIndex], Count * SizeOf(Char)); {$ENDIF CLR} end; @@ -1487,7 +1533,7 @@ if Dest <> nil then for Index := 0 to Count - 1 do begin - Move(Source^, Dest^, Len*SizeOf(Char)); + Move(Source^, Dest^, Len * SizeOf(Char)); Inc(Dest,Len*SizeOf(Char)); end; end; @@ -1533,7 +1579,7 @@ Dest := PChar(Result); while (L > 0) do begin - Move(S[1],Dest^,Min(L,Len)*SizeOf(Char)); + Move(S[1], Dest^, Min(L, Len) *SizeOf(Char)); Inc(Dest,Len); Dec(L,Len); end; @@ -1642,7 +1688,7 @@ ResultPtr := @ResultStr[ResultIndex]; end; { append replace to result and move past the search string in source } - Move((@Replace[1])^, ResultPtr^, ReplaceLength); + Move((@Replace[1])^, ResultPtr^, ReplaceLength * SizeOf(Char)); end; Inc(SourcePtr, SearchLength); Inc(ResultPtr, ReplaceLength); @@ -2004,12 +2050,12 @@ procedure StrUpperInPlace(var S: string); {$IFDEF PIC} begin - StrCase(S, AnsiUpOffset); + StrCase(S, StrUpOffset); end; {$ELSE} asm - // StrCase(Str, AnsiUpOffset) - MOV EDX, AnsiUpOffset + // StrCase(Str, StrUpOffset) + MOV EDX, StrUpOffset JMP StrCase end; {$ENDIF PIC} @@ -2018,12 +2064,12 @@ procedure StrUpperBuff(S: PChar); {$IFDEF PIC} begin - StrCaseBuff(S, AnsiUpOffset); + StrCaseBuff(S, StrUpOffset); end; {$ELSE} asm // StrCaseBuff(S, UpOffset) - MOV EDX, AnsiUpOffset + MOV EDX, StrUpOffset JMP StrCaseBuff end; {$ENDIF PIC} @@ -2051,6 +2097,8 @@ {$IFNDEF CLR} //=== String Management ====================================================== +{$IFNDEF SUPPORTS_UNICODE} +{$IFDEF KEEP_DEPRECATED} procedure StrAddRef(var S: string); var Foo: string; @@ -2071,10 +2119,10 @@ Result := 0; if Pointer(S) <> nil then begin - P := Pointer(Integer(Pointer(S)) - AnsiRfOffset); + P := Pointer(Integer(Pointer(S)) - StrRefCountOffset); if Integer(P^) <> -1 then begin - P := Pointer(Integer(Pointer(S)) - AnsiAlOffset); + P := Pointer(Integer(Pointer(S)) - StrAllocOffset); Result := Integer(P^); end; end; @@ -2096,7 +2144,48 @@ end; end; -function StrLen(S: PChar): Integer; assembler; +function StrLength(const S: string): Longint; +var + P: Pointer; +begin + Result := 0; + if Pointer(S) <> nil then + begin + P := Pointer(Integer(Pointer(S)) - StrLengthOffset); + Result := Longint(P^) and (not $80000000 shr 1); + end; +end; + +function StrRefCount(const S: string): Longint; +var + P: Pointer; +begin + Result := 0; + if Pointer(S) <> nil then + begin + P := Pointer(Integer(Pointer(S)) - StrRefCountOffset); + Result := Longint(P^); + end; +end; +{$ENDIF KEEP_DEPRECATED} +{$ENDIF ~SUPPORTS_UNICODE} + +function StrLen(S: PChar): Integer; +{$IFDEF SUPPORTS_UNICODE} +var + P: PChar; +begin + P := S; + if P <> nil then + begin + while P^ <> #0 do + Inc(P); + Result := P - S; + end + else + Result := 0; +end; +{$ELSE} asm TEST EAX, EAX JZ @@EXIT @@ -2122,30 +2211,8 @@ DEC EAX // do not include null terminator @@EXIT: end; +{$ENDIF SUPPORTS_UNICODE} -function StrLength(const S: string): Longint; -var - P: Pointer; -begin - Result := 0; - if Pointer(S) <> nil then - begin - P := Pointer(Integer(Pointer(S)) - AnsiLnOffset); - Result := Integer(P^) and (not $80000000 shr 1); - end; -end; - -function StrRefCount(const S: string): Longint; -var - P: Pointer; -begin - Result := 0; - if Pointer(S) <> nil then - begin - P := Pointer(Integer(Pointer(S)) - AnsiRfOffset); - Result := Integer(P^); - end; -end; {$ENDIF ~CLR} procedure StrResetLength(var S: string); @@ -2230,10 +2297,118 @@ end end; -{$IFDEF CLR} +{$IFDEF SUPPORTS_UNICODE} +(* +{ 1} Test(StrCompareRange('', '', 1, 5), 0); +{ 2} Test(StrCompareRange('A', '', 1, 5), -1); +{ 3} Test(StrCompareRange('AB', '', 1, 5), -1); +{ 4} Test(StrCompareRange('ABC', '', 1, 5), -1); +{ 5} Test(StrCompareRange('', 'A', 1, 5), -1); +{ 6} Test(StrCompareRange('', 'AB', 1, 5), -1); +{ 7} Test(StrCompareRange('', 'ABC', 1, 5), -1); +{ 8} Test(StrCompareRange('A', 'a', 1, 5), -2); +{ 9} Test(StrCompareRange('A', 'a', 1, 1), -32); +{10} Test(StrCompareRange('aA', 'aB', 1, 1), 0); +{11} Test(StrCompareRange('aA', 'aB', 1, 2), -1); +{12} Test(StrCompareRange('aB', 'aA', 1, 2), 1); +{13} Test(StrCompareRange('aA', 'aa', 1, 2), -32); +{14} Test(StrCompareRange('aa', 'aA', 1, 2), 32); +{15} Test(StrCompareRange('', '', 1, 0), 0); +{16} Test(StrCompareRange('A', 'A', 1, 0), -2); +{17} Test(StrCompareRange('Aa', 'A', 1, 0), -2); +{18} Test(StrCompareRange('Aa', 'Aa', 1, 2), 0); +{19} Test(StrCompareRange('Aa', 'A', 1, 2), 0); +{20} Test(StrCompareRange('Ba', 'A', 1, 2), 1); +*) +function StrCompareRangeEx(const S1, S2: string; Index, Count: Integer; CaseSensitive: Boolean): Integer; +var + Len1, Len2: Integer; + I: Integer; + C1, C2: Char; +begin + {$IFDEF CLR} + if S1 = S2 then + {$ELSE} + if Pointer(S1) = Pointer(S2) then + {$ENDIF CLR} + begin + if (Count <= 0) and (S1 <> '') then + Result := -2 // no work + else + Result := 0; + end + else + if (S1 = '') or (S2 = '') then + Result := -1 // null string + else + if Count <= 0 then + Result := -2 // no work + else + begin + Len1 := Length(S1); + Len2 := Length(S2); + + if (Index - 1) + Count > Len1 then + Result := -2 + else + begin + if (Index - 1) + Count > Len2 then // strange behaviour, but the assembler code does it + Count := Len2 - (Index - 1); + + if CaseSensitive then + begin + for I := 0 to Count - 1 do + begin + C1 := S1[Index + I]; + C2 := S2[Index + I]; + if C1 <> C2 then + begin + Result := Ord(C1) - Ord(C2); + Exit; + end; + end; + end + else + begin + for I := 0 to Count - 1 do + begin + C1 := S1[Index + I]; + C2 := S2[Index + I]; + if C1 <> C2 then + begin + C1 := CharLower(C1); + C2 := CharLower(C2); + if C1 <> C2 then + begin + Result := Ord(C1) - Ord(C2); + Exit; + end; + end; + end; + end; + Result := 0; + end; + end; +end; + function StrCompare(const S1, S2: string): Integer; +var + Len1, Len2: Integer; begin - Result := S1.CompareTo(S2); + {$IFDEF CLR} + if S1 = S2 then + {$ELSE} + if Pointer(S1) = Pointer(S2) then + {$ENDIF CLR} + Result := 0 + else + begin + Len1 := Length(S1); + Len2 := Length(S2); + Result := Len1 - Len2; + if Result = 0 then + Result := StrCompareRangeEx(S1, S2, 1, Len1, False); + end; end; {$ELSE} {$IFDEF PIC} @@ -2244,9 +2419,9 @@ Result := _StrCompare(S1, S2); end; -function _StrCompare(const S1, S2: string): Integer; assembler; +function _StrCompare(const S1, S2: string): Integer; {$ELSE} -function StrCompare(const S1, S2: string): Integer; assembler; +function StrCompare(const S1, S2: string): Integer; {$ENDIF PIC} asm // check if pointers are equal @@ -2277,8 +2452,8 @@ // get the length of strings - MOV EAX, [ESI-AnsiStrRecSize].TAnsiStrRec.Length - MOV EDX, [EDI-AnsiStrRecSize].TAnsiStrRec.Length + MOV EAX, [ESI-StrRecSize].TStrRec.Length + MOV EDX, [EDI-StrRecSize].TStrRec.Length // exit if Length(S1) <> Length(S2) @@ -2295,7 +2470,7 @@ // load case map - LEA EBX, AnsiCaseMap + LEA EBX, StrCaseMap // make ECX our loop counter @@ -2372,28 +2547,27 @@ @@Str1Null: // return = - Length(Str2); - MOV EDX, [EDX-AnsiStrRecSize].TAnsiStrRec.Length + MOV EDX, [EDX-StrRecSize].TStrRec.Length SUB EAX, EDX RET @@Str2Null: // return = Length(Str2); - MOV EAX, [EAX-AnsiStrRecSize].TAnsiStrRec.Length + MOV EAX, [EAX-StrRecSize].TStrRec.Length RET @@Equal: XOR EAX, EAX end; -{$ENDIF CLR} +{$ENDIF SUPPORTS_UNICODE} -{$IFDEF CLR} function StrCompareRange(const S1, S2: string; const Index, Count: Integer): Integer; +{$IFDEF SUPPORTS_UNICODE} begin - Result := System.String.Compare(S1, Index - 1, S2, Index - 1, Count, False); + Result := StrCompareRangeEx(S1, S2, Index, Count, True); end; {$ELSE} -function StrCompareRange(const S1, S2: string; const Index, Count: Integer): Integer; assembler; asm TEST EAX, EAX JZ @@Str1Null @@ -2415,7 +2589,7 @@ MOV ESI, EAX MOV EDI, EDX - MOV EDX, [ESI - AnsiStrRecSize].TAnsiStrRec.Length + MOV EDX, [ESI - StrRecSize].TStrRec.Length // # of chars in S1 - (Index - 1) SUB EDX, ECX @@ -2428,7 +2602,7 @@ // move to index'th char ADD ESI, ECX - MOV ECX, [EDI - AnsiStrRecSize].TAnsiStrRec.Length + MOV ECX, [EDI - StrRecSize].TStrRec.Length DEC ECX JS @@NoWork @@ -2485,7 +2659,7 @@ @@Exit: end; -{$ENDIF CLR} +{$ENDIF SUPPORTS_UNICODE} function StrFillChar(const C: Char; Count: Integer): string; {$IFDEF CLR} @@ -2504,7 +2678,7 @@ begin SetLength(Result, Count); if (Count > 0) then - FillChar(Result[1], Count, Ord(C)); + FillChar(Result[1], Count * SizeOf(Char), Ord(C)); end; {$ENDIF CLR} @@ -2514,7 +2688,12 @@ Result := System.String(S).ToLower().IndexOf(System.String(SubStr).ToLower(), Index - 1) + 1; end; {$ELSE} -function StrFind(const Substr, S: string; const Index: Integer): Integer; assembler; +function StrFind(const Substr, S: string; const Index: Integer): Integer; +{$IFDEF SUPPORTS_UNICODE} +begin + Result := PosEx(AnsiLowerCase(SubStr), AnsiLowerCase(S), Index); +end; +{$ELSE} const SearchChar: Byte = 0; NumberOfChars: Integer = 0; @@ -2552,8 +2731,8 @@ // temporary get the length of Substr and Str - MOV EBX, [EDI - AnsiStrRecSize].TAnsiStrRec.Length - MOV ECX, [ESI - AnsiStrRecSize].TAnsiStrRec.Length + MOV EBX, [EDI - StrRecSize].TStrRec.Length + MOV ECX, [ESI - StrRecSize].TStrRec.Length // save the address of Str to compute the result @@ -2582,7 +2761,7 @@ // load case map into EBX, and clear EAX - LEA EBX, AnsiCaseMap + LEA EBX, StrCaseMap XOR EAX, EAX XOR EDX, EDX @@ -2644,7 +2823,7 @@ // otherwise try the reverse case. If they still don't match go back to the Find loop - MOV AL, [EBX + EAX + AnsiReOffset] + MOV AL, [EBX + EAX + StrReOffset] CMP AL, [EDI + EDX] JNE @@FindNext @@ -2685,6 +2864,7 @@ @@SubstrIsNull: @@Exit: end; +{$ENDIF SUPPORTS_UNICODE} {$ENDIF CLR} function StrHasPrefix(const S: string; const Prefixes: array of string): Boolean; @@ -2763,10 +2943,17 @@ {$IFDEF CLR} begin { TODO : StrMatch } + Assert(False, 'Not implemented yet'); Result := 0; end; {$ELSE} -assembler; +{$IFDEF SUPPORTS_UNICODE} +begin + { TODO : StrMatch } + Assert(False, 'Not implemented yet'); + Result := 0; +end; +{$ELSE} asm // make sure that strings are not null @@ -2804,8 +2991,8 @@ // temporary get the length of Substr and Str - MOV EBX, [EDI - AnsiStrRecSize].TAnsiStrRec.Length - MOV ECX, [ESI - AnsiStrRecSize].TAnsiStrRec.Length + MOV EBX, [EDI - StrRecSize].TStrRec.Length + MOV ECX, [ESI - StrRecSize].TStrRec.Length // dec the length of Substr because the first char is brought out of it @@ -2830,7 +3017,7 @@ // load case map into EBX, and clear EAX & ECX - LEA EBX, AnsiCaseMap + LEA EBX, StrCaseMap XOR EAX, EAX XOR ECX, ECX @@ -2898,7 +3085,7 @@ CMP AL, [ESI + EDX] // equal to PChar(Str)^ ? JE @@CompareNext - MOV AL, [EBX + EAX + AnsiReOffset] // reverse case? + MOV AL, [EBX + EAX + StrReOffset] // reverse case? CMP AL, [ESI + EDX] JNE @@FindNext // if still no, go back to the main loop @@ -2941,6 +3128,7 @@ @@SubstrIsNull: @@Exit: end; +{$ENDIF SUPPORTS_UNICODE} {$ENDIF CLR} // Derived from "Like" by Michael Winter @@ -3142,7 +3330,12 @@ Result := System.String(S).IndexOf(SubStr, Index - 1) + 1; end; {$ELSE} -function StrSearch(const Substr, S: string; const Index: Integer): Integer; assembler; +function StrSearch(const Substr, S: string; const Index: Integer): Integer; +{$IFDEF SUPPORTS_UNICODE} +begin + Result := PosEx(SubStr, S, Index); +end; +{$ELSE} asm // make sure that strings are not null @@ -3180,8 +3373,8 @@ // temporary get the length of Substr and Str - MOV EBX, [EDI-AnsiStrRecSize].TAnsiStrRec.Length - MOV ECX, [ESI-AnsiStrRecSize].TAnsiStrRec.Length + MOV EBX, [EDI-StrRecSize].TStrRec.Length + MOV ECX, [ESI-StrRecSize].TStrRec.Length // dec the length of Substr because the first char is brought out of it @@ -3297,6 +3490,7 @@ @@SubstrIsNull: @@Exit: end; +{$ENDIF SUPPORTS_UNICODE} {$ENDIF CLR} //=== String Extraction ====================================================== @@ -3381,7 +3575,7 @@ {$IFDEF CLR} Result := System.Char.IsLetter(C); {$ELSE} - Result := (AnsiCharTypes[C] and C1_ALPHA) <> 0; + Result := (StrCharTypes[C] and C1_ALPHA) <> 0; {$ENDIF CLR} end; @@ -3390,8 +3584,8 @@ {$IFDEF CLR} Result := System.Char.IsLetterOrDigit(C); {$ELSE} - Result := ((AnsiCharTypes[C] and C1_ALPHA) <> 0) or - ((AnsiCharTypes[C] and C1_DIGIT) <> 0); + Result := ((StrCharTypes[C] and C1_ALPHA) <> 0) or + ((StrCharTypes[C] and C1_DIGIT) <> 0); {$ENDIF CLR} end; @@ -3400,7 +3594,7 @@ {$IFDEF CLR} Result := System.Char.IsSurrogate(C); {$ELSE} - Result := ((AnsiCharTypes[C] and C1_BLANK) <> 0); + Result := ((StrCharTypes[C] and C1_BLANK) <> 0); {$ENDIF CLR} end; @@ -3409,7 +3603,7 @@ {$IFDEF CLR} Result := System.Char.IsControl(C); {$ELSE} - Result := (AnsiCharTypes[C] and C1_CNTRL) <> 0; + Result := (StrCharTypes[C] and C1_CNTRL) <> 0; {$ENDIF CLR} end; @@ -3423,7 +3617,7 @@ {$IFDEF CLR} Result := System.Char.IsDigit(C); {$ELSE} - Result := (AnsiCharTypes[C] and C1_DIGIT) <> 0; + Result := (StrCharTypes[C] and C1_DIGIT) <> 0; {$ENDIF CLR} end; @@ -3432,7 +3626,7 @@ {$IFDEF CLR} Result := System.Char.IsLower(C); {$ELSE} - Result := (AnsiCharTypes[C] and C1_LOWER) <> 0; + Result := (StrCharTypes[C] and C1_LOWER) <> 0; {$ENDIF CLR} end; @@ -3441,7 +3635,7 @@ {$IFDEF CLR} Result := System.Char.IsDigit(C) or (C = '+') or (C = '-') or (C = DecimalSeparator); {$ELSE} - Result := ((AnsiCharTypes[C] and C1_DIGIT) <> 0) or (C in AnsiSigns) or (C = DecimalSeparator); + Result := ((StrCharTypes[C] and C1_DIGIT) <> 0) or (C in AnsiSigns) or (C = DecimalSeparator); {$ENDIF CLR} end; @@ -3455,7 +3649,7 @@ {$IFDEF CLR} Result := System.Char.IsPunctuation(C); {$ELSE} - Result := ((AnsiCharTypes[C] and C1_PUNCT) <> 0); + Result := ((StrCharTypes[C] and C1_PUNCT) <> 0); {$ENDIF CLR} end; @@ -3469,7 +3663,7 @@ {$IFDEF CLR} Result := System.Char.IsSeparator(C); {$ELSE} - Result := (AnsiCharTypes[C] and C1_SPACE) <> 0; + Result := (StrCharTypes[C] and C1_SPACE) <> 0; {$ENDIF CLR} end; @@ -3478,7 +3672,7 @@ {$IFDEF CLR} Result := System.Char.IsUpper(C); {$ELSE} - Result := (AnsiCharTypes[C] and C1_UPPER) <> 0; + Result := (StrCharTypes[C] and C1_UPPER) <> 0; {$ENDIF CLR} end; @@ -3494,7 +3688,7 @@ {$IFNDEF CLR} function CharType(const C: Char): Word; begin - Result := AnsiCharTypes[C]; + Result := StrCharTypes[C]; end; //=== PCharVector ============================================================ @@ -3602,7 +3796,7 @@ {$IFDEF CLR} Result := System.Char.ToLower(C); {$ELSE} - Result := AnsiCaseMap[Ord(C) + AnsiLoOffset]; + Result := StrCaseMap[Ord(C) + StrLoOffset]; {$ENDIF CLR} end; @@ -3617,7 +3811,7 @@ else Result := C; {$ELSE} - Result := AnsiCaseMap[Ord(C) + AnsiReOffset]; + Result := StrCaseMap[Ord(C) + StrReOffset]; {$ENDIF CLR} end; @@ -3626,7 +3820,7 @@ {$IFDEF CLR} Result := System.Char.ToUpper(C); {$ELSE} - Result := AnsiCaseMap[Ord(C) + AnsiUpOffset]; + Result := StrCaseMap[Ord(C) + StrUpOffset]; {$ENDIF CLR} end; @@ -3663,7 +3857,7 @@ {$IFDEF CLR} if System.Char.ToUpper(S[Result]) = C then {$ELSE} - if AnsiCaseMap[Ord(S[Result]) + AnsiUpOffset] = C then + if StrCaseMap[Ord(S[Result]) + StrUpOffset] = C then {$ENDIF CLR} Exit; end; @@ -4726,17 +4920,10 @@ constructor TStringBuilder.Create(Capacity: Integer; MaxCapacity: Integer); begin inherited Create; - FLock := TJclIntfCriticalSection.Create; SetLength(FChars, Capacity); FMaxCapacity := MaxCapacity; end; -destructor TStringBuilder.Destroy; -begin - FLock.Free; - inherited Destroy; -end; - constructor TStringBuilder.Create(const Value: string; Capacity: Integer); begin Create(Capacity); @@ -4798,14 +4985,9 @@ function TStringBuilder.AppendPChar(Value: PChar; Count: Integer; RepeatCount: Integer): TStringBuilder; var Capacity: Integer; - IsMultiThreaded: Boolean; - LockInterface: IInterface; begin if (Count > 0) and (RepeatCount > 0) then begin - IsMultiThreaded := IsMultiThread; - if IsMultiThreaded then - LockInterface := FLock; // automatically freed repeat Capacity := System.Length(FChars); if Capacity + Count > MaxCapacity then @@ -4827,22 +5009,15 @@ RepeatCount: Integer): TStringBuilder; var Capacity: Integer; - IsMultiThreaded: Boolean; - LockInterface: IInterface; begin if (Index < 0) or (Index > FLength) then raise ArgumentOutOfRangeException.CreateRes(@RsArgumentOutOfRange); if Index = FLength then - begin - AppendPChar(Value, Count, RepeatCount); - end + AppendPChar(Value, Count, RepeatCount) else if (Count > 0) and (RepeatCount > 0) then begin - IsMultiThreaded := IsMultiThread; - if IsMultiThreaded then - LockInterface := FLock; // automatically freed repeat Capacity := System.Length(FChars); if Capacity + Count > MaxCapacity then Modified: trunk/jcl/source/jedi.inc =================================================================== --- trunk/jcl/source/jedi.inc 2008-02-20 09:30:04 UTC (rev 2356) +++ trunk/jcl/source/jedi.inc 2008-02-24 18:50:45 UTC (rev 2357) @@ -384,6 +384,7 @@ HAS_UNIT_DATEUTILS Unit DateUtils exists (D6+/BCB6+/FPC) HAS_UNIT_CONTNRS Unit contnrs exists (D6+/BCB6+/FPC) XPLATFORM_RTL The RTL supports crossplatform function names (e.g. RaiseLastOSError) (D6+/BCB6+/FPC) + SUPPORTS_UNICODE Compiler supports unicode strings - Compiler Settings @@ -930,6 +931,16 @@ {$ENDIF} {$ENDIF FPC} +{$IFDEF CONDITIONALEXPRESSIONS} + {$IFDEF CLR} + {$DEFINE SUPPORTS_UNICODE} + {$ELSE} + {$IF SizeOf(Char) > 1} + {$DEFINE SUPPORTS_UNICODE} + {$IFEND} + {$ENDIF CLR} +{$ENDIF CONDITIONALEXPRESSIONS} + {$IFDEF COMPILER1_UP} {$DEFINE SUPPORTS_CONSTPARAMS} {$DEFINE SUPPORTS_SINGLE} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ob...@us...> - 2008-02-20 09:30:11
|
Revision: 2356 http://jcl.svn.sourceforge.net/jcl/?rev=2356&view=rev Author: obones Date: 2008-02-20 01:30:04 -0800 (Wed, 20 Feb 2008) Log Message: ----------- Set language to en-US for the TortoiseSVN spell checker. Property Changed: ---------------- trunk/ trunk/donations/ trunk/help/ trunk/jcl/ trunk/jpp/ trunk/qa/ trunk/shell/ trunk/thirdparty/ Property changes on: trunk ___________________________________________________________________ Name: tsvn:projectlanguage + 0x0409 Property changes on: trunk/donations ___________________________________________________________________ Name: tsvn:projectlanguage + 0x0409 Property changes on: trunk/help ___________________________________________________________________ Name: tsvn:projectlanguage + 0x0409 Property changes on: trunk/jcl ___________________________________________________________________ Name: tsvn:projectlanguage + 0x0409 Property changes on: trunk/jpp ___________________________________________________________________ Name: tsvn:logfilelistenglish + 0x0409 Property changes on: trunk/qa ___________________________________________________________________ Name: tsvn:projectlanguage + 0x0409 Property changes on: trunk/shell ___________________________________________________________________ Name: tsvn:projectlanguage + 0x0409 Property changes on: trunk/thirdparty ___________________________________________________________________ Name: tsvn:projectlanguage + 0x0409 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <AH...@us...> - 2008-02-17 12:14:54
|
Revision: 2355 http://jcl.svn.sourceforge.net/jcl/?rev=2355&view=rev Author: AHUser Date: 2008-02-17 04:14:51 -0800 (Sun, 17 Feb 2008) Log Message: ----------- PathGetLocalizedPath/PathGetPhysicalPath implementation for Delphi.NET Modified Paths: -------------- trunk/jcl/source/common/JclFileUtils.pas Modified: trunk/jcl/source/common/JclFileUtils.pas =================================================================== --- trunk/jcl/source/common/JclFileUtils.pas 2008-02-17 10:13:00 UTC (rev 2354) +++ trunk/jcl/source/common/JclFileUtils.pas 2008-02-17 12:14:51 UTC (rev 2355) @@ -193,7 +193,7 @@ // if the user specifies such a localized directory like "C:\Benutzer\MyName\Bilder" // instead of the physical folder "C:\Users\MyName\Pictures". // These two functions allow to convert the user's input from localized to -// physical paths and vici versa. +// physical paths and vice versa. function PathGetPhysicalPath(const LocalizedPath: string): string; function PathGetLocalizedPath(const PhysicalPath: string): string; @@ -2680,6 +2680,187 @@ end; {$IFDEF MSWINDOWS} +{$IFDEF CLR} + +[SuppressUnmanagedCodeSecurity, DllImport('shlwapi.dll', CharSet = CharSet.Unicode, SetLastError = True, EntryPoint = 'StrRetToBuf')] +function StrRetToBuf(var pstr: TStrRet; pidl: IntPtr; pszBuf: StringBuilder; cchBuf: UINT): HRESULT; + external; + +function SHGetDisplayName(ShellFolder: IShellFolder; PIDL: IntPtr; ForParsing: Boolean): string; +const + Flags: array[Boolean] of DWORD = (SHGDN_NORMAL, SHGDN_FORPARSING); +var + StrRet: TStrRet; + sb: StringBuilder; +begin + ShellFolder.GetDisplayNameOf(PIDL, Flags[ForParsing], StrRet); + sb := StringBuilder.Create(MAX_PATH); + StrRetToBuf(StrRet, pidl, sb, sb.Capacity); + Result := sb.ToString; +end; + +function CutFirstDirectory(var Path: string): string; +var + ps: Integer; +begin + ps := Pos(PathDelim, Path); + if ps > 0 then + begin + Result := Copy(Path, 1, ps - 1); + Path := Copy(Path, ps + 1, Length(Path)); + end + else + begin + Result := Path; + Path := ''; + end; +end; + +function PathGetPhysicalPath(const LocalizedPath: string): string; +var + Malloc: IMalloc; + DesktopFolder: IShellFolder; + RootFolder: IShellFolder; + Eaten: Cardinal; + Attributes: Cardinal; + pidl: array[0..0] of IntPtr; + EnumIDL: IEnumIDList; + Drive: WideString; + Featched: Cardinal; + ParsePath: WideString; + Path, Name: string; + Found: Boolean; + IID_IShellFolder: Guid; +begin + if StartsText('\\', LocalizedPath) then + begin + Result := LocalizedPath; + Exit; + end; + + Drive := ExtractFileDrive(LocalizedPath); + Path := Copy(LocalizedPath, Length(Drive) + 2, Length(LocalizedPath)); + ParsePath := Drive; + OLECheck( SHGetMalloc(Malloc) ); + try + OleCheck( SHGetDesktopFolder(DesktopFolder) ); + IID_IShellFolder := TypeOf(IShellFolder).GUID; + try + while Path <> '' do + begin + Name := CutFirstDirectory(Path); + Found := False; + pidl[0] := nil; + if Succeeded( DesktopFolder.ParseDisplayName(0, IntPtr.Zero, ParsePath, Eaten, pidl[0], Attributes) ) then + begin + OleCheck( DesktopFolder.BindToObject(pidl[0], IntPtr.Zero, IID_IShellFolder, RootFolder) ); + Malloc.Free(pidl[0]); + + OleCheck( RootFolder.EnumObjects(0, SHCONTF_FOLDERS or SHCONTF_NONFOLDERS or SHCONTF_INCLUDEHIDDEN, EnumIDL) ); + try + while EnumIDL.Next(1, pidl, Featched) = NOERROR do + begin + if System.String.Compare(Name, SHGetDisplayName(RootFolder, pidl[0], False), True) = 0 then + begin + ParsePath := SHGetDisplayName(RootFolder, pidl[0], True); + Malloc.Free(pidl[0]); + Found := True; + Break; + end; + Malloc.Free(pidl[0]); + end; + Marshal.ReleaseComObject(EnumIDL); + finally + Marshal.ReleaseComObject(RootFolder); + end; + end; + if not Found then + ParsePath := ParsePath + PathDelim + Name; + end; + finally + Marshal.ReleaseComObject(DesktopFolder); + end; + finally + Marshal.ReleaseComObject(Malloc); + end; + Result := ParsePath; +end; + +function PathGetLocalizedPath(const PhysicalPath: string): string; +var + Malloc: IMalloc; + DesktopFolder: IShellFolder; + RootFolder: IShellFolder; + Eaten: Cardinal; + Attributes: Cardinal; + pidl: array[0..0] of IntPtr; + EnumIDL: IEnumIDList; + Drive: WideString; + Featched: Cardinal; + ParsePath: WideString; + Path, Name, ParseName, DisplayName: string; + Found: Boolean; + IID_IShellFolder: Guid; +begin + if StartsText('\\', PhysicalPath) then + begin + Result := PhysicalPath; + Exit; + end; + + Drive := ExtractFileDrive(PhysicalPath); + Path := Copy(PhysicalPath, Length(Drive) + 2, Length(PhysicalPath)); + ParsePath := Drive; + Result := Drive; + OLECheck( SHGetMalloc(Malloc) ); + try + OleCheck( SHGetDesktopFolder(DesktopFolder) ); + IID_IShellFolder := TypeOf(IShellFolder).GUID; + try + while Path <> '' do + begin + Name := CutFirstDirectory(Path); + Found := False; + pidl[0] := nil; + if Succeeded( DesktopFolder.ParseDisplayName(0, IntPtr.Zero, ParsePath, Eaten, pidl[0], Attributes) ) then + begin + OleCheck( DesktopFolder.BindToObject(pidl[0], IntPtr.Zero, IID_IShellFolder, RootFolder) ); + Malloc.Free(pidl[0]); + try + OleCheck( RootFolder.EnumObjects(0, SHCONTF_FOLDERS or SHCONTF_NONFOLDERS or SHCONTF_INCLUDEHIDDEN, EnumIDL) ); + while EnumIDL.Next(1, pidl, Featched) = NOERROR do + begin + ParseName := SHGetDisplayName(RootFolder, pidl[0], True); + DisplayName := SHGetDisplayName(RootFolder, pidl[0], False); + Malloc.Free(pidl[0]); + if (System.String.Compare(Name, ExtractFileName(ParseName), True) = 0) or + (System.String.Compare(Name, DisplayName, True) = 0) then + begin + Name := DisplayName; + ParsePath := ParseName; + Found := True; + Break; + end; + end; + Marshal.ReleaseComObject(EnumIDL); + finally + Marshal.ReleaseComObject(RootFolder); + end; + end; + Result := Result + PathDelim + Name; + if not Found then + ParsePath := ParsePath + PathDelim + Name; + end; + finally + Marshal.ReleaseComObject(DesktopFolder); + end; + finally + Marshal.ReleaseComObject(Malloc); + end; +end; + +{$ELSE} // CLR => not CLR + function SHGetDisplayName(ShellFolder: IShellFolder; PIDL: PItemIDList; ForParsing: Boolean): string; const Flags: array[Boolean] of DWORD = (SHGDN_NORMAL, SHGDN_FORPARSING); @@ -2704,7 +2885,7 @@ Result := Copy(Result, 1, lstrlen(PChar(Result))); end; -function CurFirstDirectory(var Path: string): string; +function CutFirstDirectory(var Path: string): string; var ps: Integer; begin @@ -2720,10 +2901,8 @@ Path := ''; end; end; -{$ENDIF MSWINDOWS} function PathGetPhysicalPath(const LocalizedPath: string): string; -{$IFDEF MSWINDOWS} var Malloc: IMalloc; DesktopFolder: IShellFolder; @@ -2734,7 +2913,7 @@ EnumIDL: IEnumIDList; Drive: WideString; Featched: Cardinal; - RetValue: WideString; + ParsePath: WideString; Path, Name: string; Found: Boolean; begin @@ -2746,15 +2925,15 @@ Drive := ExtractFileDrive(LocalizedPath); Path := Copy(LocalizedPath, Length(Drive) + 2, Length(LocalizedPath)); - RetValue := Drive; + ParsePath := Drive; OLECheck( SHGetMalloc(Malloc) ); OleCheck( SHGetDesktopFolder(DesktopFolder) ); - Name := CurFirstDirectory(Path); - while (Name <> '') or (Path <> '') do + while Path <> '' do begin + Name := CutFirstDirectory(Path); Found := False; pidl := nil; - if Succeeded( DesktopFolder.ParseDisplayName(0, nil, PWideChar(RetValue), Eaten, pidl, Attributes) ) then + if Succeeded( DesktopFolder.ParseDisplayName(0, nil, PWideChar(ParsePath), Eaten, pidl, Attributes) ) then begin OleCheck( DesktopFolder.BindToObject(pidl, nil, IShellFolder, RootFolder) ); Malloc.Free(pidl); @@ -2762,9 +2941,9 @@ OleCheck( RootFolder.EnumObjects(0, SHCONTF_FOLDERS or SHCONTF_NONFOLDERS or SHCONTF_INCLUDEHIDDEN, EnumIDL) ); while EnumIDL.Next(1, pidl, Featched) = NOERROR do begin - if AnsiSameText(Name, SHGetDisplayName(RootFolder, pidl, False)) then + if AnsiCompareText(Name, SHGetDisplayName(RootFolder, pidl, False)) = 0 then begin - RetValue := SHGetDisplayName(RootFolder, pidl, True); + ParsePath := SHGetDisplayName(RootFolder, pidl, True); Malloc.Free(pidl); Found := True; Break; @@ -2775,19 +2954,12 @@ RootFolder := nil; end; if not Found then - RetValue := RetValue + DirDelimiter + Name; - Name := CurFirstDirectory(Path); + ParsePath := ParsePath + DirDelimiter + Name; end; - Result := RetValue; + Result := ParsePath; end; -{$ELSE} -begin - Result := LocalizedPath; -end; -{$ENDIF MSWINDOWS} function PathGetLocalizedPath(const PhysicalPath: string): string; -{$IFDEF MSWINDOWS} var Malloc: IMalloc; DesktopFolder: IShellFolder; @@ -2814,9 +2986,9 @@ Result := Drive; OLECheck( SHGetMalloc(Malloc) ); OleCheck( SHGetDesktopFolder(DesktopFolder) ); - Name := CurFirstDirectory(Path); - while (Name <> '') or (Path <> '') do + while Path <> '' do begin + Name := CutFirstDirectory(Path); Found := False; pidl := nil; if Succeeded( DesktopFolder.ParseDisplayName(0, nil, PWideChar(ParsePath), Eaten, pidl, Attributes) ) then @@ -2828,27 +3000,16 @@ while EnumIDL.Next(1, pidl, Featched) = NOERROR do begin ParseName := SHGetDisplayName(RootFolder, pidl, True); - if AnsiSameText(Name, ExtractFileName(ParseName)) then + DisplayName := SHGetDisplayName(RootFolder, pidl, False); + Malloc.Free(pidl); + if (AnsiCompareText(Name, ExtractFileName(ParseName)) = 0) or + (AnsiCompareText(Name, DisplayName) = 0) then begin - Name := SHGetDisplayName(RootFolder, pidl, False); - Malloc.Free(pidl); + Name := DisplayName; ParsePath := ParseName; Found := True; Break; - end - else - begin - DisplayName := SHGetDisplayName(RootFolder, pidl, False); - if AnsiSameText(Name, DisplayName) then - begin - Malloc.Free(pidl); - ParsePath := ParseName; - Found := True; - Break; - end; end; - - Malloc.Free(pidl); end; EnumIDL := nil; RootFolder := nil; @@ -2856,11 +3017,18 @@ Result := Result + DirDelimiter + Name; if not Found then ParsePath := ParsePath + DirDelimiter + Name; - Name := CurFirstDirectory(Path); end; end; -{$ELSE} +{$ENDIF CLR} + +{$ELSE} // MSWINDOWS => not MSWINDOWS +function PathGetPhysicalPath(const LocalizedPath: string): string; begin + Result := LocalizedPath; +end; + +function PathGetLocalizedPath(const PhysicalPath: string): string; +begin Result := PhysicalPath; end; {$ENDIF MSWINDOWS} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <AH...@us...> - 2008-02-17 10:13:24
|
Revision: 2354 http://jcl.svn.sourceforge.net/jcl/?rev=2354&view=rev Author: AHUser Date: 2008-02-17 02:13:00 -0800 (Sun, 17 Feb 2008) Log Message: ----------- PathGetLocalizedPath/PathGetPhysicalPath: Support for "\\" in the paths Modified Paths: -------------- trunk/jcl/source/common/JclFileUtils.pas Modified: trunk/jcl/source/common/JclFileUtils.pas =================================================================== --- trunk/jcl/source/common/JclFileUtils.pas 2008-02-17 00:32:07 UTC (rev 2353) +++ trunk/jcl/source/common/JclFileUtils.pas 2008-02-17 10:13:00 UTC (rev 2354) @@ -2750,7 +2750,7 @@ OLECheck( SHGetMalloc(Malloc) ); OleCheck( SHGetDesktopFolder(DesktopFolder) ); Name := CurFirstDirectory(Path); - while Name <> '' do + while (Name <> '') or (Path <> '') do begin Found := False; pidl := nil; @@ -2762,7 +2762,7 @@ OleCheck( RootFolder.EnumObjects(0, SHCONTF_FOLDERS or SHCONTF_NONFOLDERS or SHCONTF_INCLUDEHIDDEN, EnumIDL) ); while EnumIDL.Next(1, pidl, Featched) = NOERROR do begin - if Name = SHGetDisplayName(RootFolder, pidl, False) then + if AnsiSameText(Name, SHGetDisplayName(RootFolder, pidl, False)) then begin RetValue := SHGetDisplayName(RootFolder, pidl, True); Malloc.Free(pidl); @@ -2799,7 +2799,7 @@ Drive: WideString; Featched: Cardinal; ParsePath: WideString; - Path, Name, ParseName: string; + Path, Name, ParseName, DisplayName: string; Found: Boolean; begin if StrCompareRange('\\', PhysicalPath, 1, 2) = 0 then @@ -2815,7 +2815,7 @@ OLECheck( SHGetMalloc(Malloc) ); OleCheck( SHGetDesktopFolder(DesktopFolder) ); Name := CurFirstDirectory(Path); - while Name <> '' do + while (Name <> '') or (Path <> '') do begin Found := False; pidl := nil; @@ -2828,14 +2828,26 @@ while EnumIDL.Next(1, pidl, Featched) = NOERROR do begin ParseName := SHGetDisplayName(RootFolder, pidl, True); - if Name = ExtractFileName(ParseName) then + if AnsiSameText(Name, ExtractFileName(ParseName)) then begin Name := SHGetDisplayName(RootFolder, pidl, False); Malloc.Free(pidl); ParsePath := ParseName; Found := True; Break; + end + else + begin + DisplayName := SHGetDisplayName(RootFolder, pidl, False); + if AnsiSameText(Name, DisplayName) then + begin + Malloc.Free(pidl); + ParsePath := ParseName; + Found := True; + Break; + end; end; + Malloc.Free(pidl); end; EnumIDL := nil; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <AH...@us...> - 2008-02-17 00:32:09
|
Revision: 2353 http://jcl.svn.sourceforge.net/jcl/?rev=2353&view=rev Author: AHUser Date: 2008-02-16 16:32:07 -0800 (Sat, 16 Feb 2008) Log Message: ----------- Windows Vista uses localized path names in the Windows Explorer but these folders do not really exist on disk. This causes all I/O operations to fail if the user specifies such a localized directory like "C:\Benutzer\MyName\Bilder" instead of the physical folder "C:\Users\MyName\Pictures". These two functions allow to convert the user's input from localized to physical paths and vici versa. Modified Paths: -------------- trunk/jcl/source/common/JclFileUtils.pas Modified: trunk/jcl/source/common/JclFileUtils.pas =================================================================== --- trunk/jcl/source/common/JclFileUtils.pas 2008-02-09 22:39:21 UTC (rev 2352) +++ trunk/jcl/source/common/JclFileUtils.pas 2008-02-17 00:32:07 UTC (rev 2353) @@ -188,6 +188,15 @@ function PathRemoveSeparator(const Path: string): string; function PathRemoveExtension(const Path: string): string; +// Windows Vista uses localized path names in the Windows Explorer but these +// folders do not really exist on disk. This causes all I/O operations to fail +// if the user specifies such a localized directory like "C:\Benutzer\MyName\Bilder" +// instead of the physical folder "C:\Users\MyName\Pictures". +// These two functions allow to convert the user's input from localized to +// physical paths and vici versa. +function PathGetPhysicalPath(const LocalizedPath: string): string; +function PathGetLocalizedPath(const PhysicalPath: string): string; + // Files and Directories // // Routines for working with files and directories. Includes routines to extract various file @@ -1016,7 +1025,7 @@ {$IFDEF FPC} WinSysUt, {$ELSE ~FPC} - ActiveX, ShlObj, JclShell, + ActiveX, ComObj, ShlObj, JclShell, {$ENDIF ~FPC} JclSysInfo, JclWin32, JclSecurity, {$ENDIF Win32API} @@ -2670,6 +2679,180 @@ Result := Path; end; +{$IFDEF MSWINDOWS} +function SHGetDisplayName(ShellFolder: IShellFolder; PIDL: PItemIDList; ForParsing: Boolean): string; +const + Flags: array[Boolean] of DWORD = (SHGDN_NORMAL, SHGDN_FORPARSING); +var + StrRet: TStrRet; + P: PChar; +begin + Result := ''; + + ShellFolder.GetDisplayNameOf(PIDL, Flags[ForParsing], StrRet); + case StrRet.uType of + STRRET_CSTR: + SetString(Result, StrRet.cStr, lstrlen(StrRet.cStr)); + STRRET_OFFSET: + begin + P := @PIDL.mkid.abID[StrRet.uOffset - SizeOf(PIDL.mkid.cb)]; + SetString(Result, P, PIDL.mkid.cb - StrRet.uOffset); + end; + STRRET_WSTR: + Result := StrRet.pOleStr; + end; + Result := Copy(Result, 1, lstrlen(PChar(Result))); +end; + +function CurFirstDirectory(var Path: string): string; +var + ps: Integer; +begin + ps := AnsiPos(DirDelimiter, Path); + if ps > 0 then + begin + Result := Copy(Path, 1, ps - 1); + Path := Copy(Path, ps + 1, Length(Path)); + end + else + begin + Result := Path; + Path := ''; + end; +end; +{$ENDIF MSWINDOWS} + +function PathGetPhysicalPath(const LocalizedPath: string): string; +{$IFDEF MSWINDOWS} +var + Malloc: IMalloc; + DesktopFolder: IShellFolder; + RootFolder: IShellFolder; + Eaten: Cardinal; + Attributes: Cardinal; + pidl: PItemIDList; + EnumIDL: IEnumIDList; + Drive: WideString; + Featched: Cardinal; + RetValue: WideString; + Path, Name: string; + Found: Boolean; +begin + if StrCompareRange('\\', LocalizedPath, 1, 2) = 0 then + begin + Result := LocalizedPath; + Exit; + end; + + Drive := ExtractFileDrive(LocalizedPath); + Path := Copy(LocalizedPath, Length(Drive) + 2, Length(LocalizedPath)); + RetValue := Drive; + OLECheck( SHGetMalloc(Malloc) ); + OleCheck( SHGetDesktopFolder(DesktopFolder) ); + Name := CurFirstDirectory(Path); + while Name <> '' do + begin + Found := False; + pidl := nil; + if Succeeded( DesktopFolder.ParseDisplayName(0, nil, PWideChar(RetValue), Eaten, pidl, Attributes) ) then + begin + OleCheck( DesktopFolder.BindToObject(pidl, nil, IShellFolder, RootFolder) ); + Malloc.Free(pidl); + + OleCheck( RootFolder.EnumObjects(0, SHCONTF_FOLDERS or SHCONTF_NONFOLDERS or SHCONTF_INCLUDEHIDDEN, EnumIDL) ); + while EnumIDL.Next(1, pidl, Featched) = NOERROR do + begin + if Name = SHGetDisplayName(RootFolder, pidl, False) then + begin + RetValue := SHGetDisplayName(RootFolder, pidl, True); + Malloc.Free(pidl); + Found := True; + Break; + end; + Malloc.Free(pidl); + end; + EnumIDL := nil; + RootFolder := nil; + end; + if not Found then + RetValue := RetValue + DirDelimiter + Name; + Name := CurFirstDirectory(Path); + end; + Result := RetValue; +end; +{$ELSE} +begin + Result := LocalizedPath; +end; +{$ENDIF MSWINDOWS} + +function PathGetLocalizedPath(const PhysicalPath: string): string; +{$IFDEF MSWINDOWS} +var + Malloc: IMalloc; + DesktopFolder: IShellFolder; + RootFolder: IShellFolder; + Eaten: Cardinal; + Attributes: Cardinal; + pidl: PItemIDList; + EnumIDL: IEnumIDList; + Drive: WideString; + Featched: Cardinal; + ParsePath: WideString; + Path, Name, ParseName: string; + Found: Boolean; +begin + if StrCompareRange('\\', PhysicalPath, 1, 2) = 0 then + begin + Result := PhysicalPath; + Exit; + end; + + Drive := ExtractFileDrive(PhysicalPath); + Path := Copy(PhysicalPath, Length(Drive) + 2, Length(PhysicalPath)); + ParsePath := Drive; + Result := Drive; + OLECheck( SHGetMalloc(Malloc) ); + OleCheck( SHGetDesktopFolder(DesktopFolder) ); + Name := CurFirstDirectory(Path); + while Name <> '' do + begin + Found := False; + pidl := nil; + if Succeeded( DesktopFolder.ParseDisplayName(0, nil, PWideChar(ParsePath), Eaten, pidl, Attributes) ) then + begin + OleCheck( DesktopFolder.BindToObject(pidl, nil, IShellFolder, RootFolder) ); + Malloc.Free(pidl); + + OleCheck( RootFolder.EnumObjects(0, SHCONTF_FOLDERS or SHCONTF_NONFOLDERS or SHCONTF_INCLUDEHIDDEN, EnumIDL) ); + while EnumIDL.Next(1, pidl, Featched) = NOERROR do + begin + ParseName := SHGetDisplayName(RootFolder, pidl, True); + if Name = ExtractFileName(ParseName) then + begin + Name := SHGetDisplayName(RootFolder, pidl, False); + Malloc.Free(pidl); + ParsePath := ParseName; + Found := True; + Break; + end; + Malloc.Free(pidl); + end; + EnumIDL := nil; + RootFolder := nil; + end; + Result := Result + DirDelimiter + Name; + if not Found then + ParsePath := ParsePath + DirDelimiter + Name; + Name := CurFirstDirectory(Path); + end; +end; +{$ELSE} +begin + Result := PhysicalPath; +end; +{$ENDIF MSWINDOWS} + //=== Files and Directories ================================================== This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mar...@us...> - 2008-02-09 22:39:25
|
Revision: 2352 http://jcl.svn.sourceforge.net/jcl/?rev=2352&view=rev Author: marcovtje Date: 2008-02-09 14:39:21 -0800 (Sat, 09 Feb 2008) Log Message: ----------- * fixed exploit of a delphi bug Modified Paths: -------------- trunk/jcl/source/common/JclUnicode.pas Modified: trunk/jcl/source/common/JclUnicode.pas =================================================================== --- trunk/jcl/source/common/JclUnicode.pas 2008-02-09 20:11:06 UTC (rev 2351) +++ trunk/jcl/source/common/JclUnicode.pas 2008-02-09 22:39:21 UTC (rev 2352) @@ -5266,7 +5266,7 @@ // call back in case information could be lost Run := PWideChar(SW); // only ask if there's at least one Unicode character in the text - while Run^ in [WideChar(#1)..WideChar(#255)] do + while (Run^>#0) and (run^<=#255) do Inc(Run); // Note: The application can still set FSaveUnicode to True in the callback. if Run^ <> WideNull then This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mar...@us...> - 2008-02-09 20:11:11
|
Revision: 2351 http://jcl.svn.sourceforge.net/jcl/?rev=2351&view=rev Author: marcovtje Date: 2008-02-09 12:11:06 -0800 (Sat, 09 Feb 2008) Log Message: ----------- * some rtl_up_130's fixed. Modified Paths: -------------- trunk/jcl/source/windows/JclCIL.pas trunk/jcl/source/windows/JclCLR.pas trunk/jcl/source/windows/JclMetadata.pas Modified: trunk/jcl/source/windows/JclCIL.pas =================================================================== --- trunk/jcl/source/windows/JclCIL.pas 2008-02-07 07:21:05 UTC (rev 2350) +++ trunk/jcl/source/windows/JclCIL.pas 2008-02-09 20:11:06 UTC (rev 2351) @@ -50,9 +50,9 @@ Windows, {$ENDIF MSWINDOWS} Classes, SysUtils, - {$IFDEF RTL130_UP} + {$IFDEF HAS_UNIT_CONTNRS} Contnrs, - {$ENDIF RTL130_UP} + {$ENDIF HAS_UNIT_CONTNRS} JclBase, JclSysUtils, JclCLR, JclMetadata; type Modified: trunk/jcl/source/windows/JclCLR.pas =================================================================== --- trunk/jcl/source/windows/JclCLR.pas 2008-02-07 07:21:05 UTC (rev 2350) +++ trunk/jcl/source/windows/JclCLR.pas 2008-02-09 20:11:06 UTC (rev 2351) @@ -49,9 +49,9 @@ Windows, {$ENDIF MSWINDOWS} Classes, SysUtils, - {$IFDEF RTL130_UP} + {$IFDEF HAS_UNIT_CONTNRS} Contnrs, - {$ENDIF RTL130_UP} + {$ENDIF HAS_UNIT_CONTNRS} JclBase, JclFileUtils, JclPeImage, JclSysUtils; type Modified: trunk/jcl/source/windows/JclMetadata.pas =================================================================== --- trunk/jcl/source/windows/JclMetadata.pas 2008-02-07 07:21:05 UTC (rev 2350) +++ trunk/jcl/source/windows/JclMetadata.pas 2008-02-09 20:11:06 UTC (rev 2351) @@ -46,9 +46,9 @@ Windows, {$ENDIF MSWINDOWS} Classes, SysUtils, - {$IFDEF RTL130_UP} + {$IFDEF HAS_UNIT_CONTNRS} Contnrs, - {$ENDIF RTL130_UP} + {$ENDIF HAS_UNIT_CONTNRS} JclBase, JclClr, JclFileUtils, JclPeImage, JclSysUtils; type This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2008-02-07 07:21:18
|
Revision: 2350 http://jcl.svn.sourceforge.net/jcl/?rev=2350&view=rev Author: outchy Date: 2008-02-06 23:21:05 -0800 (Wed, 06 Feb 2008) Log Message: ----------- some fixes in configuration for help files (some files were not generated) Modified Paths: -------------- trunk/thirdparty/makedist/JclFiles.xml Modified: trunk/thirdparty/makedist/JclFiles.xml =================================================================== --- trunk/thirdparty/makedist/JclFiles.xml 2008-02-06 07:05:11 UTC (rev 2349) +++ trunk/thirdparty/makedist/JclFiles.xml 2008-02-07 07:21:05 UTC (rev 2350) @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="iso-8859-1"?> <makedist> - <task name="Jcl-win.zip" selected="0"> + <task name="Jcl-win.zip" selected="-1"> <action classname="TLogCleaner"/> <action classname="TDirectoryCreator"> <configuration index="0" caption="Directory" value="sandbox"/> @@ -51,7 +51,7 @@ <configuration index="1" caption="Append" value="no"/> </action> </task> - <task name="Jcl-linux.zip" selected="0"> + <task name="Jcl-linux.zip" selected="-1"> <action classname="TLogCleaner"/> <action classname="TDirectoryCreator"> <configuration index="0" caption="Directory" value="sandbox"/> @@ -112,7 +112,7 @@ <configuration index="1" caption="Append" value="no"/> </action> </task> - <task name="Jcl-turbo.zip" selected="0"> + <task name="Jcl-turbo.zip" selected="-1"> <action classname="TLogCleaner"/> <action classname="TDirectoryCreator"> <configuration index="0" caption="Directory" value="sandbox"/> @@ -319,7 +319,7 @@ </action> <action classname="TFileRemover"> <configuration index="0" caption="Directory" value="sandbox\jcl\help"/> - <configuration index="1" caption="Filter" value="*.html;*.css;*.js;*.gif;*.jpg;*.png"/> + <configuration index="1" caption="Filter" value="*.html;*.css;*.js;*.gif;*.jpg;*.png;*.c;*.h;*.inc;*.hhc;*.hhk;*.hhp"/> <configuration index="2" caption="Move to recycle bin" value="no"/> </action> <action classname="TArchiveMaker"> @@ -384,7 +384,7 @@ </action> <action classname="TFileRemover"> <configuration index="0" caption="Directory" value="sandbox\jcl\help"/> - <configuration index="1" caption="Filter" value="*.html;*.css;*.js;*.gif;*.jpg;*.png"/> + <configuration index="1" caption="Filter" value="*.html;*.css;*.js;*.gif;*.jpg;*.png;*.c;*.h;*.inc"/> <configuration index="2" caption="Move to recycle bin" value="no"/> </action> <action classname="TArchiveMaker"> @@ -447,11 +447,6 @@ <configuration index="2" caption="Parameters" value="-config "HLP" -noshow -w3 JclHelp.dox"/> <configuration index="3" caption="Valid exit codes" value="0;20;30"/> </action> - <action classname="TFileRemover"> - <configuration index="0" caption="Directory" value="sandbox\jcl\help"/> - <configuration index="1" caption="Filter" value="*.html;*.css;*.js;*.gif;*.jpg;*.png"/> - <configuration index="2" caption="Move to recycle bin" value="no"/> - </action> <action classname="TArchiveMaker"> <configuration index="0" caption="Directory" value="sandbox\jcl"/> <configuration index="1" caption="Filter" value="*help*"/> @@ -512,11 +507,6 @@ <configuration index="2" caption="Parameters" value="-config "XML" -noshow -w3 JclHelp.dox"/> <configuration index="3" caption="Valid exit codes" value="0;20;30"/> </action> - <action classname="TFileRemover"> - <configuration index="0" caption="Directory" value="sandbox\jcl\help"/> - <configuration index="1" caption="Filter" value="*.html;*.css;*.js;*.gif;*.jpg;*.png"/> - <configuration index="2" caption="Move to recycle bin" value="no"/> - </action> <action classname="TArchiveMaker"> <configuration index="0" caption="Directory" value="sandbox\jcl"/> <configuration index="1" caption="Filter" value="*help*"/> @@ -577,11 +567,6 @@ <configuration index="2" caption="Parameters" value="-config "PDF" -noshow -w3 JclHelp.dox"/> <configuration index="3" caption="Valid exit codes" value="0;20;30"/> </action> - <action classname="TFileRemover"> - <configuration index="0" caption="Directory" value="sandbox\jcl\help"/> - <configuration index="1" caption="Filter" value="*.html;*.css;*.js;*.gif;*.jpg;*.png"/> - <configuration index="2" caption="Move to recycle bin" value="no"/> - </action> <action classname="TArchiveMaker"> <configuration index="0" caption="Directory" value="sandbox\jcl"/> <configuration index="1" caption="Filter" value="*help*"/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2008-02-06 07:05:17
|
Revision: 2349 http://jcl.svn.sourceforge.net/jcl/?rev=2349&view=rev Author: outchy Date: 2008-02-05 23:05:11 -0800 (Tue, 05 Feb 2008) Log Message: ----------- Help 2.0 files have to be created in jcl/help Modified Paths: -------------- trunk/help/JCLHelp.dox Modified: trunk/help/JCLHelp.dox =================================================================== --- trunk/help/JCLHelp.dox 2008-02-06 00:17:59 UTC (rev 2348) +++ trunk/help/JCLHelp.dox 2008-02-06 07:05:11 UTC (rev 2349) @@ -389,7 +389,7 @@ [Configurations] Count=6 -Current=5 +Current=0 Name0=HTML Name1=CHM Name2=H2 @@ -21955,7 +21955,7 @@ Help2UnregisterNamespace=1 HelpCompiler=F:\Programme\HTML Help Workshop\hhc.exe HelpProjectFileAutomatic=1 -HTMLHelp2Filename=..\jcl\help\html\JCLHelp.HxS +HTMLHelp2Filename=..\jcl\help\JCLHelp.HxS HTMLHelpDisplayFontScaleButton=0 HTMLHelpFilename= SaveUserPosition=1 @@ -39982,7 +39982,7 @@ GraphBorder=0 LayoutDirection=1 LevelSpacing=30 -MaxNodeWidth=200 +MaxNodeWidth=350 MinNodeHeight=15 MinNodeWidth=30 NodesAdjustWidthToGrid=0 @@ -40003,8 +40003,8 @@ BackgroundColor=16777215 BorderColor=0 GradientBaseColor=10070188 -HighlightColor=-2147483635 -HighlightFontColor=-2147483634 +HighlightColor=-16777203 +HighlightFontColor=-16777202 Show=1 Style=0 StyleOptions=7 @@ -40014,7 +40014,7 @@ Charset=1 Color=0 Height=-9 -Name=Tahoma +Name=Segoe UI Orientation=0 Pitch=0 Size=7 @@ -40030,8 +40030,8 @@ BackgroundColor=13434829 BorderColor=0 GradientBaseColor=11197867 -HighlightColor=-2147483635 -HighlightFontColor=-2147483634 +HighlightColor=-16777203 +HighlightFontColor=-16777202 Show=1 Style=0 StyleOptions=7 @@ -40041,7 +40041,7 @@ Charset=1 Color=0 Height=-9 -Name=Tahoma +Name=Segoe UI Orientation=0 Pitch=0 Size=7 @@ -40057,8 +40057,8 @@ BackgroundColor=13434829 BorderColor=0 GradientBaseColor=11197867 -HighlightColor=-2147483635 -HighlightFontColor=-2147483634 +HighlightColor=-16777203 +HighlightFontColor=-16777202 Show=1 Style=0 StyleOptions=7 @@ -40068,7 +40068,7 @@ Charset=1 Color=0 Height=-9 -Name=Tahoma +Name=Segoe UI Orientation=0 Pitch=0 Size=7 @@ -40084,8 +40084,8 @@ BackgroundColor=16764313 BorderColor=0 GradientBaseColor=14527351 -HighlightColor=-2147483635 -HighlightFontColor=-2147483634 +HighlightColor=-16777203 +HighlightFontColor=-16777202 Show=1 Style=0 StyleOptions=7 @@ -40095,7 +40095,7 @@ Charset=1 Color=0 Height=-9 -Name=Tahoma +Name=Segoe UI Orientation=0 Pitch=0 Size=7 @@ -40111,8 +40111,8 @@ BackgroundColor=131071 BorderColor=0 GradientBaseColor=56797 -HighlightColor=-2147483635 -HighlightFontColor=-2147483634 +HighlightColor=-16777203 +HighlightFontColor=-16777202 Show=0 Style=3 StyleOptions=7 @@ -40122,7 +40122,7 @@ Charset=1 Color=0 Height=-9 -Name=Tahoma +Name=Segoe UI Orientation=0 Pitch=0 Size=7 @@ -40138,8 +40138,8 @@ BackgroundColor=131071 BorderColor=0 GradientBaseColor=56797 -HighlightColor=-2147483635 -HighlightFontColor=-2147483634 +HighlightColor=-16777203 +HighlightFontColor=-16777202 Show=0 Style=3 StyleOptions=7 @@ -40149,7 +40149,7 @@ Charset=1 Color=0 Height=-9 -Name=Tahoma +Name=Segoe UI Orientation=0 Pitch=0 Size=7 @@ -40165,8 +40165,8 @@ BackgroundColor=16777215 BorderColor=0 GradientBaseColor=10070188 -HighlightColor=-2147483635 -HighlightFontColor=-2147483634 +HighlightColor=-16777203 +HighlightFontColor=-16777202 Show=1 Style=0 StyleOptions=7 @@ -40176,7 +40176,7 @@ Charset=1 Color=0 Height=-9 -Name=Tahoma +Name=Segoe UI Orientation=0 Pitch=0 Size=7 @@ -40192,8 +40192,8 @@ BackgroundColor=52479 BorderColor=0 GradientBaseColor=43741 -HighlightColor=-2147483635 -HighlightFontColor=-2147483634 +HighlightColor=-16777203 +HighlightFontColor=-16777202 Show=1 Style=2 StyleOptions=7 @@ -40203,7 +40203,7 @@ Charset=1 Color=0 Height=-9 -Name=Tahoma +Name=Segoe UI Orientation=0 Pitch=0 Size=7 @@ -40219,8 +40219,8 @@ BackgroundColor=3394407 BorderColor=0 GradientBaseColor=1157445 -HighlightColor=-2147483635 -HighlightFontColor=-2147483634 +HighlightColor=-16777203 +HighlightFontColor=-16777202 Show=1 Style=0 StyleOptions=7 @@ -40230,7 +40230,7 @@ Charset=1 Color=0 Height=-9 -Name=Tahoma +Name=Segoe UI Orientation=0 Pitch=0 Size=7 @@ -40246,8 +40246,8 @@ BackgroundColor=16777215 BorderColor=0 GradientBaseColor=10070188 -HighlightColor=-2147483635 -HighlightFontColor=-2147483634 +HighlightColor=-16777203 +HighlightFontColor=-16777202 Show=1 Style=0 StyleOptions=7 @@ -40257,7 +40257,7 @@ Charset=1 Color=0 Height=-9 -Name=Tahoma +Name=Segoe UI Orientation=0 Pitch=0 Size=7 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2008-02-06 00:18:10
|
Revision: 2348 http://jcl.svn.sourceforge.net/jcl/?rev=2348&view=rev Author: outchy Date: 2008-02-05 16:17:59 -0800 (Tue, 05 Feb 2008) Log Message: ----------- renamed help configurations to explicit names (HTML, CHM, H2, HLP, PDF, XML). scripts to generate archives for help files. Modified Paths: -------------- trunk/help/JCLHelp.dox trunk/thirdparty/makedist/JclFiles.xml Modified: trunk/help/JCLHelp.dox =================================================================== --- trunk/help/JCLHelp.dox 2008-02-05 23:00:44 UTC (rev 2347) +++ trunk/help/JCLHelp.dox 2008-02-06 00:17:59 UTC (rev 2348) @@ -389,31 +389,31 @@ [Configurations] Count=6 -Current=2 -Name0=Configuration 1 -Name1=Configuration 2 -Name2=Configuration 3 -Name3=Configuration 5 -Name4=Configuration 6 -Name5=Configuration 7 +Current=5 +Name0=HTML +Name1=CHM +Name2=H2 +Name3=HLP +Name4=XML +Name5=PDF -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\AdditionalFiles] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\AdditionalFiles] Count=2 File0=$(DOM)\graphics\html_fullframegradient.gif File1=$(DOM)\graphics\html_titlebkg.jpg -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\CollapsePersistence] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\CollapsePersistence] CookieName=DOM_Collapsed_Sections PersistentMode=0 PersistentStoreName=domdocSettings -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Common Layout Options] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Common Layout Options] DisplayShowAllSections=1 DisplayTopicLinks=1 TopicLinkListSeparator=' | ' TopicLinkListSeparatorSection=', ' -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Compatibility] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Compatibility] ContentFile=contents.html CSSFile=default.css EmptyFile=empty.html @@ -428,7 +428,7 @@ UsePopups=1 WelcomeFile=index.html -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Copy Source Files] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Copy Source Files] File0= File1=$(DOM)\support\scripts.js File2=$(DOM)\support\fset_fixed.html @@ -437,7 +437,7 @@ File5=$(DOM)\support\fset_empty.html File6=$(DOM)\support\fset_header.html -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements] Count=212 DefaultCharset=0 ElementID_0=-901 @@ -655,7 +655,7 @@ StandardFixedPitchFontname=Courier New,Courier,monospace StandardVariablePitchFontname=Verdana,Arial,Helvetica,sans-serif -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-1] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-1] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -677,7 +677,7 @@ VSpaceAfter=20 VSpaceBefore=20 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-1\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-1\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -695,10 +695,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-1\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-1\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-10] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-10] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -720,7 +720,7 @@ VSpaceAfter=2147483647 VSpaceBefore=33 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-10\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-10\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -738,10 +738,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-10\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-10\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-100] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-100] AddLinkElementStyle=0 Alignment=0 BackgroundColor=14540253 @@ -763,7 +763,7 @@ VSpaceAfter=2147483647 VSpaceBefore=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-100\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-100\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -781,10 +781,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-100\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-100\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-101] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-101] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -806,7 +806,7 @@ VSpaceAfter=100 VSpaceBefore=100 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-101\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-101\Borders] Bottom_Colour=10066329 Bottom_Offset=40 Bottom_Visible=1 @@ -824,10 +824,10 @@ Top_Visible=1 Top_Width=10 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-101\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-101\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-102] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-102] AddLinkElementStyle=0 Alignment=0 BackgroundColor=14540253 @@ -849,7 +849,7 @@ VSpaceAfter=2147483647 VSpaceBefore=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-102\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-102\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -867,10 +867,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-102\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-102\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-103] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-103] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -892,7 +892,7 @@ VSpaceAfter=33 VSpaceBefore=33 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-103\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-103\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -910,10 +910,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-103\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-103\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-11] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-11] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -935,7 +935,7 @@ VSpaceAfter=2147483647 VSpaceBefore=33 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-11\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-11\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -953,10 +953,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-11\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-11\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-12] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-12] AddLinkElementStyle=0 Alignment=0 BackgroundColor=14540253 @@ -978,7 +978,7 @@ VSpaceAfter=2147483647 VSpaceBefore=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-12\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-12\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -996,10 +996,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-12\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-12\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-13] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-13] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -1021,7 +1021,7 @@ VSpaceAfter=33 VSpaceBefore=33 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-13\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-13\Borders] Bottom_Colour=10066329 Bottom_Offset=40 Bottom_Visible=1 @@ -1039,10 +1039,10 @@ Top_Visible=1 Top_Width=10 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-13\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-13\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-14] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-14] AddLinkElementStyle=1 Alignment=0 BackgroundColor=536870911 @@ -1064,7 +1064,7 @@ VSpaceAfter=2147483647 VSpaceBefore=100 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-14\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-14\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -1082,10 +1082,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-14\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-14\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-142] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-142] AddLinkElementStyle=0 BackgroundColor=536870911 Bold=0 @@ -1099,10 +1099,10 @@ StrikeOut=0 Underline=1 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-142\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-142\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-143] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-143] AddLinkElementStyle=0 BackgroundColor=536870911 Bold=0 @@ -1116,10 +1116,10 @@ StrikeOut=0 Underline=1 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-143\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-143\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-144] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-144] AddLinkElementStyle=0 BackgroundColor=536870911 Bold=0 @@ -1133,10 +1133,10 @@ StrikeOut=0 Underline=1 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-144\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-144\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-145] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-145] AddLinkElementStyle=0 BackgroundColor=536870911 Bold=0 @@ -1150,10 +1150,10 @@ StrikeOut=0 Underline=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-145\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-145\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-146] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-146] AddLinkElementStyle=0 BackgroundColor=536870911 Bold=0 @@ -1167,10 +1167,10 @@ StrikeOut=0 Underline=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-146\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-146\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-15] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-15] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -1192,7 +1192,7 @@ VSpaceAfter=50 VSpaceBefore=100 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-15\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-15\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -1210,10 +1210,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-15\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-15\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-150] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-150] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -1235,7 +1235,7 @@ VSpaceAfter=0 VSpaceBefore=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-150\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-150\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -1253,10 +1253,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-150\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-150\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-151] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-151] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -1278,7 +1278,7 @@ VSpaceAfter=2147483647 VSpaceBefore=33 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-151\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-151\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -1296,10 +1296,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-151\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-151\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-152] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-152] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -1321,7 +1321,7 @@ VSpaceAfter=2147483647 VSpaceBefore=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-152\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-152\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -1339,10 +1339,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-152\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-152\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-153] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-153] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -1364,7 +1364,7 @@ VSpaceAfter=2147483647 VSpaceBefore=33 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-153\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-153\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -1382,10 +1382,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-153\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-153\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-160] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-160] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -1407,7 +1407,7 @@ VSpaceAfter=2147483647 VSpaceBefore=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-160\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-160\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -1425,10 +1425,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-160\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-160\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-161] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-161] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -1450,7 +1450,7 @@ VSpaceAfter=2147483647 VSpaceBefore=33 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-161\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-161\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -1468,10 +1468,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-161\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-161\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-170] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-170] AddLinkElementStyle=0 Alignment=2 BackgroundColor=536870911 @@ -1493,7 +1493,7 @@ VSpaceAfter=0 VSpaceBefore=33 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-170\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-170\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -1511,10 +1511,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-170\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-170\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-180] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-180] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -1536,7 +1536,7 @@ VSpaceAfter=100 VSpaceBefore=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-180\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-180\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -1554,10 +1554,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-180\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-180\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-181] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-181] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -1579,7 +1579,7 @@ VSpaceAfter=2147483647 VSpaceBefore=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-181\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-181\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -1597,10 +1597,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-181\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-181\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-182] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-182] AddLinkElementStyle=0 Alignment=1 BackgroundColor=536870911 @@ -1622,7 +1622,7 @@ VSpaceAfter=100 VSpaceBefore=100 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-182\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-182\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -1640,10 +1640,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-182\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-182\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-183] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-183] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -1665,7 +1665,7 @@ VSpaceAfter=100 VSpaceBefore=100 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-183\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-183\Borders] Bottom_Colour=16768980 Bottom_Offset=50 Bottom_Visible=1 @@ -1683,10 +1683,10 @@ Top_Visible=0 Top_Width=10 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-183\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-183\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-190] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-190] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -1708,7 +1708,7 @@ VSpaceAfter=33 VSpaceBefore=33 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-190\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-190\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -1726,10 +1726,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-190\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-190\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-2] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-2] AddLinkElementStyle=0 Alignment=1 BackgroundColor=536870911 @@ -1751,7 +1751,7 @@ VSpaceAfter=20 VSpaceBefore=20 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-2\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-2\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -1769,10 +1769,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-2\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-2\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-200] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-200] AddLinkElementStyle=0 Alignment=0 BackgroundColor=13421772 @@ -1794,7 +1794,7 @@ VSpaceAfter=2147483647 VSpaceBefore=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-200\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-200\Borders] Bottom_Colour=10066329 Bottom_Offset=40 Bottom_Visible=1 @@ -1812,10 +1812,10 @@ Top_Visible=1 Top_Width=10 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-200\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-200\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-201] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-201] AddLinkElementStyle=0 Alignment=0 BackgroundColor=13421772 @@ -1837,7 +1837,7 @@ VSpaceAfter=2147483647 VSpaceBefore=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-201\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-201\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -1855,10 +1855,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-201\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-201\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-202] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-202] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -1880,7 +1880,7 @@ VSpaceAfter=2147483647 VSpaceBefore=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-202\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-202\Borders] Bottom_Colour=10066329 Bottom_Offset=40 Bottom_Visible=1 @@ -1898,10 +1898,10 @@ Top_Visible=1 Top_Width=10 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-202\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-202\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-203] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-203] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -1923,7 +1923,7 @@ VSpaceAfter=2147483647 VSpaceBefore=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-203\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-203\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -1941,10 +1941,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-203\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-203\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-204] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-204] AddLinkElementStyle=0 Alignment=0 BackgroundColor=13421772 @@ -1966,7 +1966,7 @@ VSpaceAfter=2147483647 VSpaceBefore=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-204\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-204\Borders] Bottom_Colour=10066329 Bottom_Offset=40 Bottom_Visible=1 @@ -1984,10 +1984,10 @@ Top_Visible=1 Top_Width=10 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-204\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-204\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-205] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-205] AddLinkElementStyle=0 Alignment=0 BackgroundColor=13421772 @@ -2009,7 +2009,7 @@ VSpaceAfter=2147483647 VSpaceBefore=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-205\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-205\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -2027,10 +2027,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-205\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-205\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-206] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-206] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -2052,7 +2052,7 @@ VSpaceAfter=2147483647 VSpaceBefore=33 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-206\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-206\Borders] Bottom_Colour=10066329 Bottom_Offset=40 Bottom_Visible=1 @@ -2070,10 +2070,10 @@ Top_Visible=1 Top_Width=10 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-206\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-206\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-207] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-207] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -2095,7 +2095,7 @@ VSpaceAfter=2147483647 VSpaceBefore=33 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-207\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-207\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -2113,10 +2113,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-207\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-207\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-208] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-208] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -2138,7 +2138,7 @@ VSpaceAfter=2147483647 VSpaceBefore=33 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-208\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-208\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -2156,10 +2156,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-208\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-208\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-209] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-209] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -2181,7 +2181,7 @@ VSpaceAfter=2147483647 VSpaceBefore=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-209\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-209\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -2199,10 +2199,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-209\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-209\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-210] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-210] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -2224,7 +2224,7 @@ VSpaceAfter=2147483647 VSpaceBefore=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-210\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-210\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -2242,10 +2242,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-210\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-210\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-211] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-211] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -2267,7 +2267,7 @@ VSpaceAfter=2147483647 VSpaceBefore=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-211\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-211\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -2285,10 +2285,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-211\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-211\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-212] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-212] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -2310,7 +2310,7 @@ VSpaceAfter=100 VSpaceBefore=100 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-212\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-212\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -2328,10 +2328,10 @@ Top_Visible=1 Top_Width=10 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-212\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-212\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-215] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-215] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -2353,7 +2353,7 @@ VSpaceAfter=50 VSpaceBefore=100 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-215\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-215\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -2371,10 +2371,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-215\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-215\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-220] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-220] AddLinkElementStyle=0 Alignment=0 BackgroundColor=13421772 @@ -2396,7 +2396,7 @@ VSpaceAfter=2147483647 VSpaceBefore=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-220\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-220\Borders] Bottom_Colour=10066329 Bottom_Offset=40 Bottom_Visible=1 @@ -2414,10 +2414,10 @@ Top_Visible=1 Top_Width=10 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-220\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-220\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-221] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-221] AddLinkElementStyle=0 Alignment=0 BackgroundColor=13421772 @@ -2439,7 +2439,7 @@ VSpaceAfter=2147483647 VSpaceBefore=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-221\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-221\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -2457,10 +2457,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-221\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-221\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-222] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-222] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -2482,7 +2482,7 @@ VSpaceAfter=2147483647 VSpaceBefore=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-222\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-222\Borders] Bottom_Colour=10066329 Bottom_Offset=40 Bottom_Visible=1 @@ -2500,10 +2500,10 @@ Top_Visible=1 Top_Width=10 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-222\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-222\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-223] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-223] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -2525,7 +2525,7 @@ VSpaceAfter=2147483647 VSpaceBefore=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-223\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-223\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -2543,10 +2543,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-223\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-223\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-224] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-224] AddLinkElementStyle=0 Alignment=0 BackgroundColor=13421772 @@ -2568,7 +2568,7 @@ VSpaceAfter=2147483647 VSpaceBefore=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-224\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-224\Borders] Bottom_Colour=10066329 Bottom_Offset=40 Bottom_Visible=1 @@ -2586,10 +2586,10 @@ Top_Visible=1 Top_Width=10 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-224\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-224\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-225] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-225] AddLinkElementStyle=0 Alignment=0 BackgroundColor=13421772 @@ -2611,7 +2611,7 @@ VSpaceAfter=2147483647 VSpaceBefore=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-225\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-225\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -2629,10 +2629,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-225\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-225\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-226] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-226] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -2654,7 +2654,7 @@ VSpaceAfter=2147483647 VSpaceBefore=33 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-226\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-226\Borders] Bottom_Colour=10066329 Bottom_Offset=40 Bottom_Visible=1 @@ -2672,10 +2672,10 @@ Top_Visible=1 Top_Width=10 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-226\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-226\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-227] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-227] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -2697,7 +2697,7 @@ VSpaceAfter=2147483647 VSpaceBefore=33 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-227\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-227\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -2715,10 +2715,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-227\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-227\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-228] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-228] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -2740,7 +2740,7 @@ VSpaceAfter=2147483647 VSpaceBefore=33 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-228\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-228\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -2758,10 +2758,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-228\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-228\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-229] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-229] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -2783,7 +2783,7 @@ VSpaceAfter=2147483647 VSpaceBefore=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-229\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-229\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -2801,10 +2801,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-229\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-229\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-230] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-230] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -2826,7 +2826,7 @@ VSpaceAfter=2147483647 VSpaceBefore=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-230\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-230\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -2844,10 +2844,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-230\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-230\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-231] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-231] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -2869,7 +2869,7 @@ VSpaceAfter=2147483647 VSpaceBefore=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-231\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-231\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -2887,10 +2887,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-231\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-231\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-232] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-232] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -2912,7 +2912,7 @@ VSpaceAfter=100 VSpaceBefore=100 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-232\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-232\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -2930,10 +2930,10 @@ Top_Visible=1 Top_Width=10 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-232\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-232\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-235] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-235] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -2955,7 +2955,7 @@ VSpaceAfter=50 VSpaceBefore=100 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-235\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-235\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -2973,10 +2973,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-235\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-235\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-240] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-240] AddLinkElementStyle=0 Alignment=0 BackgroundColor=13421772 @@ -2998,7 +2998,7 @@ VSpaceAfter=2147483647 VSpaceBefore=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-240\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-240\Borders] Bottom_Colour=10066329 Bottom_Offset=40 Bottom_Visible=1 @@ -3016,10 +3016,10 @@ Top_Visible=1 Top_Width=10 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-240\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-240\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-241] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-241] AddLinkElementStyle=0 Alignment=0 BackgroundColor=13421772 @@ -3041,7 +3041,7 @@ VSpaceAfter=2147483647 VSpaceBefore=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-241\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-241\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -3059,10 +3059,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-241\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-241\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-242] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-242] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -3084,7 +3084,7 @@ VSpaceAfter=2147483647 VSpaceBefore=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-242\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-242\Borders] Bottom_Colour=10066329 Bottom_Offset=40 Bottom_Visible=1 @@ -3102,10 +3102,10 @@ Top_Visible=1 Top_Width=10 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-242\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-242\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-243] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-243] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -3127,7 +3127,7 @@ VSpaceAfter=2147483647 VSpaceBefore=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-243\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-243\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -3145,10 +3145,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-243\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-243\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-244] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-244] AddLinkElementStyle=0 Alignment=0 BackgroundColor=13421772 @@ -3170,7 +3170,7 @@ VSpaceAfter=2147483647 VSpaceBefore=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-244\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-244\Borders] Bottom_Colour=10066329 Bottom_Offset=40 Bottom_Visible=1 @@ -3188,10 +3188,10 @@ Top_Visible=1 Top_Width=10 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-244\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-244\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-245] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-245] AddLinkElementStyle=0 Alignment=0 BackgroundColor=13421772 @@ -3213,7 +3213,7 @@ VSpaceAfter=2147483647 VSpaceBefore=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-245\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-245\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -3231,10 +3231,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-245\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-245\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-246] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-246] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -3256,7 +3256,7 @@ VSpaceAfter=2147483647 VSpaceBefore=33 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-246\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-246\Borders] Bottom_Colour=10066329 Bottom_Offset=40 Bottom_Visible=1 @@ -3274,10 +3274,10 @@ Top_Visible=1 Top_Width=10 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-246\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-246\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-247] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-247] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -3299,7 +3299,7 @@ VSpaceAfter=2147483647 VSpaceBefore=33 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-247\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-247\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -3317,10 +3317,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-247\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-247\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-248] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-248] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -3342,7 +3342,7 @@ VSpaceAfter=2147483647 VSpaceBefore=33 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-248\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-248\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -3360,10 +3360,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-248\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-248\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-249] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-249] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -3385,7 +3385,7 @@ VSpaceAfter=2147483647 VSpaceBefore=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-249\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-249\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -3403,10 +3403,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-249\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-249\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-25] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-25] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -3428,7 +3428,7 @@ VSpaceAfter=100 VSpaceBefore=33 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-25\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-25\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -3446,10 +3446,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-25\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-25\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-250] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-250] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -3471,7 +3471,7 @@ VSpaceAfter=2147483647 VSpaceBefore=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-250\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-250\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -3489,10 +3489,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-250\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-250\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-251] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-251] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -3514,7 +3514,7 @@ VSpaceAfter=2147483647 VSpaceBefore=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-251\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-251\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -3532,10 +3532,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-251\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-251\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-252] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-252] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -3557,7 +3557,7 @@ VSpaceAfter=100 VSpaceBefore=100 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-252\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-252\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -3575,10 +3575,10 @@ Top_Visible=1 Top_Width=10 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-252\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-252\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-255] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-255] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -3600,7 +3600,7 @@ VSpaceAfter=50 VSpaceBefore=100 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-255\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-255\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -3618,10 +3618,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-255\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-255\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-260] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-260] AddLinkElementStyle=0 Alignment=0 BackgroundColor=13421772 @@ -3643,7 +3643,7 @@ VSpaceAfter=2147483647 VSpaceBefore=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-260\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-260\Borders] Bottom_Colour=10066329 Bottom_Offset=40 Bottom_Visible=1 @@ -3661,10 +3661,10 @@ Top_Visible=1 Top_Width=10 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-260\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-260\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-261] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-261] AddLinkElementStyle=0 Alignment=0 BackgroundColor=13421772 @@ -3686,7 +3686,7 @@ VSpaceAfter=2147483647 VSpaceBefore=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-261\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-261\Borders] Bottom_Colour=536870911 Bottom_Offset=2147483647 Bottom_Visible=0 @@ -3704,10 +3704,10 @@ Top_Visible=0 Top_Width=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-261\Extended Info] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-261\Extended Info] Count=0 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-262] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-262] AddLinkElementStyle=0 Alignment=0 BackgroundColor=536870911 @@ -3729,7 +3729,7 @@ VSpaceAfter=2147483647 VSpaceBefore=2147483647 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-262\Borders] +[Configurations\CHM\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\Elements\-262\Borders] Bottom_Colour=10066329 Bottom_Offset=40 Bottom_Visible=1 @@ -3747,10 +3747,10 @@ Top_Visible=1 Top_Width=10 -[Configurations\Configuration 1\{D3A588E0-9472-11D3-BDD1-0080C8BA053D}\E... [truncated message content] |
From: <ou...@us...> - 2008-02-05 23:00:50
|
Revision: 2347 http://jcl.svn.sourceforge.net/jcl/?rev=2347&view=rev Author: outchy Date: 2008-02-05 15:00:44 -0800 (Tue, 05 Feb 2008) Log Message: ----------- moved manifest out of project main resource, added link to Jcl standard manifests. added valid exit code for external command lines (Doc-o-matic used to return 30 or 40 depending on QA check or warnings). the GUI processes Windows messages each time a line is added. Modified Paths: -------------- trunk/thirdparty/makedist/MakeDist.dpr trunk/thirdparty/makedist/MakeDist.res trunk/thirdparty/makedist/MakeDistActions.pas trunk/thirdparty/makedist/MakeDistGui.pas Modified: trunk/thirdparty/makedist/MakeDist.dpr =================================================================== --- trunk/thirdparty/makedist/MakeDist.dpr 2008-02-05 10:04:11 UTC (rev 2346) +++ trunk/thirdparty/makedist/MakeDist.dpr 2008-02-05 23:00:44 UTC (rev 2347) @@ -4,12 +4,14 @@ SysUtils, Windows, Forms, - JclFileUtils, JclSysUtils, + JclFileUtils, + JclSysUtils, MakeDistGui in 'MakeDistGui.pas' {MainForm}, MakeDistMain in 'MakeDistMain.pas', MakeDistActions in 'MakeDistActions.pas'; {$R *.res} +{$R ..\..\jcl\source\windows\JclCommCtrlAsInvoker.res} type TDummyClass = class Modified: trunk/thirdparty/makedist/MakeDist.res =================================================================== (Binary files differ) Modified: trunk/thirdparty/makedist/MakeDistActions.pas =================================================================== --- trunk/thirdparty/makedist/MakeDistActions.pas 2008-02-05 10:04:11 UTC (rev 2346) +++ trunk/thirdparty/makedist/MakeDistActions.pas 2008-02-05 23:00:44 UTC (rev 2347) @@ -193,17 +193,19 @@ // retreive a value from an xml file or the xml output of an executable file // WorkingDirectory and Arguments are used in case of an executable file + // ValidExitCodes is a semicolon-separated list of integer values // the xml content is parsed according to the key parameter // ie: node1\node2&3\node3\\prop1 will return the value of the "prop1" property // of the node named "node3" located in the third node named "node2" of the root node named "node1" // node1\node2\node3 will load the value of the node named "node3" located in the first node named "node2" // of the root node named "node1" - // the result is stored in the specificed environment variable + // the result is stored in the specificed environment variable TXmlGetter = class(TDistAction) private FXmlExe: string; FWorkingDirectory: string; FArguments: string; + FValidExitCodes: string; FKey: string; FEnvironmentVariable: string; protected @@ -217,11 +219,14 @@ function Execute(const AMessageHandler: TTextHandler): Boolean; override; end; + // call the specified program with arguments in a working directory + // ValidExitCodes is a semicolon-separated list of integer values TCommandLineCaller = class(TDistAction) private FApplication: string; FWorkingDirectory: string; FParameters: string; + FValidExitCodes: string; protected function GetCaption: string; override; function GetConfigCount: Integer; override; @@ -233,6 +238,8 @@ function Execute(const AMessageHandler: TTextHandler): Boolean; override; end; + // create an archive, the compressor is determined based on the extension of the archive + // all items matching Filter in Directory will be added TArchiveMaker = class(TDistAction) private FDirectory: string; @@ -249,6 +256,7 @@ function Execute(const AMessageHandler: TTextHandler): Boolean; override; end; + // clean the log TLogCleaner = class(TDistAction) protected function GetCaption: string; override; @@ -261,6 +269,7 @@ function Execute(const AMessageHandler: TTextHandler): Boolean; override; end; + // save the log to filename, if append is "yes", then the log is appended to the content of the file if any TLogSaver = class(TDistAction) private FFileName: string; @@ -1236,12 +1245,12 @@ function TXmlGetter.Execute(const AMessageHandler: TTextHandler): Boolean; var - XmlExe, WorkingDirectory, Arguments, Key, EnvironmentVariable, ProgramOutput, NodeName, PropName: string; + XmlExe, WorkingDirectory, Arguments, ValidExitCodes, Key, EnvironmentVariable, ProgramOutput, NodeName, PropName: string; XmlContent: TJclSimpleXML; Node: TJclSimpleXMLElem; Prop: TJclSimpleXMLProp; NamedNodes: TJclSimpleXMLNamedElems; - Index, AmpPos, NodeIndex: Integer; + Index, AmpPos, NodeIndex, ReturnValue: Integer; Keys: TStrings; begin XmlExe := FXmlExe; @@ -1250,6 +1259,8 @@ ExpandEnvironmentVar(WorkingDirectory); Arguments := FArguments; ExpandEnvironmentVar(Arguments); + ValidExitCodes := FValidExitCodes; + ExpandEnvironmentVar(ValidExitCodes); Key := FKey; ExpandEnvironmentVar(Key); EnvironmentVariable := FEnvironmentVariable; @@ -1263,12 +1274,16 @@ AMessageHandler('Executing ' + XmlExe + ' ' + Arguments + ' in ' + WorkingDirectory); if WorkingDirectory <> '' then SetCurrentDir(WorkingDirectory); - Result := JclSysUtils.Execute(XmlExe + ' ' + Arguments, ProgramOutput) = 0; + ReturnValue := JclSysUtils.Execute(XmlExe + ' ' + Arguments, ProgramOutput); + if ValidExitCodes = '' then + Result := ReturnValue = 0 + else + Result := ListItemIndex(ValidExitCodes, ';', IntToStr(ReturnValue)) >= 0; if Result then - AMessageHandler('Execution success') + AMessageHandler('Execution success, return value was: ' + IntToStr(ReturnValue)) else begin - AMessageHandler('Execution failure'); + AMessageHandler('Execution failure, return value was: ' + IntToStr(ReturnValue)); Exit; end; XmlContent.LoadFromString(ProgramOutput); @@ -1389,8 +1404,10 @@ 2: Result := 'Arguments'; 3: + Result := 'Valid exit codes'; + 4: Result := 'Key'; - 4: + 5: Result := 'Environment variable'; else Result := ''; @@ -1399,7 +1416,7 @@ function TXmlGetter.GetConfigCount: Integer; begin - Result := 5; + Result := 6; end; function TXmlGetter.GetConfigValue(Index: Integer): string; @@ -1412,8 +1429,10 @@ 2: Result := FArguments; 3: + Result := FValidExitCodes; + 4: Result := FKey; - 4: + 5: Result := FEnvironmentVariable; else Result := ''; @@ -1435,8 +1454,10 @@ 2: FArguments := Value; 3: + FValidExitCodes := Value; + 4: FKey := Value; - 4: + 5: FEnvironmentVariable := Value; end; end; @@ -1445,7 +1466,8 @@ function TCommandLineCaller.Execute(const AMessageHandler: TTextHandler): Boolean; var - Application, WorkingDirectory, Parameters: string; + Application, WorkingDirectory, Parameters, ValidExitCodes: string; + ReturnValue: Integer; begin Application := FApplication; ExpandEnvironmentVar(Application); @@ -1453,15 +1475,21 @@ ExpandEnvironmentVar(WorkingDirectory); Parameters := FParameters; ExpandEnvironmentVar(Parameters); + ValidExitCodes := FValidExitCodes; + ExpandEnvironmentVar(ValidExitCodes); if WorkingDirectory <> '' then SetCurrentDir(WorkingDirectory); - AMessageHandler('Executing ' + Application + ' ' + Parameters + ' in directory ' + WorkingDirectory); - Result := JclSysUtils.Execute(Application + ' ' + Parameters, AMessageHandler, False) = 0; + AMessageHandler('Executing ' + Application + ' ' + Parameters + ' in directory ' + WorkingDirectory); + ReturnValue := JclSysUtils.Execute(Application + ' ' + Parameters, AMessageHandler, False); + if ValidExitCodes = '' then + Result := ReturnValue = 0 + else + Result := ListItemIndex(ValidExitCodes, ';', IntToStr(ReturnValue)) >= 0; if Result then - AMessageHandler('Execution success') + AMessageHandler('Execution success, return value was: ' + IntToStr(ReturnValue)) else - AMessageHandler('Execution failure'); + AMessageHandler('Execution failure, return value was: ' + IntToStr(ReturnValue)); end; function TCommandLineCaller.GetCaption: string; @@ -1478,6 +1506,8 @@ Result := 'Working directory'; 2: Result := 'Parameters'; + 3: + Result := 'Valid exit codes'; else Result := ''; end; @@ -1485,7 +1515,7 @@ function TCommandLineCaller.GetConfigCount: Integer; begin - Result := 3; + Result := 4; end; function TCommandLineCaller.GetConfigValue(Index: Integer): string; @@ -1497,6 +1527,8 @@ Result := FWorkingDirectory; 2: Result := FParameters; + 3: + Result := FValidExitCodes; else Result := ''; end; @@ -1516,6 +1548,8 @@ FWorkingDirectory := Value; 2: FParameters := Value; + 3: + FValidExitCodes := Value; end; end; Modified: trunk/thirdparty/makedist/MakeDistGui.pas =================================================================== --- trunk/thirdparty/makedist/MakeDistGui.pas 2008-02-05 10:04:11 UTC (rev 2346) +++ trunk/thirdparty/makedist/MakeDistGui.pas 2008-02-05 23:00:44 UTC (rev 2347) @@ -440,6 +440,7 @@ MemoMessages.Lines.Add(Copy(Text, 2, Length(Text) - 1)) else MemoMessages.Lines.Add(Text); + Application.ProcessMessages; end; procedure TMainForm.RefreshConfig; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mar...@us...> - 2008-02-05 10:04:14
|
Revision: 2346 http://jcl.svn.sourceforge.net/jcl/?rev=2346&view=rev Author: marcovtje Date: 2008-02-05 02:04:11 -0800 (Tue, 05 Feb 2008) Log Message: ----------- * added supports_packages which is only enabled for Delphi1+, and not for FPC. Modified Paths: -------------- trunk/jcl/source/jedi.inc Modified: trunk/jcl/source/jedi.inc =================================================================== --- trunk/jcl/source/jedi.inc 2008-02-04 21:44:00 UTC (rev 2345) +++ trunk/jcl/source/jedi.inc 2008-02-05 10:04:11 UTC (rev 2346) @@ -375,6 +375,7 @@ SUPPORTS_UNSAFE_WARNINGS Compiler supports unsafe warnings (D7) SUPPORTS_WEAKPACKAGEUNIT Compiler supports the WEAKPACKAGEUNIT directive SUPPORTS_COMPILETIME_MESSAGES Compiler supports the MESSAGE directive + SUPPORTS_PACKAGES Compiler supports Packages HAS_UNIT_LIBC Unit Libc exists (Kylix, FPC on Linux/x86) HAS_UNIT_RTLCONSTS Unit RTLConsts exists (D6+/BCB6+/FPC) HAS_UNIT_TYPES Unit Types exists (D6+/BCB6+/FPC) @@ -934,6 +935,7 @@ {$DEFINE SUPPORTS_SINGLE} {$DEFINE SUPPORTS_DOUBLE} {$DEFINE SUPPORTS_EXTENDED} + {$DEFINE SUPPORTS_PACKAGES} {$ENDIF COMPILER1_UP} {$IFDEF COMPILER2_UP} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2008-02-04 21:44:02
|
Revision: 2345 http://jcl.svn.sourceforge.net/jcl/?rev=2345&view=rev Author: outchy Date: 2008-02-04 13:44:00 -0800 (Mon, 04 Feb 2008) Log Message: ----------- thirdparty/makedist: tool to create distributions of files: - can be run as a GUI or from command line. - configurable from xml file. - new actions can be added by inheriting TDistAction. thirdparty/makedist/JclFiles.xml: configuration file for the JCL release (windows, linux and turbo). TODO: configurations for the help files. Modified Paths: -------------- trunk/thirdparty/svn_cleaner/SvnCleaner.xml Added Paths: ----------- trunk/thirdparty/makedist/ trunk/thirdparty/makedist/JclFiles.xml trunk/thirdparty/makedist/MakeDist.dpr trunk/thirdparty/makedist/MakeDist.res trunk/thirdparty/makedist/MakeDistActions.pas trunk/thirdparty/makedist/MakeDistGui.dfm trunk/thirdparty/makedist/MakeDistGui.pas trunk/thirdparty/makedist/MakeDistMain.pas Property changes on: trunk/thirdparty/makedist ___________________________________________________________________ Name: bugtraq:url + http://homepages.codegear.com/jedi/issuetracker/view.php?id=%BUGID% Name: bugtraq:message + (Mantis #%BUGID%) Name: svn:ignore + *.exe *.dproj *.local *.identcache *.dcu Name: bugtraq:logregex + [Mm]antis #?(\d+)(,? ?#?(\d+))+ (\d+) Added: trunk/thirdparty/makedist/JclFiles.xml =================================================================== --- trunk/thirdparty/makedist/JclFiles.xml (rev 0) +++ trunk/thirdparty/makedist/JclFiles.xml 2008-02-04 21:44:00 UTC (rev 2345) @@ -0,0 +1,181 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<makedist> + <task name="Jcl-win.zip" selected="-1"> + <action classname="TDirectoryCreator"> + <configuration index="0" caption="Directory" value="sandbox"/> + </action> + <action classname="TCommandLineCaller"> + <configuration index="0" caption="Application" value="%SVN%"/> + <configuration index="1" caption="Working directory" value="sandbox"/> + <configuration index="2" caption="Parameters" value="export -rBASE --native-eol CRLF --force ..\..\..\jcl\ ."/> + </action> + <action classname="TConstantParser"> + <configuration index="0" caption="Source file" value="sandbox\source\common\JclBase.pas"/> + <configuration index="1" caption="Constant name" value="JclVersionMajor"/> + <configuration index="2" caption="Environment variable" value="VersionMajor"/> + </action> + <action classname="TConstantParser"> + <configuration index="0" caption="Source file" value="sandbox\source\common\JclBase.pas"/> + <configuration index="1" caption="Constant name" value="JclVersionMinor"/> + <configuration index="2" caption="Environment variable" value="VersionMinor"/> + </action> + <action classname="TConstantParser"> + <configuration index="0" caption="Source file" value="sandbox\source\common\JclBase.pas"/> + <configuration index="1" caption="Constant name" value="JclVersionRelease"/> + <configuration index="2" caption="Environment variable" value="VersionRelease"/> + </action> + <action classname="TConstantParser"> + <configuration index="0" caption="Source file" value="sandbox\source\common\JclBase.pas"/> + <configuration index="1" caption="Constant name" value="JclVersionBuild"/> + <configuration index="2" caption="Environment variable" value="VersionBuild"/> + </action> + <action classname="TCommandLineCaller"> + <configuration index="0" caption="Application" value="%ComSpec%"/> + <configuration index="1" caption="Working directory" value="sandbox\devtools\"/> + <configuration index="2" caption="Parameters" value="/C included_files.bat"/> + </action> + <action classname="TArchiveMaker"> + <configuration index="0" caption="Directory" value="sandbox"/> + <configuration index="1" caption="Filter" value="*"/> + <configuration index="2" caption="Archive name" value="jcl-%VersionMajor%.%VersionMinor%.%VersionRelease%.%VersionBuild%.zip"/> + </action> + <action classname="TDirectoryRemover"> + <configuration index="0" caption="Directory" value="sandbox"/> + <configuration index="1" caption="Move to recycle bin" value="no"/> + </action> + <action classname="TLogSaver"> + <configuration index="0" caption="File name" value="jcl-%VersionMajor%.%VersionMinor%.%VersionRelease%.%VersionBuild%.log"/> + <configuration index="1" caption="Append" value="no"/> + </action> + </task> + <task name="Jcl-linux.zip" selected="-1"> + <action classname="TDirectoryCreator"> + <configuration index="0" caption="Directory" value="sandbox"/> + </action> + <action classname="TCommandLineCaller"> + <configuration index="0" caption="Application" value="%SVN%"/> + <configuration index="1" caption="Working directory" value="sandbox"/> + <configuration index="2" caption="Parameters" value="export -rBASE --native-eol LF --force ..\..\..\jcl\ ."/> + </action> + <action classname="TConstantParser"> + <configuration index="0" caption="Source file" value="sandbox\source\common\JclBase.pas"/> + <configuration index="1" caption="Constant name" value="JclVersionMajor"/> + <configuration index="2" caption="Environment variable" value="VersionMajor"/> + </action> + <action classname="TConstantParser"> + <configuration index="0" caption="Source file" value="sandbox\source\common\JclBase.pas"/> + <configuration index="1" caption="Constant name" value="JclVersionMinor"/> + <configuration index="2" caption="Environment variable" value="VersionMinor"/> + </action> + <action classname="TConstantParser"> + <configuration index="0" caption="Source file" value="sandbox\source\common\JclBase.pas"/> + <configuration index="1" caption="Constant name" value="JclVersionRelease"/> + <configuration index="2" caption="Environment variable" value="VersionRelease"/> + </action> + <action classname="TConstantParser"> + <configuration index="0" caption="Source file" value="sandbox\source\common\JclBase.pas"/> + <configuration index="1" caption="Constant name" value="JclVersionBuild"/> + <configuration index="2" caption="Environment variable" value="VersionBuild"/> + </action> + <action classname="TCommandLineCaller"> + <configuration index="0" caption="Application" value="%ComSpec%"/> + <configuration index="1" caption="Working directory" value="sandbox\devtools\"/> + <configuration index="2" caption="Parameters" value="/C included_files.bat"/> + </action> + <action classname="TArchiveMaker"> + <configuration index="0" caption="Directory" value="sandbox"/> + <configuration index="1" caption="Filter" value="*"/> + <configuration index="2" caption="Archive name" value="jcl-%VersionMajor%.%VersionMinor%.%VersionRelease%.%VersionBuild%-linux.tar"/> + </action> + <action classname="TDirectoryRemover"> + <configuration index="0" caption="Directory" value="sandbox"/> + <configuration index="1" caption="Move to recycle bin" value="no"/> + </action> + <action classname="TArchiveMaker"> + <configuration index="0" caption="Directory" value=""/> + <configuration index="1" caption="Filter" value="jcl-%VersionMajor%.%VersionMinor%.%VersionRelease%.%VersionBuild%-linux.tar"/> + <configuration index="2" caption="Archive name" value="jcl-%VersionMajor%.%VersionMinor%.%VersionRelease%.%VersionBuild%-linux.tar.gz"/> + </action> + <action classname="TFileRemover"> + <configuration index="0" caption="Directory" value="."/> + <configuration index="1" caption="Filter" value="jcl-%VersionMajor%.%VersionMinor%.%VersionRelease%.%VersionBuild%-linux.tar"/> + <configuration index="2" caption="Move to recycle bin" value="no"/> + </action> + <action classname="TLogSaver"> + <configuration index="0" caption="File name" value="jcl-%VersionMajor%.%VersionMinor%.%VersionRelease%.%VersionBuild%-linux.log"/> + <configuration index="1" caption="Append" value="no"/> + </action> + </task> + <task name="Jcl-turbo.zip" selected="-1"> + <action classname="TDirectoryCreator"> + <configuration index="0" caption="Directory" value="sandbox"/> + </action> + <action classname="TCommandLineCaller"> + <configuration index="0" caption="Application" value="%SVN%"/> + <configuration index="1" caption="Working directory" value="sandbox"/> + <configuration index="2" caption="Parameters" value="export -rBASE --native-eol CRLF --force ..\..\..\jcl\ ."/> + </action> + <action classname="TConstantParser"> + <configuration index="0" caption="Source file" value="sandbox\source\common\JclBase.pas"/> + <configuration index="1" caption="Constant name" value="JclVersionMajor"/> + <configuration index="2" caption="Environment variable" value="VersionMajor"/> + </action> + <action classname="TConstantParser"> + <configuration index="0" caption="Source file" value="sandbox\source\common\JclBase.pas"/> + <configuration index="1" caption="Constant name" value="JclVersionMinor"/> + <configuration index="2" caption="Environment variable" value="VersionMinor"/> + </action> + <action classname="TConstantParser"> + <configuration index="0" caption="Source file" value="sandbox\source\common\JclBase.pas"/> + <configuration index="1" caption="Constant name" value="JclVersionRelease"/> + <configuration index="2" caption="Environment variable" value="VersionRelease"/> + </action> + <action classname="TConstantParser"> + <configuration index="0" caption="Source file" value="sandbox\source\common\JclBase.pas"/> + <configuration index="1" caption="Constant name" value="JclVersionBuild"/> + <configuration index="2" caption="Environment variable" value="VersionBuild"/> + </action> + <action classname="TCommandLineCaller"> + <configuration index="0" caption="Application" value="%ComSpec%"/> + <configuration index="1" caption="Working directory" value="sandbox\devtools\"/> + <configuration index="2" caption="Parameters" value="/C included_files.bat"/> + </action> + <action classname="TCommandLineCaller"> + <configuration index="0" caption="Application" value="..\..\devtools\jpp.exe"/> + <configuration index="1" caption="Working directory" value="sandbox\install"/> + <configuration index="2" caption="Parameters" value="-c -dVCL -dMSWINDOWS -uVisualCLX -uUnix -uKYLIX -xVclGui\ prototypes\JediGUIMain.pas"/> + </action> + <action classname="TCommandLineCaller"> + <configuration index="0" caption="Application" value="..\..\devtools\jpp.exe"/> + <configuration index="1" caption="Working directory" value="sandbox\install"/> + <configuration index="2" caption="Parameters" value="-c -dVCL -dMSWINDOWS -uVisualCLX -uUnix -uKYLIX -xVclGui\ prototypes\JediGUIReadme.pas"/> + </action> + <action classname="TCommandLineCaller"> + <configuration index="0" caption="Application" value="..\..\devtools\jpp.exe"/> + <configuration index="1" caption="Working directory" value="sandbox\install"/> + <configuration index="2" caption="Parameters" value="-c -dVCL -dMSWINDOWS -uVisualCLX -uUnix -uKYLIX -xVclGui\ prototypes\JediGUIInstall.pas"/> + </action> + <action classname="TCommandLineCaller"> + <configuration index="0" caption="Application" value="%DCC2006%"/> + <configuration index="1" caption="Working directory" value="sandbox\install"/> + <configuration index="2" caption="Parameters" value="-q -w -dJCLINSTALL -E..\bin -I..\source -U..\source\common;..\source\windows JediInstaller.dpr"/> + </action> + <action classname="TFileMover"> + <configuration index="0" caption="Old file name" value="sandbox\Install turbo delphi.bat"/> + <configuration index="1" caption="New file name" value="sandbox\Install.bat"/> + </action> + <action classname="TArchiveMaker"> + <configuration index="0" caption="Directory" value="sandbox"/> + <configuration index="1" caption="Filter" value="*"/> + <configuration index="2" caption="Archive name" value="jcl-%VersionMajor%.%VersionMinor%.%VersionRelease%.%VersionBuild%-turbo.zip"/> + </action> + <action classname="TDirectoryRemover"> + <configuration index="0" caption="Directory" value="sandbox"/> + <configuration index="1" caption="Move to recycle bin" value="no"/> + </action> + <action classname="TLogSaver"> + <configuration index="0" caption="File name" value="jcl-%VersionMajor%.%VersionMinor%.%VersionRelease%.%VersionBuild%-turbo.log"/> + <configuration index="1" caption="Append" value="no"/> + </action> + </task> +</makedist> Property changes on: trunk/thirdparty/makedist/JclFiles.xml ___________________________________________________________________ Name: svn:mime-type + text/xml Name: svn:eol-style + native Added: trunk/thirdparty/makedist/MakeDist.dpr =================================================================== --- trunk/thirdparty/makedist/MakeDist.dpr (rev 0) +++ trunk/thirdparty/makedist/MakeDist.dpr 2008-02-04 21:44:00 UTC (rev 2345) @@ -0,0 +1,122 @@ +program MakeDist; + +uses + SysUtils, + Windows, + Forms, + JclFileUtils, JclSysUtils, + MakeDistGui in 'MakeDistGui.pas' {MainForm}, + MakeDistMain in 'MakeDistMain.pas', + MakeDistActions in 'MakeDistActions.pas'; + +{$R *.res} + +type + TDummyClass = class + procedure WriteMessages(const Text: string); + end; + +procedure TDummyClass.WriteMessages(const Text: string); +begin + if (Length(Text) > 0) and (Text[1] = #0) then + WriteLn(Copy(Text, 2, Length(Text) - 1)) + else + WriteLn(Text); +end; + +procedure ExecuteCommandLine; +var + ConfigurationPos, UnselectAllPos, UnselectPos, SelectPos, Index: Integer; + Distribution: TDistribution; + TaskList, ProjectFile: string; +begin + try + AllocConsole; + if ParamPos('q') <= 0 then + begin + WriteLn('Distribution maker, a file distribution helper'); + WriteLn('Copyright Florent Ouchet (c), February 2008'); + WriteLn; + end; + if ParamPos('help') > 0 then + begin + WriteLn('Usage:'); + WriteLn(' MakeDist.exe [/cConfigFile] : launch the graphical GUI'); + WriteLn(' MakeDist.exe /h : launch this help page'); + WriteLn(' MakeDist.exe /x [/s=Task1[,Task2]] [/u=Task1,[Task2]] [/a] [/q]'); + WriteLn(' /c=ConfigFile : execute a project'); + WriteLn; + WriteLn('Description of switches:'); + WriteLn(' /a Unselect all tasks before considering -s'); + WriteLn(' /c=ConfigFile Use this config file'); + WriteLn(' /h or /? Show help'); + WriteLn(' /q Do not show copyright'); + WriteLn(' /s=Task1[,Task2] Select these tasks'); + WriteLn(' /u=Task1[,Task2] Unselect these tasks'); + WriteLn(' /x Execute selected tasks of a project'); + WriteLn; + end; + + ConfigurationPos := ParamPos('c'); + UnselectAllPos := ParamPos('a'); + UnselectPos := ParamPos('u'); + SelectPos := ParamPos('s'); + + Distribution := TDistribution.Create; + try + if ConfigurationPos <= 0 then + begin + WriteLn('Missing configuration file'); + Exit; + end + else + begin + ProjectFile := ParamValue(ConfigurationPos); + Distribution.LoadConfiguration(ProjectFile); + end; + if UnselectAllPos > 0 then + for Index := 0 to Distribution.TaskCount - 1 do + Distribution.Tasks[Index].Selected := False; + if SelectPos > 0 then + begin + TaskList := ParamValue(SelectPos); + for Index := 0 to Distribution.TaskCount - 1 do + if ListItemIndex(TaskList, ',', Distribution.Tasks[Index].Name) >= 0 then + Distribution.Tasks[Index].Selected := True; + end; + if UnselectPos > 0 then + begin + TaskList := ParamValue(UnselectPos); + for Index := 0 to Distribution.TaskCount - 1 do + if ListItemIndex(TaskList, ',', Distribution.Tasks[Index].Name) >= 0 then + Distribution.Tasks[Index].Selected := False; + end; + + if ExtractFilePath(ProjectFile) <> '' then + Distribution.WorkingDirectory := ExtractFilePath(ProjectFile) + else + Distribution.WorkingDirectory := GetCurrentDir; + Distribution.OnMessage := TDummyClass(nil).WriteMessages; + Distribution.ExecuteSelected; + + finally + Distribution.Free; + end; + except + on E: Exception do + WriteLn(E.ClassName + ': ' + E.Message); + end; +end; + +begin + if (ParamPos('x') > 0) or (ParamPos('h') > 0) or (ParamPos('?') > 0) then + ExecuteCommandLine + else + begin + Application.Initialize; + Application.MainFormOnTaskbar := True; + Application.CreateForm(TMainForm, MainForm); + Application.Run; + end; +end. + Property changes on: trunk/thirdparty/makedist/MakeDist.dpr ___________________________________________________________________ Name: svn:keywords + URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id Name: svn:eol-style + native Added: trunk/thirdparty/makedist/MakeDist.res =================================================================== (Binary files differ) Property changes on: trunk/thirdparty/makedist/MakeDist.res ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/thirdparty/makedist/MakeDistActions.pas =================================================================== --- trunk/thirdparty/makedist/MakeDistActions.pas (rev 0) +++ trunk/thirdparty/makedist/MakeDistActions.pas 2008-02-04 21:44:00 UTC (rev 2345) @@ -0,0 +1,1756 @@ +unit MakeDistActions; + +// unit containing standard actions +// Copyright (c) Florent Ouchet, February 2008 + +interface + +uses + Windows, SysUtils, Classes, + JclSysUtils, + MakeDistMain; + +type + // to be assumed: + // - all configuration values may contain environment variables to be expanded (ex: $(SYSTEMDIR)\cmd.exe) + // - all execute functions are jailed in a try..except..end block trapping exceptions + // - all execute functions are executed with working directory set to the directory where the configuration file is + + // change end of line style for all files in a directory whose name matches Filter + // Filter may be a semi-colon-separated of masks (ex: *.pas;*.html) + // NewEOL is CRLF (Windows style), LF (old mac style) or CR (unix style) + TEolConverter = class(TDistAction) + private + FDirectory: string; + FFilter: string; + FNewEOL: string; + protected + function GetCaption: string; override; + function GetConfigCount: Integer; override; + function GetConfigCaption(Index: Integer): string; override; + function GetConfigValue(Index: Integer): string; override; + procedure SetConfigValue(Index: Integer; const Value: string); override; + public + class function GetDescription: string; override; + function Execute(const AMessageHandler: TTextHandler): Boolean; override; + end; + + // copy files matching Filter from a directory to an other + // Filter may be a semi-colon-separated of masks (ex: *.pas;*.html) + TFileCopier = class(TDistAction) + private + FFromDirectory: string; + FFilter: string; + FToDirectory: string; + protected + function GetCaption: string; override; + function GetConfigCount: Integer; override; + function GetConfigCaption(Index: Integer): string; override; + function GetConfigValue(Index: Integer): string; override; + procedure SetConfigValue(Index: Integer; const Value: string); override; + public + class function GetDescription: string; override; + function Execute(const AMessageHandler: TTextHandler): Boolean; override; + end; + + // create a file with the specified content + // if the file already exists, it's erased and the rewritten + TFileCreator = class(TDistAction) + private + FFileName: string; + FContent: string; + protected + function GetCaption: string; override; + function GetConfigCount: Integer; override; + function GetConfigCaption(Index: Integer): string; override; + function GetConfigValue(Index: Integer): string; override; + procedure SetConfigValue(Index: Integer; const Value: string); override; + public + class function GetDescription: string; override; + function Execute(const AMessageHandler: TTextHandler): Boolean; override; + end; + + // rename a file + TFileMover = class(TDistAction) + private + FOldFileName: string; + FNewFileName: string; + protected + function GetCaption: string; override; + function GetConfigCount: Integer; override; + function GetConfigCaption(Index: Integer): string; override; + function GetConfigValue(Index: Integer): string; override; + procedure SetConfigValue(Index: Integer; const Value: string); override; + public + class function GetDescription: string; override; + function Execute(const AMessageHandler: TTextHandler): Boolean; override; + end; + + // remove files matching Filter from a directory + // if MoveToRecycleBin is set to 'yes', they are moved to the recyclebin, otherwise they are deleted + // Filter may be a semi-colon-separated of masks (ex: *.pas;*.html) + TFileRemover = class(TDistAction) + private + FDirectory: string; + FFilter: string; + FMoveToRecycleBin: string; + protected + function GetCaption: string; override; + function GetConfigCount: Integer; override; + function GetConfigCaption(Index: Integer): string; override; + function GetConfigValue(Index: Integer): string; override; + procedure SetConfigValue(Index: Integer; const Value: string); override; + public + class function GetDescription: string; override; + function Execute(const AMessageHandler: TTextHandler): Boolean; override; + end; + + // touch this file (set last modification time to now) + // if the file doesn't exist, it's created + // this function also support existing directories + TFileTouch = class(TDistAction) + private + FPath: string; + protected + function GetCaption: string; override; + function GetConfigCount: Integer; override; + function GetConfigCaption(Index: Integer): string; override; + function GetConfigValue(Index: Integer): string; override; + procedure SetConfigValue(Index: Integer; const Value: string); override; + public + class function GetDescription: string; override; + function Execute(const AMessageHandler: TTextHandler): Boolean; override; + end; + + // create a directory + TDirectoryCreator = class(TDistAction) + private + FDirectory: string; + protected + function GetCaption: string; override; + function GetConfigCount: Integer; override; + function GetConfigCaption(Index: Integer): string; override; + function GetConfigValue(Index: Integer): string; override; + procedure SetConfigValue(Index: Integer; const Value: string); override; + public + class function GetDescription: string; override; + function Execute(const AMessageHandler: TTextHandler): Boolean; override; + end; + + // remove a directory and all its files/subdirectories + // if MoveToRecycleBin is set to 'yes', they are moved to the recyclebin, otherwise they are deleted + TDirectoryRemover = class(TDistAction) + private + FDirectory: string; + FMoveToRecycleBin: string; + protected + function GetCaption: string; override; + function GetConfigCount: Integer; override; + function GetConfigCaption(Index: Integer): string; override; + function GetConfigValue(Index: Integer): string; override; + procedure SetConfigValue(Index: Integer; const Value: string); override; + public + class function GetDescription: string; override; + function Execute(const AMessageHandler: TTextHandler): Boolean; override; + end; + + // parse a source file looking for true constant declaration (ex: MyConst = 256) + // supported types are numeric (either in decimal or hexadecimal radix + // comments are ignored (ie if the constant pattern is matched in a comment it will be returned) + TConstantParser = class(TDistAction) + private + FSourceFile: string; + FConstantName: string; + FEnvironmentVariable: string; + protected + function GetCaption: string; override; + function GetConfigCount: Integer; override; + function GetConfigCaption(Index: Integer): string; override; + function GetConfigValue(Index: Integer): string; override; + procedure SetConfigValue(Index: Integer; const Value: string); override; + public + class function GetDescription: string; override; + function Execute(const AMessageHandler: TTextHandler): Boolean; override; + end; + + // compute the number of days between now and a start date + TBuildCalculator = class(TDistAction) + private + FYear: string; + FMonth: string; + FDay: string; + FEnvironmentVariable: string; + protected + function GetCaption: string; override; + function GetConfigCount: Integer; override; + function GetConfigCaption(Index: Integer): string; override; + function GetConfigValue(Index: Integer): string; override; + procedure SetConfigValue(Index: Integer; const Value: string); override; + public + class function GetDescription: string; override; + function Execute(const AMessageHandler: TTextHandler): Boolean; override; + end; + + // retreive a value from an xml file or the xml output of an executable file + // WorkingDirectory and Arguments are used in case of an executable file + // the xml content is parsed according to the key parameter + // ie: node1\node2&3\node3\\prop1 will return the value of the "prop1" property + // of the node named "node3" located in the third node named "node2" of the root node named "node1" + // node1\node2\node3 will load the value of the node named "node3" located in the first node named "node2" + // of the root node named "node1" + // the result is stored in the specificed environment variable + TXmlGetter = class(TDistAction) + private + FXmlExe: string; + FWorkingDirectory: string; + FArguments: string; + FKey: string; + FEnvironmentVariable: string; + protected + function GetCaption: string; override; + function GetConfigCount: Integer; override; + function GetConfigCaption(Index: Integer): string; override; + function GetConfigValue(Index: Integer): string; override; + procedure SetConfigValue(Index: Integer; const Value: string); override; + public + class function GetDescription: string; override; + function Execute(const AMessageHandler: TTextHandler): Boolean; override; + end; + + TCommandLineCaller = class(TDistAction) + private + FApplication: string; + FWorkingDirectory: string; + FParameters: string; + protected + function GetCaption: string; override; + function GetConfigCount: Integer; override; + function GetConfigCaption(Index: Integer): string; override; + function GetConfigValue(Index: Integer): string; override; + procedure SetConfigValue(Index: Integer; const Value: string); override; + public + class function GetDescription: string; override; + function Execute(const AMessageHandler: TTextHandler): Boolean; override; + end; + + TArchiveMaker = class(TDistAction) + private + FDirectory: string; + FFilter: string; + FArchive: string; + protected + function GetCaption: string; override; + function GetConfigCount: Integer; override; + function GetConfigCaption(Index: Integer): string; override; + function GetConfigValue(Index: Integer): string; override; + procedure SetConfigValue(Index: Integer; const Value: string); override; + public + class function GetDescription: string; override; + function Execute(const AMessageHandler: TTextHandler): Boolean; override; + end; + + TLogCleaner = class(TDistAction) + protected + function GetCaption: string; override; + function GetConfigCount: Integer; override; + function GetConfigCaption(Index: Integer): string; override; + function GetConfigValue(Index: Integer): string; override; + procedure SetConfigValue(Index: Integer; const Value: string); override; + public + class function GetDescription: string; override; + function Execute(const AMessageHandler: TTextHandler): Boolean; override; + end; + + TLogSaver = class(TDistAction) + private + FFileName: string; + FAppend: string; + protected + function GetCaption: string; override; + function GetConfigCount: Integer; override; + function GetConfigCaption(Index: Integer): string; override; + function GetConfigValue(Index: Integer): string; override; + procedure SetConfigValue(Index: Integer; const Value: string); override; + public + class function GetDescription: string; override; + function Execute(const AMessageHandler: TTextHandler): Boolean; override; + end; + +implementation + +uses + DateUtils, JclDateTime, JclStrings, JclFileUtils, JclSysInfo, JclSimpleXml, JclCompression; + +const + StdActionsClasses: array [0..14] of TDistActionClass = + ( TBuildCalculator, TConstantParser, TDirectoryCreator, TDirectoryRemover, TEolConverter, TFileCopier, + TFileCreator, TFileMover, TFileRemover, TFileTouch, TXmlGetter, TCommandLineCaller, TArchiveMaker, + TLogSaver, TLogCleaner ); + +procedure RegisterStandardActions; +var + DistActions: TDistActions; + Index: Integer; +begin + DistActions := GetDistActions; + + for Index := Low(StdActionsClasses) to High(StdActionsClasses) do + DistActions.RegisterAction(StdActionsClasses[Index]); +end; + +procedure UnregisterStandardActions; +var + DistActions: TDistActions; + Index: Integer; +begin + DistActions := GetDistActions; + + for Index := Low(StdActionsClasses) to High(StdActionsClasses) do + DistActions.UnregisterAction(StdActionsClasses[Index]); +end; + +//=== { TEolConverter } ====================================================== + +function TEolConverter.Execute(const AMessageHandler: TTextHandler): Boolean; +var + FileList: TStrings; + Index: Integer; + TextFile: TJclMappedTextReader; + OutputStream: TFileStream; + EOL, Content: AnsiString; + NewEOL, Directory, Filter, FileName: string; +begin + NewEOL := FNewEOL; + ExpandEnvironmentVar(NewEOL); + Directory := FDirectory; + ExpandEnvironmentVar(Directory); + Filter := FFilter; + ExpandEnvironmentVar(Filter); + + Result := True; + + if AnsiSameText(NewEOL, 'CRLF') then + EOL := AnsiCrLf + else + if AnsiSameText(NewEOL, 'CR') then + EOL := AnsiCarriageReturn + else + if AnsiSameText(NewEOL, 'LF') then + EOL := AnsiLineFeed + else + begin + AMessageHandler('Invalid EOL configuration'); + Result := False; + Exit; + end; + + FileList := TStringList.Create; + try + BuildFileList(PathAddSeparator(Directory)+Filter, faNormalFile, FileList); + for Index := 0 to FileList.Count - 1 do + begin + FileName := PathAddSeparator(Directory) + FileList.Strings[Index]; + + Content := ''; + TextFile := TJclMappedTextReader.Create(FileName); + try + while not TextFile.Eof do + begin + if Content <> '' then + Content := Content + EOL + TextFile.ReadLn + else + Content := TextFile.ReadLn; + end; + finally + TextFile.Free; + end; + + OutputStream := TFileStream.Create(FileName, fmCreate or fmShareExclusive); + try + OutputStream.WriteBuffer(Content[1], Length(Content)); + finally + OutputStream.Free; + end; + + if FileList.Count < 50 then + AMessageHandler('Converted ' + FileName + ' to end of line ' + NewEOL); + end; + if FileList.Count >= 50 then + AMessageHandler('Converted ' + IntToStr(FileList.Count) + ' to end of line ' + NewEOL); + finally + FileList.Free; + end; +end; + +function TEolConverter.GetCaption: string; +begin + Result := Format('Change EOL for %s in %s to %s', [FFilter, FDirectory, FNewEOL]); +end; + +function TEolConverter.GetConfigCaption(Index: Integer): string; +begin + case Index of + 0: + Result := 'Directory'; + 1: + Result := 'Filters'; + 2: + Result := 'New EOL'; + else + Result := ''; + end; +end; + +function TEolConverter.GetConfigCount: Integer; +begin + Result := 3; +end; + +function TEolConverter.GetConfigValue(Index: Integer): string; +begin + case Index of + 0: + Result := FDirectory; + 1: + Result := FFilter; + 2: + Result := FNewEOL; + else + Result := ''; + end; +end; + +class function TEolConverter.GetDescription: string; +begin + Result := 'Change EOL of text files'; +end; + +procedure TEolConverter.SetConfigValue(Index: Integer; const Value: string); +begin + case Index of + 0: + FDirectory := Value; + 1: + FFilter := Value; + 2: + FNewEOL := Value; + end; +end; + +//=== { TFileCopier } ======================================================== + +function TFileCopier.Execute(const AMessageHandler: TTextHandler): Boolean; +var + FileList: TStrings; + Index: Integer; + FromDirectory, Filter, ToDirectory, FileName: string; +begin + FromDirectory := FFromDirectory; + ExpandEnvironmentVar(FromDirectory); + Filter := FFilter; + ExpandEnvironmentVar(Filter); + ToDirectory := FToDirectory; + ExpandEnvironmentVar(ToDirectory); + + FileList := TStringList.Create; + try + BuildFileList(PathAddSeparator(FromDirectory) + Filter, faNormalFile, FileList); + if FileList.Count > 0 then + begin + Result := True; + for Index := 0 to FileList.Count - 1 do + begin + FileName := FileList.Strings[Index]; + Result := FileCopy(PathAddSeparator(FromDirectory) + FileName, + PathAddSeparator(ToDirectory) + FileName, False); + if not Result then + begin + AMessageHandler('Failed to copy ' + PathAddSeparator(FromDirectory) + FileName + + ' to ' + ToDirectory + ', destination may exist'); + Break; + end; + end; + if Result then + AMessageHandler(IntToStr(FileList.Count) + ' files were copied') + else + AMessageHandler('Failed to copy ' + IntToStr(FileList.Count) + ' files'); + end + else + begin + AMessageHandler('No files were found'); + Result := False; + end; + finally + FileList.Free; + end; +end; + +function TFileCopier.GetCaption: string; +begin + Result := 'Copy ' + FFilter + ' from ' + FFromDirectory + ' to ' + FToDirectory; +end; + +function TFileCopier.GetConfigCaption(Index: Integer): string; +begin + case Index of + 0: + Result := 'From directory'; + 1: + Result := 'Filter'; + 2: + Result := 'To directory'; + else + Result := ''; + end; +end; + +function TFileCopier.GetConfigCount: Integer; +begin + Result := 3; +end; + +function TFileCopier.GetConfigValue(Index: Integer): string; +begin + case Index of + 0: + Result := FFromDirectory; + 1: + Result := FFilter; + 2: + Result := FToDirectory; + else + Result := ''; + end; +end; + +class function TFileCopier.GetDescription: string; +begin + Result := 'Copy files from one directory to an other'; +end; + +procedure TFileCopier.SetConfigValue(Index: Integer; const Value: string); +begin + case Index of + 0: + FFromDirectory := Value; + 1: + FFilter := Value; + 2: + FToDirectory := Value; + end; +end; + +//=== { TFileCreator } ======================================================= + +function TFileCreator.Execute(const AMessageHandler: TTextHandler): Boolean; +var + FileName, Content: string; + AFileStream: TStream; +begin + FileName := FFileName; + ExpandEnvironmentVar(FileName); + Content := FContent; + ExpandEnvironmentVar(Content); + + Result := True; + + AFileStream := TFileStream.Create(FileName, fmCreate and fmShareDenyWrite); + try + if Content <> '' then + begin + AFileStream.WriteBuffer(Content[1], Length(Content) * SizeOf(Content[1])); + AMessageHandler('Created file ' + FileName + ' with content ' + Content); + end + else + AMessageHandler('Created empty file ' + FileName); + finally + AFileStream.Free; + end; +end; + +function TFileCreator.GetCaption: string; +begin + if FContent <> '' then + Result := 'Create file ' + FFileName + ' and set its content to ' + FContent + else + Result := 'Create empty file ' + FFileName; +end; + +function TFileCreator.GetConfigCaption(Index: Integer): string; +begin + case Index of + 0: + Result := 'File name'; + 1: + Result := 'Content'; + else + Result := ''; + end; +end; + +function TFileCreator.GetConfigCount: Integer; +begin + Result := 2; +end; + +function TFileCreator.GetConfigValue(Index: Integer): string; +begin + case Index of + 0: + Result := FFileName; + 1: + Result := FContent; + else + Result := ''; + end; +end; + +class function TFileCreator.GetDescription: string; +begin + Result := 'Create a file and write its content'; +end; + +procedure TFileCreator.SetConfigValue(Index: Integer; const Value: string); +begin + case Index of + 0: + FFileName := Value; + 1: + FContent := Value; + end; +end; + +//=== { TFileRenamer } ======================================================= + +function TFileMover.Execute(const AMessageHandler: TTextHandler): Boolean; +var + OldFileName, NewFileName: string; +begin + OldFileName := FOldFileName; + ExpandEnvironmentVar(OldFileName); + NewFileName := FNewFileName; + ExpandEnvironmentVar(NewFileName); + + AMessageHandler('Renaming file ' + OldFileName + ' to ' + NewFileName); + Result := FileMove(OldFileName, NewFileName, True); + if Result then + AMessageHandler('Rename success') + else + AMessageHandler('Rename failure'); +end; + +function TFileMover.GetCaption: string; +begin + Result := 'Rename ' + FOldFileName + ' to ' + FNewFileName; +end; + +function TFileMover.GetConfigCaption(Index: Integer): string; +begin + case Index of + 0: + Result := 'Old file name'; + 1: + Result := 'New file name'; + else + Result := ''; + end; +end; + +function TFileMover.GetConfigCount: Integer; +begin + Result := 2; +end; + +function TFileMover.GetConfigValue(Index: Integer): string; +begin + case Index of + 0: + Result := FOldFileName; + 1: + Result := FNewFileName; + else + Result := ''; + end; +end; + +class function TFileMover.GetDescription: string; +begin + Result := 'Rename a file'; +end; + +procedure TFileMover.SetConfigValue(Index: Integer; const Value: string); +begin + case Index of + 0: + FOldFileName := Value; + 1: + FNewFileName := Value; + end; +end; + +//=== { TFileRemover } ======================================================= + +function TFileRemover.Execute(const AMessageHandler: TTextHandler): Boolean; +var + FileList: TStrings; + Index: Integer; + Directory, Filter, MoveToRecycleBin, FileName: string; + MoveToRecBin: Boolean; +begin + Directory := FDirectory; + ExpandEnvironmentVar(Directory); + Filter := FFilter; + ExpandEnvironmentVar(Filter); + MoveToRecycleBin := FMoveToRecycleBin; + ExpandEnvironmentVar(MoveToRecycleBin); + MoveToRecBin := AnsiSameText(MoveToRecycleBin, 'yes'); + + FileList := TStringList.Create; + try + BuildFileList(PathAddSeparator(Directory) + Filter, faAnyFile and (not faDirectory), FileList); + if FileList.Count > 0 then + begin + Result := True; + for Index := 0 to FileList.Count - 1 do + begin + FileName := FileList.Strings[Index]; + Result := FileDelete(PathAddSeparator(Directory) + FileName, MoveToRecBin); + if not Result then + begin + AMessageHandler('Failed to remove ' + PathAddSeparator(Directory) + FileName); + Break; + end; + end; + if Result then + AMessageHandler(IntToStr(FileList.Count) + ' files were deleted') + else + AMessageHandler('Failed to remove ' + IntToStr(FileList.Count) + ' files'); + end + else + begin + AMessageHandler('No files were found'); + Result := False; + end; + finally + FileList.Free; + end; +end; + +function TFileRemover.GetCaption: string; +begin + Result := 'Remove ' + FFilter + ' in ' + FDirectory; +end; + +function TFileRemover.GetConfigCaption(Index: Integer): string; +begin + case Index of + 0: + Result := 'Directory'; + 1: + Result := 'Filter'; + 2: + Result := 'Move to recycle bin'; + else + Result := ''; + end; +end; + +function TFileRemover.GetConfigCount: Integer; +begin + Result := 3; +end; + +function TFileRemover.GetConfigValue(Index: Integer): string; +begin + case Index of + 0: + Result := FDirectory; + 1: + Result := FFilter; + 2: + Result := FMoveToRecycleBin; + else + Result := ''; + end; +end; + +class function TFileRemover.GetDescription: string; +begin + Result := 'Remove files from one directory'; +end; + +procedure TFileRemover.SetConfigValue(Index: Integer; const Value: string); +begin + case Index of + 0: + FDirectory := Value; + 1: + FFilter := Value; + 2: + FMoveToRecycleBin := Value; + end; +end; + +//=== { TFileTouch } ========================================================= + +function TFileTouch.Execute(const AMessageHandler: TTextHandler): Boolean; +const + FILE_WRITE_ATTRIBUTES = $00000100; +var + Path: string; + PathHandle: THandle; + AFileTime: TFileTime; +begin + Path := FPath; + ExpandEnvironmentVar(Path); + + PathHandle := CreateFile(PChar(Path), FILE_WRITE_ATTRIBUTES, FILE_SHARE_READ, nil, OPEN_ALWAYS, 0, 0); + if PathHandle <> INVALID_HANDLE_VALUE then + begin + try + AFileTime := LocalDateTimeToFileTime(Date); + Result := SetFileTime(PathHandle, @AFileTime, @AFileTime, @AFileTime); + finally + CloseHandle(PathHandle); + end; + if Result then + AMessageHandler('Touched path ' + Path) + else + AMessageHandler('Failed to touch path ' + Path); + end + else + begin + Result := False; + AMessageHandler('Failed to open path ' + Path + ' for a touch'); + end; +end; + +function TFileTouch.GetCaption: string; +begin + Result := 'Touch ' + FPath; +end; + +function TFileTouch.GetConfigCaption(Index: Integer): string; +begin + case Index of + 0: + Result := 'Path name'; + else + Result := ''; + end; +end; + +function TFileTouch.GetConfigCount: Integer; +begin + Result := 1; +end; + +function TFileTouch.GetConfigValue(Index: Integer): string; +begin + case Index of + 0: + Result := FPath; + else + Result := ''; + end; +end; + +class function TFileTouch.GetDescription: string; +begin + Result := 'Touch a file or a path'; +end; + +procedure TFileTouch.SetConfigValue(Index: Integer; const Value: string); +begin + case Index of + 0: + FPath := Value; + end; +end; + +//=== { TDirectoryCreator } ================================================== + +function TDirectoryCreator.Execute(const AMessageHandler: TTextHandler): Boolean; +var + Directory: string; +begin + Directory := FDirectory; + ExpandEnvironmentVar(Directory); + + Result := ForceDirectories(Directory); + if Result then + AMessageHandler('Created directory ' + Directory) + else + AMessageHandler('Failed to create directory ' + Directory); +end; + +function TDirectoryCreator.GetCaption: string; +begin + Result := 'Create directory ' + FDirectory; +end; + +function TDirectoryCreator.GetConfigCaption(Index: Integer): string; +begin + case Index of + 0: + Result := 'Directory'; + else + Result := ''; + end; +end; + +function TDirectoryCreator.GetConfigCount: Integer; +begin + Result := 1; +end; + +function TDirectoryCreator.GetConfigValue(Index: Integer): string; +begin + case Index of + 0: + Result := FDirectory; + else + Result := ''; + end; +end; + +class function TDirectoryCreator.GetDescription: string; +begin + Result := 'Create a directory'; +end; + +procedure TDirectoryCreator.SetConfigValue(Index: Integer; const Value: string); +begin + case Index of + 0: + FDirectory := Value; + end; +end; + +//=== { TDirectoryRemover } ================================================== + +function TDirectoryRemover.Execute(const AMessageHandler: TTextHandler): Boolean; +var + Directory, MoveToRecycleBin: string; + MoveToRecBin: Boolean; +begin + Directory := FDirectory; + ExpandEnvironmentVar(Directory); + MoveToRecycleBin := FMoveToRecycleBin; + ExpandEnvironmentVar(MoveToRecycleBin); + MoveToRecBin := AnsiSameText(MoveToRecycleBin, 'yes'); + + Result := DeleteDirectory(Directory, MoveToRecBin); + + if Result then + AMessageHandler('Removed directory ' + Directory) + else + AMessageHandler('Failed to remove directory ' + Directory); +end; + +function TDirectoryRemover.GetCaption: string; +begin + Result := 'Delete directory ' + FDirectory; +end; + +function TDirectoryRemover.GetConfigCaption(Index: Integer): string; +begin + case Index of + 0: + Result := 'Directory'; + 1: + Result := 'Move to recycle bin'; + else + Result := ''; + end; +end; + +function TDirectoryRemover.GetConfigCount: Integer; +begin + Result := 2; +end; + +function TDirectoryRemover.GetConfigValue(Index: Integer): string; +begin + case Index of + 0: + Result := FDirectory; + 1: + Result := FMoveToRecycleBin; + else + Result := ''; + end; +end; + +class function TDirectoryRemover.GetDescription: string; +begin + Result := 'Delete a directory'; +end; + +procedure TDirectoryRemover.SetConfigValue(Index: Integer; const Value: string); +begin + case Index of + 0: + FDirectory := Value; + 1: + FMoveToRecycleBin := Value; + end; +end; + +//=== { TConstantParser } ==================================================== + +function TConstantParser.Execute(const AMessageHandler: TTextHandler): Boolean; +var + SourceFile, ConstantName, EnvironmentVariable, Line, Value: string; + FileContent: TJclMappedTextReader; + LinePos, ConstantStart: Integer; +begin + SourceFile := FSourceFile; + ExpandEnvironmentVar(SourceFile); + ConstantName := FConstantName; + ExpandEnvironmentVar(ConstantName); + EnvironmentVariable := FEnvironmentVariable; + ExpandEnvironmentVar(EnvironmentVariable); + + FileContent := TJclMappedTextReader.Create(SourceFile); + try + Result := False; + + while not FileContent.Eof do + begin + Line := FileContent.ReadLn; + LinePos := StrIPos(ConstantName, Line); + + if LinePos > 0 then + begin + // found constant name + Inc(LinePos, Length(ConstantName)); + if (LinePos <= Length(Line)) and not (Line[LinePos] in ['a'..'z', 'A'..'Z', '0'..'9', '_']) then + begin + // make sure it's a whole word + while (LinePos <= Length(Line)) and (Line[LinePos] in AnsiWhiteSpace) do + Inc(LinePos); + if (LinePos <= Length(Line)) and (Line[LinePos] = '=') then + begin + // is on a constant declaration line + Inc(LinePos); + // goto start of constant value + while (LinePos <= Length(Line)) and (Line[LinePos] in AnsiWhiteSpace) do + Inc(LinePos); + + if (LinePos <= Length(Line)) and (Line[LinePos] in ['0'..'9', '$', '+', '-']) then + begin + // numeric constant + ConstantStart := LinePos; + Inc(LinePos); + while (LinePos <= Length(Line)) and (Line[LinePos] in ['0'..'9', '.', 'e', 'E', '+', '-']) do + Inc(LinePos); + Value := Copy(Line, ConstantStart, LinePos - ConstantStart); + Result := True; + end + else + if (LinePos <= Length(Line)) and (Line[LinePos] = '''') then + begin + // string constant + ConstantStart := LinePos; + Inc(LinePos); + while (LinePos <= Length(Line)) and (Line[LinePos] <> '''') do + Inc(LinePos); + Value := Copy(Line, ConstantStart, LinePos - ConstantStart); + Result := True; + end + else + if (LinePos <= Length(Line)) and (Line[LinePos] in ['a'..'z', 'A'..'Z', '_']) then + begin + // identifier + ConstantStart := LinePos; + Inc(LinePos); + while (LinePos <= Length(Line)) and (Line[LinePos] in ['a'..'z', 'A'..'Z', '_', '0'..'9']) do + Inc(LinePos); + Value := Copy(Line, ConstantStart, LinePos - ConstantStart); + Result := True; + end; + + if Result then + begin + SetEnvironmentVar(EnvironmentVariable, Value); + AMessageHandler('Found constant ' + ConstantName + ' with value ' + Value); + Break; + end; + end; + end; + end; + end; + if not Result then + AMessageHandler('Failed to find constant ' + ConstantName); + finally + FileContent.Free; + end; +end; + +function TConstantParser.GetCaption: string; +begin + Result := 'Load constant ' + FConstantName + ' in file ' + FSourceFile + ' and save result in ' + + FEnvironmentVariable; +end; + +function TConstantParser.GetConfigCaption(Index: Integer): string; +begin + case Index of + 0: + Result := 'Source file'; + 1: + Result := 'Constant name'; + 2: + Result := 'Environment variable'; + else + Result := ''; + end; +end; + +function TConstantParser.GetConfigCount: Integer; +begin + Result := 3; +end; + +function TConstantParser.GetConfigValue(Index: Integer): string; +begin + case Index of + 0: + Result := FSourceFile; + 1: + Result := FConstantName; + 2: + Result := FEnvironmentVariable; + else + Result := ''; + end; +end; + +class function TConstantParser.GetDescription: string; +begin + Result := 'Load a constant from a source file and save result to an environment variable'; +end; + +procedure TConstantParser.SetConfigValue(Index: Integer; const Value: string); +begin + case Index of + 0: + FSourceFile := Value; + 1: + FConstantName := Value; + 2: + FEnvironmentVariable := Value; + end; +end; + +{ TBuildCalculator } + +function TBuildCalculator.Execute(const AMessageHandler: TTextHandler): Boolean; +var + Year, Month, Day, EnvironmentVariable, Value: string; + Today, StartDay: TDateTime; +begin + Year := FYear; + ExpandEnvironmentVar(Year); + Month := FMonth; + ExpandEnvironmentVar(Month); + Day := FDay; + ExpandEnvironmentVar(Day); + EnvironmentVariable := FEnvironmentVariable; + ExpandEnvironmentVar(EnvironmentVariable); + + Result := True; + + Today := Date; + StartDay := EncodeDate(StrToInt(Year), StrToInt(Month), StrToInt(Day)); + + Value := IntToStr(DaysBetween(Today, StartDay)); + SetEnvironmentVar(EnvironmentVariable, Value); + AMessageHandler('Evaluated build number to ' + Value + ' and set environment variable ' + EnvironmentVariable); +end; + +function TBuildCalculator.GetCaption: string; +begin + Result := 'Evaluate days between now and ' + FYear + '-' + FMonth + '-' + FDay + ' and save result to ' + + FEnvironmentVariable; +end; + +function TBuildCalculator.GetConfigCaption(Index: Integer): string; +begin + case Index of + 0: + Result := 'Year'; + 1: + Result := 'Month'; + 2: + Result := 'Day'; + 3: + Result := 'Environment variable'; + else + Result := ''; + end; +end; + +function TBuildCalculator.GetConfigCount: Integer; +begin + Result := 4; +end; + +function TBuildCalculator.GetConfigValue(Index: Integer): string; +begin + case Index of + 0: + Result := FYear; + 1: + Result := FMonth; + 2: + Result := FDay; + 3: + Result := FEnvironmentVariable; + else + Result := ''; + end; +end; + +class function TBuildCalculator.GetDescription: string; +begin + Result := 'Evaluate number of days between now and a predefined date'; +end; + +procedure TBuildCalculator.SetConfigValue(Index: Integer; const Value: string); +begin + case Index of + 0: + FYear := Value; + 1: + FMonth := Value; + 2: + FDay := Value; + 3: + FEnvironmentVariable := Value; + end; +end; + +//=== { TXmlGetter } ========================================================= + +function TXmlGetter.Execute(const AMessageHandler: TTextHandler): Boolean; +var + XmlExe, WorkingDirectory, Arguments, Key, EnvironmentVariable, ProgramOutput, NodeName, PropName: string; + XmlContent: TJclSimpleXML; + Node: TJclSimpleXMLElem; + Prop: TJclSimpleXMLProp; + NamedNodes: TJclSimpleXMLNamedElems; + Index, AmpPos, NodeIndex: Integer; + Keys: TStrings; +begin + XmlExe := FXmlExe; + ExpandEnvironmentVar(XmlExe); + WorkingDirectory := FWorkingDirectory; + ExpandEnvironmentVar(WorkingDirectory); + Arguments := FArguments; + ExpandEnvironmentVar(Arguments); + Key := FKey; + ExpandEnvironmentVar(Key); + EnvironmentVariable := FEnvironmentVariable; + ExpandEnvironmentVar(EnvironmentVariable); + + XmlContent := TJclSimpleXML.Create; + try + // load xml content + if AnsiSameText(ExtractFileExt(XmlExe), '.exe') then + begin + AMessageHandler('Executing ' + XmlExe + ' ' + Arguments + ' in ' + WorkingDirectory); + if WorkingDirectory <> '' then + SetCurrentDir(WorkingDirectory); + Result := JclSysUtils.Execute(XmlExe + ' ' + Arguments, ProgramOutput) = 0; + if Result then + AMessageHandler('Execution success') + else + begin + AMessageHandler('Execution failure'); + Exit; + end; + XmlContent.LoadFromString(ProgramOutput); + end + else + begin + AMessageHandler('Loading xml content from ' + XmlExe); + XmlContent.LoadFromFile(XmlExe); + end; + + XmlContent.Options := XmlContent.Options - [sxoAutoCreate]; + + // locate key + Keys := TStringList.Create; + try + Result := False; + StrToStrings(Key, AnsiBackslash, Keys, True); + if Keys.Count > 0 then + begin + Node := XmlContent.Root; + NodeName := Keys.Strings[0]; + if AnsiSameText(Node.Name, NodeName) then + begin + for Index := 1 to Keys.Count - 1 do + begin + NodeName := Keys.Strings[Index]; + if NodeName = '' then + begin + // next item is the last and is the name of the property + if Index = (Keys.Count - 2) then + begin + PropName := Keys.Strings[Keys.Count - 1]; + Prop := Node.Properties.ItemNamed[PropName]; + if Prop <> nil then + begin + SetEnvironmentVar(EnvironmentVariable, Prop.Value); + Result := True; + AMessageHandler('Property found: saved value ' + Prop.Value + ' to environment variable ' + + EnvironmentVariable); + end + else + AMessageHandler('No such property: ' + PropName); + end + else + AMessageHandler('Invalid key: property name has to be latest item in the string'); + Exit; + end; + AmpPos := Pos('&', NodeName); + if AmpPos > 0 then + begin + // load indexed node + NodeIndex := StrToInt(Copy(NodeName, AmpPos + 1, Length(NodeName) - AmpPos)); + SetLength(NodeName, AmpPos - 1); + NamedNodes := Node.Items.NamedElems[NodeName]; + Node := NamedNodes.Item[NodeIndex]; + if Node = nil then + begin + AMessageHandler('Node not found: parent node doesn''t have ' + IntToStr(NodeIndex) + ' node(s) named ' + + NodeName); + Exit; + end; + end + else + begin + // load named node + Node := Node.Items.ItemNamed[NodeName]; + if Node = nil then + begin + AMessageHandler('Node not found: parent node doesn''t have a node named ' + NodeName); + Exit; + end; + end; + // last item: load its value + if Index = Keys.Count - 1 then + begin + SetEnvironmentVar(EnvironmentVariable, Node.Value); + Result := True; + AMessageHandler('Node found: saved value ' + Node.Value + ' to environment variable ' + + EnvironmentVariable); + Exit; + end; + end; + end + else + AMessageHandler('Node not found: name of root node is not ' + NodeName); + end + else + AMessageHandler('Invalid key: empty key'); + finally + Keys.Free; + end; + finally + XmlContent.Free; + end; +end; + +function TXmlGetter.GetCaption: string; +var + XmlExe: string; +begin + XmlExe := FXmlExe; + ExpandEnvironmentVar(XmlExe); + if AnsiSameText(ExtractFileExt(XmlExe), '.exe') then + Result := 'Execute ' + XmlExe + ' with arguments ' + FArguments + ' in directory ' + FWorkingDirectory + + ' and save xml value ' + FKey + ' in environment variable ' + FEnvironmentVariable + else + Result := 'Parse xml file ' + FXmlExe + ' and save value ' + FKey + ' in environment variable ' + + FEnvironmentVariable; +end; + +function TXmlGetter.GetConfigCaption(Index: Integer): string; +begin + case Index of + 0: + Result := 'Xml or command file'; + 1: + Result := 'Working directory'; + 2: + Result := 'Arguments'; + 3: + Result := 'Key'; + 4: + Result := 'Environment variable'; + else + Result := ''; + end; +end; + +function TXmlGetter.GetConfigCount: Integer; +begin + Result := 5; +end; + +function TXmlGetter.GetConfigValue(Index: Integer): string; +begin + case Index of + 0: + Result := FXmlExe; + 1: + Result := FWorkingDirectory; + 2: + Result := FArguments; + 3: + Result := FKey; + 4: + Result := FEnvironmentVariable; + else + Result := ''; + end; +end; + +class function TXmlGetter.GetDescription: string; +begin + Result := 'Extract a value from an xml file or from the output of a executable command'; +end; + +procedure TXmlGetter.SetConfigValue(Index: Integer; const Value: string); +begin + case Index of + 0: + FXmlExe := Value; + 1: + FWorkingDirectory := Value; + 2: + FArguments := Value; + 3: + FKey := Value; + 4: + FEnvironmentVariable := Value; + end; +end; + +//=== { TCommandLineCaller } ================================================= + +function TCommandLineCaller.Execute(const AMessageHandler: TTextHandler): Boolean; +var + Application, WorkingDirectory, Parameters: string; +begin + Application := FApplication; + ExpandEnvironmentVar(Application); + WorkingDirectory := FWorkingDirectory; + ExpandEnvironmentVar(WorkingDirectory); + Parameters := FParameters; + ExpandEnvironmentVar(Parameters); + + if WorkingDirectory <> '' then + SetCurrentDir(WorkingDirectory); + AMessageHandler('Executing ' + Application + ' ' + Parameters + ' in directory ' + WorkingDirectory); + Result := JclSysUtils.Execute(Application + ' ' + Parameters, AMessageHandler, False) = 0; + if Result then + AMessageHandler('Execution success') + else + AMessageHandler('Execution failure'); +end; + +function TCommandLineCaller.GetCaption: string; +begin + Result := 'Execute ' + FApplication + ' in directory ' + FWorkingDirectory + ' with parameters ' + FParameters; +end; + +function TCommandLineCaller.GetConfigCaption(Index: Integer): string; +begin + case Index of + 0: + Result := 'Application'; + 1: + Result := 'Working directory'; + 2: + Result := 'Parameters'; + else + Result := ''; + end; +end; + +function TCommandLineCaller.GetConfigCount: Integer; +begin + Result := 3; +end; + +function TCommandLineCaller.GetConfigValue(Index: Integer): string; +begin + case Index of + 0: + ... [truncated message content] |
From: <ou...@us...> - 2008-02-03 22:08:00
|
Revision: 2344 http://jcl.svn.sourceforge.net/jcl/?rev=2344&view=rev Author: outchy Date: 2008-02-03 14:07:58 -0800 (Sun, 03 Feb 2008) Log Message: ----------- installation script for Turbo Delphi. Added Paths: ----------- trunk/jcl/Install turbo delphi.bat Added: trunk/jcl/Install turbo delphi.bat =================================================================== --- trunk/jcl/Install turbo delphi.bat (rev 0) +++ trunk/jcl/Install turbo delphi.bat 2008-02-03 22:07:58 UTC (rev 2344) @@ -0,0 +1,20 @@ +@echo off + +echo Launching JCL installer... + +start .\bin\JediInstaller.exe %2 %3 %4 %5 %6 %7 %8 %9 +if ERRORLEVEL 1 goto FailStart +goto FINI + +:FailStart +.\bin\JediInstaller.exe %2 %3 %4 %5 %6 %7 %8 %9 +goto FINI + +:FailedCompile +echo. +echo. +echo An error occured while compiling the installer. Installation aborted. +echo. +pause + +:FINI Property changes on: trunk/jcl/Install turbo delphi.bat ___________________________________________________________________ Name: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mar...@us...> - 2008-02-03 20:54:22
|
Revision: 2343 http://jcl.svn.sourceforge.net/jcl/?rev=2343&view=rev Author: marcovtje Date: 2008-02-03 12:54:20 -0800 (Sun, 03 Feb 2008) Log Message: ----------- * HAS_UNIT_CONTNRS in jedi.inc to remove a version specific check in JclDotNet.pas * Removed FPC specific sections from JclWin32.pas. No longer needed with -trunk and lead to duplicate identifiers * No more Jwacctrluse in jclregistry; leads to dupe idents. Modified Paths: -------------- trunk/jcl/source/jedi.inc trunk/jcl/source/windows/JclDotNet.pas trunk/jcl/source/windows/JclRegistry.pas trunk/jcl/source/windows/JclWin32.pas Modified: trunk/jcl/source/jedi.inc =================================================================== --- trunk/jcl/source/jedi.inc 2008-02-03 20:48:55 UTC (rev 2342) +++ trunk/jcl/source/jedi.inc 2008-02-03 20:54:20 UTC (rev 2343) @@ -381,6 +381,7 @@ HAS_UNIT_VARIANTS Unit Variants exists (D6+/BCB6+/FPC) HAS_UNIT_STRUTILS Unit StrUtils exists (D6+/BCB6+/FPC) HAS_UNIT_DATEUTILS Unit DateUtils exists (D6+/BCB6+/FPC) + HAS_UNIT_CONTNRS Unit contnrs exists (D6+/BCB6+/FPC) XPLATFORM_RTL The RTL supports crossplatform function names (e.g. RaiseLastOSError) (D6+/BCB6+/FPC) @@ -907,6 +908,7 @@ {$IFDEF LINUX} {$DEFINE HAS_UNIT_LIBC} {$ENDIF LINUX} + {$DEFINE HAS_UNIT_CONTNRS} {$DEFINE HAS_UNIT_TYPES} {$DEFINE HAS_UNIT_VARIANTS} {$DEFINE HAS_UNIT_STRUTILS} @@ -1029,6 +1031,10 @@ {$DEFINE XPLATFORM_RTL} {$ENDIF RTL140_UP} +{$IFDEF RTL130_UP} + {$DEFINE HAS_UNIT_CONTNRS} +{$ENDIF RTL130_UP} + {------------------------------------------------------------------------------} { Cross-platform related defines } {------------------------------------------------------------------------------} Modified: trunk/jcl/source/windows/JclDotNet.pas =================================================================== --- trunk/jcl/source/windows/JclDotNet.pas 2008-02-03 20:48:55 UTC (rev 2342) +++ trunk/jcl/source/windows/JclDotNet.pas 2008-02-03 20:54:20 UTC (rev 2343) @@ -58,9 +58,9 @@ Windows, ActiveX, {$ENDIF MSWINDOWS} Classes, SysUtils, - {$IFDEF RTL130_UP} + {$IFDEF HAS_UNIT_CONTNRS} Contnrs, - {$ENDIF RTL130_UP} + {$ENDIF HAS_UNIT_CONTNRS} JclBase, JclWideStrings, mscoree_TLB, mscorlib_TLB; Modified: trunk/jcl/source/windows/JclRegistry.pas =================================================================== --- trunk/jcl/source/windows/JclRegistry.pas 2008-02-03 20:48:55 UTC (rev 2342) +++ trunk/jcl/source/windows/JclRegistry.pas 2008-02-03 20:54:20 UTC (rev 2343) @@ -284,7 +284,7 @@ uses SysUtils, {$IFDEF FPC} - JwaAccCtrl, +// JwaAccCtrl, {$ELSE} AccCtrl, {$ENDIF FPC} Modified: trunk/jcl/source/windows/JclWin32.pas =================================================================== --- trunk/jcl/source/windows/JclWin32.pas 2008-02-03 20:48:55 UTC (rev 2342) +++ trunk/jcl/source/windows/JclWin32.pas 2008-02-03 20:54:20 UTC (rev 2343) @@ -119,84 +119,8 @@ PByte = IntPtr; {$ENDIF CLR} -{$IFDEF FPC} -// include file for FPC compatibility -// JclWin32 include file for FPC compatibility -// from unit Windows -const - - // from WinReg.h - HKEY_CLASSES_ROOT = DWORD($80000000); - HKEY_CURRENT_USER = DWORD($80000001); - HKEY_LOCAL_MACHINE = DWORD($80000002); - HKEY_USERS = DWORD($80000003); - HKEY_PERFORMANCE_DATA = DWORD($80000004); - HKEY_CURRENT_CONFIG = DWORD($80000005); - HKEY_DYN_DATA = DWORD($80000006); - - // from WinVer.h - VOS__BASE = 0; - VOS__WINDOWS16 = 1; - VOS__PM16 = 2; - VOS__PM32 = 3; - VOS__WINDOWS32 = 4; - -{ VS_VERSION.dwFileSubtype for VFT_WINDOWS_DRV } - - VFT2_UNKNOWN = 0; - VFT2_DRV_PRINTER = 1; - VFT2_DRV_KEYBOARD = 2; - VFT2_DRV_LANGUAGE = 3; - VFT2_DRV_DISPLAY = 4; - VFT2_DRV_MOUSE = 5; - VFT2_DRV_NETWORK = 6; - VFT2_DRV_SYSTEM = 7; - VFT2_DRV_INSTALLABLE = 8; - VFT2_DRV_SOUND = 9; - VFT2_DRV_COMM = 10; - type - // from WinBase.h - _GET_FILEEX_INFO_LEVELS = (GetFileExInfoStandard, GetFileExMaxInfoLevel); - TGetFileExInfoLevels = _GET_FILEEX_INFO_LEVELS; - GET_FILEEX_INFO_LEVELS = _GET_FILEEX_INFO_LEVELS; - -type - PKeyboardState = ^TKeyboardState; - TKeyboardState = array [0..255] of Byte; - -// from unit AccCtrl -type - SE_OBJECT_TYPE = ( - SE_UNKNOWN_OBJECT_TYPE, - SE_FILE_OBJECT, - SE_SERVICE, - SE_PRINTER, - SE_REGISTRY_KEY, - SE_LMSHARE, - SE_KERNEL_OBJECT, - SE_WINDOW_OBJECT, - SE_DS_OBJECT, - SE_DS_OBJECT_ALL, - SE_PROVIDER_DEFINED_OBJECT, - SE_WMIGUID_OBJECT - ); - -// from ActiveX -const - // from OleIdl.h, OleIdl.Idl - DROPEFFECT_NONE = 0; - DROPEFFECT_COPY = 1; - DROPEFFECT_MOVE = 2; - DROPEFFECT_LINK = 4; - DROPEFFECT_SCROLL = DWORD($80000000); - - -{$ENDIF FPC} - -type - // // Unsigned Basics // @@ -1340,23 +1264,7 @@ // Directory format. // -{$IFDEF FPC} -type - PIMAGE_DATA_DIRECTORY = ^IMAGE_DATA_DIRECTORY; - {$EXTERNALSYM PIMAGE_DATA_DIRECTORY} - _IMAGE_DATA_DIRECTORY = record - VirtualAddress: DWORD; - Size: DWORD; - end; - {$EXTERNALSYM _IMAGE_DATA_DIRECTORY} - IMAGE_DATA_DIRECTORY = _IMAGE_DATA_DIRECTORY; - {$EXTERNALSYM IMAGE_DATA_DIRECTORY} - TImageDataDirectory = IMAGE_DATA_DIRECTORY; - PImageDataDirectory = PIMAGE_DATA_DIRECTORY; - -{$ENDIF FPC} - const IMAGE_NUMBEROF_DIRECTORY_ENTRIES = 16; {$EXTERNALSYM IMAGE_NUMBEROF_DIRECTORY_ENTRIES} @@ -1369,51 +1277,7 @@ PIMAGE_OPTIONAL_HEADER32 = ^IMAGE_OPTIONAL_HEADER32; {$EXTERNALSYM PIMAGE_OPTIONAL_HEADER32} -{$IFDEF FPC} - _IMAGE_OPTIONAL_HEADER = record - // - // Standard fields. - // - Magic: Word; - MajorLinkerVersion: Byte; - MinorLinkerVersion: Byte; - SizeOfCode: DWORD; - SizeOfInitializedData: DWORD; - SizeOfUninitializedData: DWORD; - AddressOfEntryPoint: DWORD; - BaseOfCode: DWORD; - BaseOfData: DWORD; - // - // NT additional fields. - // - ImageBase: DWORD; - SectionAlignment: DWORD; - FileAlignment: DWORD; - MajorOperatingSystemVersion: Word; - MinorOperatingSystemVersion: Word; - MajorImageVersion: Word; - MinorImageVersion: Word; - MajorSubsystemVersion: Word; - MinorSubsystemVersion: Word; - Win32VersionValue: DWORD; - SizeOfImage: DWORD; - SizeOfHeaders: DWORD; - CheckSum: DWORD; - Subsystem: Word; - DllCharacteristics: Word; - SizeOfStackReserve: DWORD; - SizeOfStackCommit: DWORD; - SizeOfHeapReserve: DWORD; - SizeOfHeapCommit: DWORD; - LoaderFlags: DWORD; - NumberOfRvaAndSizes: DWORD; - DataDirectory: array [0..IMAGE_NUMBEROF_DIRECTORY_ENTRIES - 1] of IMAGE_DATA_DIRECTORY; - end; - {$EXTERNALSYM _IMAGE_OPTIONAL_HEADER} - -{$ENDIF FPC} - IMAGE_OPTIONAL_HEADER32 = _IMAGE_OPTIONAL_HEADER; {$EXTERNALSYM IMAGE_OPTIONAL_HEADER32} TImageOptionalHeader32 = IMAGE_OPTIONAL_HEADER32; @@ -1540,29 +1404,7 @@ TImageNtHeaders32 = IMAGE_NT_HEADERS32; PImageNtHeaders32 = PIMAGE_NT_HEADERS32; -{$IFDEF FPC} - PIMAGE_ROM_HEADERS = ^IMAGE_ROM_HEADERS; - {$EXTERNALSYM PIMAGE_ROM_HEADERS} - _IMAGE_ROM_HEADERS = record - FileHeader: IMAGE_FILE_HEADER; - OptionalHeader: IMAGE_ROM_OPTIONAL_HEADER; - end; - {$EXTERNALSYM _IMAGE_ROM_HEADERS} - IMAGE_ROM_HEADERS = _IMAGE_ROM_HEADERS; - {$EXTERNALSYM IMAGE_ROM_HEADERS} - TImageRomHeaders = IMAGE_ROM_HEADERS; - PImageRomHeaders = PIMAGE_ROM_HEADERS; - - IMAGE_NT_HEADERS = IMAGE_NT_HEADERS32; - {$EXTERNALSYM IMAGE_NT_HEADERS} - PIMAGE_NT_HEADERS = PIMAGE_NT_HEADERS32; - {$EXTERNALSYM PIMAGE_NT_HEADERS} - - PImageNtHeaders = PIMAGE_NT_HEADERS; - -{$ENDIF FPC} - // Subsystem Values const @@ -1679,36 +1521,7 @@ {$EXTERNALSYM IMAGE_SIZEOF_SHORT_NAME} type -{$IFDEF FPC} - TImgSecHdrMisc = record - case Integer of - 0: (PhysicalAddress: DWORD); - 1: (VirtualSize: DWORD); - end; - - PIMAGE_SECTION_HEADER = ^IMAGE_SECTION_HEADER; - {$EXTERNALSYM PIMAGE_SECTION_HEADER} - _IMAGE_SECTION_HEADER = record - Name: array [0..IMAGE_SIZEOF_SHORT_NAME - 1] of BYTE; - Misc: TImgSecHdrMisc; - VirtualAddress: DWORD; - SizeOfRawData: DWORD; - PointerToRawData: DWORD; - PointerToRelocations: DWORD; - PointerToLinenumbers: DWORD; - NumberOfRelocations: WORD; - NumberOfLinenumbers: WORD; - Characteristics: DWORD; - end; - {$EXTERNALSYM _IMAGE_SECTION_HEADER} - IMAGE_SECTION_HEADER = _IMAGE_SECTION_HEADER; - {$EXTERNALSYM IMAGE_SECTION_HEADER} - TImageSectionHeader = IMAGE_SECTION_HEADER; - PImageSectionHeader = PIMAGE_SECTION_HEADER; - -{$ENDIF FPC} - PPImageSectionHeader = ^PImageSectionHeader; // IMAGE_FIRST_SECTION doesn't need 32/64 versions since the file header is the same either way. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2008-02-03 20:49:03
|
Revision: 2342 http://jcl.svn.sourceforge.net/jcl/?rev=2342&view=rev Author: outchy Date: 2008-02-03 12:48:55 -0800 (Sun, 03 Feb 2008) Log Message: ----------- fixed issue when directories are added from relative paths. Modified Paths: -------------- trunk/jcl/source/common/JclCompression.pas Modified: trunk/jcl/source/common/JclCompression.pas =================================================================== --- trunk/jcl/source/common/JclCompression.pas 2008-02-03 19:19:17 UTC (rev 2341) +++ trunk/jcl/source/common/JclCompression.pas 2008-02-03 20:48:55 UTC (rev 2342) @@ -39,7 +39,7 @@ { } {**************************************************************************************************} { } -{ Last modified: $Date:: $ } +{ Last modified: $Date:: $ } { Revision: $Rev:: $ } { Author: $Author:: $ } { } @@ -3610,7 +3610,7 @@ function TJclCompressionArchive.TranslateItemPath(const ItemPath, OldBase, NewBase: WideString): WideString; begin - Result := PathGetRelativePath(NewBase, PathGetRelativePath(OldBase, ItemPath)); + Result := PathCanonicalize(PathAddSeparator(NewBase) + PathGetRelativePath(OldBase, ItemPath)); end; procedure TJclCompressionArchive.UnselectAll; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2008-02-03 19:19:23
|
Revision: 2341 http://jcl.svn.sourceforge.net/jcl/?rev=2341&view=rev Author: outchy Date: 2008-02-03 11:19:17 -0800 (Sun, 03 Feb 2008) Log Message: ----------- changing bas address for repository expert to avoid its relocation. Modified Paths: -------------- trunk/jcl/packages/c5/JclRepositoryExpertC50.bpk trunk/jcl/packages/c5/JclRepositoryExpertC50.dpk trunk/jcl/packages/c5/JclRepositoryExpertDLLC50.bpr trunk/jcl/packages/c6/JclRepositoryExpert.bpk trunk/jcl/packages/c6/JclRepositoryExpert.dpk trunk/jcl/packages/c6/JclRepositoryExpertDLL.bpr 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/d11/JclRepositoryExpert.dpk trunk/jcl/packages/d11/JclRepositoryExpertDLL.dpr trunk/jcl/packages/d5/JclRepositoryExpertD50.dpk trunk/jcl/packages/d5/JclRepositoryExpertDLLD50.dpr trunk/jcl/packages/d6/JclRepositoryExpert.dpk trunk/jcl/packages/d6/JclRepositoryExpertDLL.dpr trunk/jcl/packages/d7/JclRepositoryExpert.dpk trunk/jcl/packages/d7/JclRepositoryExpertDLL.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/xml/JclRepositoryExpert-D.xml trunk/jcl/packages/xml/JclRepositoryExpertDLL-L.xml Modified: trunk/jcl/packages/c5/JclRepositoryExpertC50.bpk =================================================================== --- trunk/jcl/packages/c5/JclRepositoryExpertC50.bpk 2008-02-03 19:03:05 UTC (rev 2340) +++ trunk/jcl/packages/c5/JclRepositoryExpertC50.bpk 2008-02-03 19:19:17 UTC (rev 2341) @@ -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: 26-01-2008 11:13:07 UTC + Last generated: 03-02-2008 19:09:12 UTC ***************************************************************************** --> <PROJECT> @@ -74,7 +74,7 @@ <RFLAGS value=""/> <AFLAGS value="/mx /w2 /zd"/> <LFLAGS value="-I..\..\lib\c5 -D"JCL Package containing repository wizards for C++Builder 5" - -b:0x58000000 -aa -Tpp -Gpd -x -Gn -Gl -Gi -v"/> + -b:0x58100000 -aa -Tpp -Gpd -x -Gn -Gl -Gi -v"/> <OTHERFILES value=""/> </OPTIONS> <LINKER> Modified: trunk/jcl/packages/c5/JclRepositoryExpertC50.dpk =================================================================== --- trunk/jcl/packages/c5/JclRepositoryExpertC50.dpk 2008-02-03 19:03:05 UTC (rev 2340) +++ trunk/jcl/packages/c5/JclRepositoryExpertC50.dpk 2008-02-03 19:19:17 UTC (rev 2341) @@ -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: 26-01-2008 11:13:08 UTC + Last generated: 03-02-2008 19:09:13 UTC ----------------------------------------------------------------------------- } @@ -29,7 +29,7 @@ {$VARSTRINGCHECKS ON} {$WRITEABLECONST OFF} {$MINENUMSIZE 1} -{$IMAGEBASE $58000000} +{$IMAGEBASE $58100000} {$DESCRIPTION 'JCL Package containing repository wizards'} {$DESIGNONLY} {$IMPLICITBUILD OFF} Modified: trunk/jcl/packages/c5/JclRepositoryExpertDLLC50.bpr =================================================================== --- trunk/jcl/packages/c5/JclRepositoryExpertDLLC50.bpr 2008-02-03 19:03:05 UTC (rev 2340) +++ trunk/jcl/packages/c5/JclRepositoryExpertDLLC50.bpr 2008-02-03 19:19:17 UTC (rev 2341) @@ -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: 26-01-2008 11:13:07 UTC + Last generated: 03-02-2008 19:09:12 UTC ***************************************************************************** --> <PROJECT> @@ -73,7 +73,7 @@ <RFLAGS value=""/> <AFLAGS value="/mx /w2 /zd"/> <LFLAGS value="-I..\..\lib\c5 -D"JCL Package containing repository wizards for C++Builder 5" - -b:0x58000000 -Tpd -aa -Gi -x -Gn -v"/> + -b:0x58100000 -Tpd -aa -Gi -x -Gn -v"/> <OTHERFILES value=""/> </OPTIONS> <LINKER> Modified: trunk/jcl/packages/c6/JclRepositoryExpert.bpk =================================================================== --- trunk/jcl/packages/c6/JclRepositoryExpert.bpk 2008-02-03 19:03:05 UTC (rev 2340) +++ trunk/jcl/packages/c6/JclRepositoryExpert.bpk 2008-02-03 19:19:17 UTC (rev 2341) @@ -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: 26-01-2008 11:13:09 UTC + Last generated: 03-02-2008 19:09:13 UTC ***************************************************************************** --> <PROJECT> @@ -72,7 +72,7 @@ <RFLAGS value=""/> <AFLAGS value="/mx /w2 /zd"/> <LFLAGS value="-I..\..\lib\c6 -GB"JclRepositoryExpert" -D"JCL Package containing repository wizards for C++Builder 6" - -b:0x58000000 -aa -Tpp -Gpd -x -Gn -Gl -Gi -v"/> + -b:0x58100000 -aa -Tpp -Gpd -x -Gn -Gl -Gi -v"/> <OTHERFILES value=""/> </OPTIONS> <LINKER> Modified: trunk/jcl/packages/c6/JclRepositoryExpert.dpk =================================================================== --- trunk/jcl/packages/c6/JclRepositoryExpert.dpk 2008-02-03 19:03:05 UTC (rev 2340) +++ trunk/jcl/packages/c6/JclRepositoryExpert.dpk 2008-02-03 19:19:17 UTC (rev 2341) @@ -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: 26-01-2008 11:13:10 UTC + Last generated: 03-02-2008 19:09:14 UTC ----------------------------------------------------------------------------- } @@ -29,7 +29,7 @@ {$VARSTRINGCHECKS ON} {$WRITEABLECONST OFF} {$MINENUMSIZE 1} -{$IMAGEBASE $58000000} +{$IMAGEBASE $58100000} {$DESCRIPTION 'JCL Package containing repository wizards'} {$LIBSUFFIX 'C60'} {$DESIGNONLY} Modified: trunk/jcl/packages/c6/JclRepositoryExpertDLL.bpr =================================================================== --- trunk/jcl/packages/c6/JclRepositoryExpertDLL.bpr 2008-02-03 19:03:05 UTC (rev 2340) +++ trunk/jcl/packages/c6/JclRepositoryExpertDLL.bpr 2008-02-03 19:19:17 UTC (rev 2341) @@ -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: 26-01-2008 11:13:09 UTC + Last generated: 03-02-2008 19:09:13 UTC ***************************************************************************** --> <PROJECT> @@ -71,7 +71,7 @@ <RFLAGS value=""/> <AFLAGS value="/mx /w2 /zd"/> <LFLAGS value="-I..\..\lib\c6 -GB"JclRepositoryExpertDLL" -D"JCL Package containing repository wizards for C++ Builder 6" - -b:0x58000000 -aa -Tpd -x -Gn -Gi -v"/> + -b:0x58100000 -aa -Tpd -x -Gn -Gi -v"/> <OTHERFILES value=""/> </OPTIONS> <LINKER> Modified: trunk/jcl/packages/d10/JclRepositoryExpert.bdsproj =================================================================== --- trunk/jcl/packages/d10/JclRepositoryExpert.bdsproj 2008-02-03 19:03:05 UTC (rev 2340) +++ trunk/jcl/packages/d10/JclRepositoryExpert.bdsproj 2008-02-03 19:19:17 UTC (rev 2341) @@ -114,7 +114,7 @@ <Linker Name="GenerateDRC">False</Linker> <Linker Name="MinStackSize">16384</Linker> <Linker Name="MaxStackSize">1048576</Linker> - <Linker Name="ImageBase">$58000000</Linker> + <Linker Name="ImageBase">$58100000</Linker> <Linker Name="ExeDescription">JCL Package containing repository wizards</Linker> <Linker Name="GenerateHpps">True</Linker> </Linker> Modified: trunk/jcl/packages/d10/JclRepositoryExpert.dpk =================================================================== --- trunk/jcl/packages/d10/JclRepositoryExpert.dpk 2008-02-03 19:03:05 UTC (rev 2340) +++ trunk/jcl/packages/d10/JclRepositoryExpert.dpk 2008-02-03 19:19:17 UTC (rev 2341) @@ -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: 26-01-2008 11:13:15 UTC + Last generated: 03-02-2008 19:09:19 UTC ----------------------------------------------------------------------------- } @@ -29,7 +29,7 @@ {$VARSTRINGCHECKS ON} {$WRITEABLECONST ON} {$MINENUMSIZE 1} -{$IMAGEBASE $58000000} +{$IMAGEBASE $58100000} {$DESCRIPTION 'JCL Package containing repository wizards'} {$LIBSUFFIX '100'} {$DESIGNONLY} Modified: trunk/jcl/packages/d10/JclRepositoryExpertDLL.bdsproj =================================================================== --- trunk/jcl/packages/d10/JclRepositoryExpertDLL.bdsproj 2008-02-03 19:03:05 UTC (rev 2340) +++ trunk/jcl/packages/d10/JclRepositoryExpertDLL.bdsproj 2008-02-03 19:19:17 UTC (rev 2341) @@ -114,7 +114,7 @@ <Linker Name="GenerateDRC">False</Linker> <Linker Name="MinStackSize">16384</Linker> <Linker Name="MaxStackSize">1048576</Linker> - <Linker Name="ImageBase">$58000000</Linker> + <Linker Name="ImageBase">$58100000</Linker> <Linker Name="ExeDescription">JCL Package containing repository wizards</Linker> <Linker Name="GenerateHpps">False</Linker> </Linker> Modified: trunk/jcl/packages/d10/JclRepositoryExpertDLL.dpr =================================================================== --- trunk/jcl/packages/d10/JclRepositoryExpertDLL.dpr 2008-02-03 19:03:05 UTC (rev 2340) +++ trunk/jcl/packages/d10/JclRepositoryExpertDLL.dpr 2008-02-03 19:19:17 UTC (rev 2341) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpertDLL-L.xml) - Last generated: 26-01-2008 11:13:15 UTC + Last generated: 03-02-2008 19:09:19 UTC ----------------------------------------------------------------------------- } @@ -29,7 +29,7 @@ {$VARSTRINGCHECKS ON} {$WRITEABLECONST ON} {$MINENUMSIZE 1} -{$IMAGEBASE $58000000} +{$IMAGEBASE $58100000} {$DESCRIPTION 'JCL Package containing repository wizards'} {$LIBSUFFIX '100'} {$IMPLICITBUILD OFF} Modified: trunk/jcl/packages/d11/JclRepositoryExpert.dpk =================================================================== --- trunk/jcl/packages/d11/JclRepositoryExpert.dpk 2008-02-03 19:03:05 UTC (rev 2340) +++ trunk/jcl/packages/d11/JclRepositoryExpert.dpk 2008-02-03 19:19:17 UTC (rev 2341) @@ -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: 26-01-2008 11:13:17 UTC + Last generated: 03-02-2008 19:09:20 UTC ----------------------------------------------------------------------------- } @@ -29,7 +29,7 @@ {$VARSTRINGCHECKS ON} {$WRITEABLECONST ON} {$MINENUMSIZE 1} -{$IMAGEBASE $58000000} +{$IMAGEBASE $58100000} {$DESCRIPTION 'JCL Package containing repository wizards'} {$LIBSUFFIX '110'} {$DESIGNONLY} Modified: trunk/jcl/packages/d11/JclRepositoryExpertDLL.dpr =================================================================== --- trunk/jcl/packages/d11/JclRepositoryExpertDLL.dpr 2008-02-03 19:03:05 UTC (rev 2340) +++ trunk/jcl/packages/d11/JclRepositoryExpertDLL.dpr 2008-02-03 19:19:17 UTC (rev 2341) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpertDLL-L.xml) - Last generated: 26-01-2008 11:13:17 UTC + Last generated: 03-02-2008 19:09:20 UTC ----------------------------------------------------------------------------- } @@ -29,7 +29,7 @@ {$VARSTRINGCHECKS ON} {$WRITEABLECONST ON} {$MINENUMSIZE 1} -{$IMAGEBASE $58000000} +{$IMAGEBASE $58100000} {$DESCRIPTION 'JCL Package containing repository wizards'} {$LIBSUFFIX '100'} {$IMPLICITBUILD OFF} Modified: trunk/jcl/packages/d5/JclRepositoryExpertD50.dpk =================================================================== --- trunk/jcl/packages/d5/JclRepositoryExpertD50.dpk 2008-02-03 19:03:05 UTC (rev 2340) +++ trunk/jcl/packages/d5/JclRepositoryExpertD50.dpk 2008-02-03 19:19:17 UTC (rev 2341) @@ -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: 26-01-2008 11:13:11 UTC + Last generated: 03-02-2008 19:09:15 UTC ----------------------------------------------------------------------------- } @@ -29,7 +29,7 @@ {$VARSTRINGCHECKS ON} {$WRITEABLECONST OFF} {$MINENUMSIZE 1} -{$IMAGEBASE $58000000} +{$IMAGEBASE $58100000} {$DESCRIPTION 'JCL Package containing repository wizards'} {$DESIGNONLY} {$IMPLICITBUILD OFF} Modified: trunk/jcl/packages/d5/JclRepositoryExpertDLLD50.dpr =================================================================== --- trunk/jcl/packages/d5/JclRepositoryExpertDLLD50.dpr 2008-02-03 19:03:05 UTC (rev 2340) +++ trunk/jcl/packages/d5/JclRepositoryExpertDLLD50.dpr 2008-02-03 19:19:17 UTC (rev 2341) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpertDLL-L.xml) - Last generated: 26-01-2008 11:13:11 UTC + Last generated: 03-02-2008 19:09:15 UTC ----------------------------------------------------------------------------- } @@ -29,7 +29,7 @@ {$VARSTRINGCHECKS ON} {$WRITEABLECONST OFF} {$MINENUMSIZE 1} -{$IMAGEBASE $58000000} +{$IMAGEBASE $58100000} {$DESCRIPTION 'JCL Package containing repository wizards'} {$IMPLICITBUILD OFF} Modified: trunk/jcl/packages/d6/JclRepositoryExpert.dpk =================================================================== --- trunk/jcl/packages/d6/JclRepositoryExpert.dpk 2008-02-03 19:03:05 UTC (rev 2340) +++ trunk/jcl/packages/d6/JclRepositoryExpert.dpk 2008-02-03 19:19:17 UTC (rev 2341) @@ -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: 26-01-2008 11:13:11 UTC + Last generated: 03-02-2008 19:09:16 UTC ----------------------------------------------------------------------------- } @@ -29,7 +29,7 @@ {$VARSTRINGCHECKS ON} {$WRITEABLECONST OFF} {$MINENUMSIZE 1} -{$IMAGEBASE $58000000} +{$IMAGEBASE $58100000} {$DESCRIPTION 'JCL Package containing repository wizards'} {$LIBSUFFIX 'D60'} {$DESIGNONLY} Modified: trunk/jcl/packages/d6/JclRepositoryExpertDLL.dpr =================================================================== --- trunk/jcl/packages/d6/JclRepositoryExpertDLL.dpr 2008-02-03 19:03:05 UTC (rev 2340) +++ trunk/jcl/packages/d6/JclRepositoryExpertDLL.dpr 2008-02-03 19:19:17 UTC (rev 2341) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpertDLL-L.xml) - Last generated: 26-01-2008 11:13:12 UTC + Last generated: 03-02-2008 19:09:16 UTC ----------------------------------------------------------------------------- } @@ -29,7 +29,7 @@ {$VARSTRINGCHECKS ON} {$WRITEABLECONST OFF} {$MINENUMSIZE 1} -{$IMAGEBASE $58000000} +{$IMAGEBASE $58100000} {$DESCRIPTION 'JCL Package containing repository wizards'} {$LIBSUFFIX 'D60'} {$IMPLICITBUILD OFF} Modified: trunk/jcl/packages/d7/JclRepositoryExpert.dpk =================================================================== --- trunk/jcl/packages/d7/JclRepositoryExpert.dpk 2008-02-03 19:03:05 UTC (rev 2340) +++ trunk/jcl/packages/d7/JclRepositoryExpert.dpk 2008-02-03 19:19:17 UTC (rev 2341) @@ -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: 26-01-2008 11:13:12 UTC + Last generated: 03-02-2008 19:09:16 UTC ----------------------------------------------------------------------------- } @@ -29,7 +29,7 @@ {$VARSTRINGCHECKS ON} {$WRITEABLECONST OFF} {$MINENUMSIZE 1} -{$IMAGEBASE $58000000} +{$IMAGEBASE $58100000} {$DESCRIPTION 'JCL Package containing repository wizards'} {$LIBSUFFIX '70'} {$DESIGNONLY} Modified: trunk/jcl/packages/d7/JclRepositoryExpertDLL.dpr =================================================================== --- trunk/jcl/packages/d7/JclRepositoryExpertDLL.dpr 2008-02-03 19:03:05 UTC (rev 2340) +++ trunk/jcl/packages/d7/JclRepositoryExpertDLL.dpr 2008-02-03 19:19:17 UTC (rev 2341) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpertDLL-L.xml) - Last generated: 26-01-2008 11:13:12 UTC + Last generated: 03-02-2008 19:09:17 UTC ----------------------------------------------------------------------------- } @@ -29,7 +29,7 @@ {$VARSTRINGCHECKS ON} {$WRITEABLECONST OFF} {$MINENUMSIZE 1} -{$IMAGEBASE $58000000} +{$IMAGEBASE $58100000} {$DESCRIPTION 'JCL Package containing repository wizards'} {$LIBSUFFIX '70'} {$IMPLICITBUILD OFF} Modified: trunk/jcl/packages/d9/JclRepositoryExpert.bdsproj =================================================================== --- trunk/jcl/packages/d9/JclRepositoryExpert.bdsproj 2008-02-03 19:03:05 UTC (rev 2340) +++ trunk/jcl/packages/d9/JclRepositoryExpert.bdsproj 2008-02-03 19:19:17 UTC (rev 2341) @@ -113,7 +113,7 @@ <Linker Name="GenerateDRC">False</Linker> <Linker Name="MinStackSize">16384</Linker> <Linker Name="MaxStackSize">1048576</Linker> - <Linker Name="ImageBase">$58000000</Linker> + <Linker Name="ImageBase">$58100000</Linker> <Linker Name="ExeDescription">JCL Package containing repository wizards</Linker> </Linker> <Directories> Modified: trunk/jcl/packages/d9/JclRepositoryExpert.dpk =================================================================== --- trunk/jcl/packages/d9/JclRepositoryExpert.dpk 2008-02-03 19:03:05 UTC (rev 2340) +++ trunk/jcl/packages/d9/JclRepositoryExpert.dpk 2008-02-03 19:19:17 UTC (rev 2341) @@ -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: 26-01-2008 11:13:14 UTC + Last generated: 03-02-2008 19:09:18 UTC ----------------------------------------------------------------------------- } @@ -29,7 +29,7 @@ {$VARSTRINGCHECKS ON} {$WRITEABLECONST OFF} {$MINENUMSIZE 1} -{$IMAGEBASE $58000000} +{$IMAGEBASE $58100000} {$DESCRIPTION 'JCL Package containing repository wizards'} {$LIBSUFFIX '90'} {$DESIGNONLY} Modified: trunk/jcl/packages/d9/JclRepositoryExpertDLL.bdsproj =================================================================== --- trunk/jcl/packages/d9/JclRepositoryExpertDLL.bdsproj 2008-02-03 19:03:05 UTC (rev 2340) +++ trunk/jcl/packages/d9/JclRepositoryExpertDLL.bdsproj 2008-02-03 19:19:17 UTC (rev 2341) @@ -113,7 +113,7 @@ <Linker Name="GenerateDRC">False</Linker> <Linker Name="MinStackSize">16384</Linker> <Linker Name="MaxStackSize">1048576</Linker> - <Linker Name="ImageBase">$58000000</Linker> + <Linker Name="ImageBase">$58100000</Linker> <Linker Name="ExeDescription">JCL Package containing repository wizards</Linker> </Linker> <Directories> Modified: trunk/jcl/packages/d9/JclRepositoryExpertDLL.dpr =================================================================== --- trunk/jcl/packages/d9/JclRepositoryExpertDLL.dpr 2008-02-03 19:03:05 UTC (rev 2340) +++ trunk/jcl/packages/d9/JclRepositoryExpertDLL.dpr 2008-02-03 19:19:17 UTC (rev 2341) @@ -4,7 +4,7 @@ DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR ALWAYS EDIT THE RELATED XML FILE (JclRepositoryExpertDLL-L.xml) - Last generated: 26-01-2008 11:13:14 UTC + Last generated: 03-02-2008 19:09:18 UTC ----------------------------------------------------------------------------- } @@ -29,7 +29,7 @@ {$VARSTRINGCHECKS ON} {$WRITEABLECONST OFF} {$MINENUMSIZE 1} -{$IMAGEBASE $58000000} +{$IMAGEBASE $58100000} {$DESCRIPTION 'JCL Package containing repository wizards'} {$LIBSUFFIX '90'} {$IMPLICITBUILD OFF} Modified: trunk/jcl/packages/xml/JclRepositoryExpert-D.xml =================================================================== --- trunk/jcl/packages/xml/JclRepositoryExpert-D.xml 2008-02-03 19:03:05 UTC (rev 2340) +++ trunk/jcl/packages/xml/JclRepositoryExpert-D.xml 2008-02-03 19:19:17 UTC (rev 2341) @@ -6,7 +6,7 @@ <C6PFlags>-LUdesignide</C6PFlags> <C5Libs/> <C6Libs/> - <ImageBase>58000000</ImageBase> + <ImageBase>58100000</ImageBase> <Requires> <Package Name="rtl" Targets="WinLibSuffix" Condition=""/> <Package Name="vcl50" Targets="c5,d5" Condition=""/> Modified: trunk/jcl/packages/xml/JclRepositoryExpertDLL-L.xml =================================================================== --- trunk/jcl/packages/xml/JclRepositoryExpertDLL-L.xml 2008-02-03 19:03:05 UTC (rev 2340) +++ trunk/jcl/packages/xml/JclRepositoryExpertDLL-L.xml 2008-02-03 19:19:17 UTC (rev 2341) @@ -6,7 +6,7 @@ <C6PFlags>-LUdesignide</C6PFlags> <C5Libs/> <C6Libs/> - <ImageBase>58000000</ImageBase> + <ImageBase>58100000</ImageBase> <Requires> <Package Name="rtl" Targets="WinLibSuffix" Condition=""/> <Package Name="vcl50" Targets="c5,d5" Condition=""/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2008-02-03 19:03:07
|
Revision: 2340 http://jcl.svn.sourceforge.net/jcl/?rev=2340&view=rev Author: outchy Date: 2008-02-03 11:03:05 -0800 (Sun, 03 Feb 2008) Log Message: ----------- Ensure 7z.dll is loaded (when dynamically linked) before calling Sevenzip.CreateObject, otherwise a null access violation will happen. Modified Paths: -------------- trunk/jcl/source/common/JclCompression.pas trunk/jcl/source/common/JclResources.pas Modified: trunk/jcl/source/common/JclCompression.pas =================================================================== --- trunk/jcl/source/common/JclCompression.pas 2008-02-03 19:00:42 UTC (rev 2339) +++ trunk/jcl/source/common/JclCompression.pas 2008-02-03 19:03:05 UTC (rev 2340) @@ -4504,6 +4504,8 @@ begin SevenzipCLSID := GetCLSID; InterfaceID := Sevenzip.IOutArchive; + if (not Is7ZipLoaded) and (not Load7Zip) then + raise EJclCompressionError.CreateRes(@RsCompression7zLoadError); if (Sevenzip.CreateObject(@SevenzipCLSID, @InterfaceID, FOutArchive) <> ERROR_SUCCESS) or not Assigned(FOutArchive) then raise EJclCompressionError.CreateResFmt(@RsCompression7zOutArchiveError, [GUIDToString(SevenzipCLSID)]); @@ -4911,6 +4913,8 @@ begin SevenzipCLSID := GetCLSID; InterfaceID := Sevenzip.IInArchive; + if (not Is7ZipLoaded) and (not Load7Zip) then + raise EJclCompressionError.CreateRes(@RsCompression7zLoadError); if (Sevenzip.CreateObject(@SevenzipCLSID, @InterfaceID, FInArchive) <> ERROR_SUCCESS) or not Assigned(FInArchive) then raise EJclCompressionError.CreateResFmt(@RsCompression7zInArchiveError, [GUIDToString(SevenzipCLSID)]); @@ -5491,6 +5495,8 @@ begin SevenzipCLSID := GetCLSID; InterfaceID := Sevenzip.IInArchive; + if (not Is7ZipLoaded) and (not Load7Zip) then + raise EJclCompressionError.CreateRes(@RsCompression7zLoadError); if (Sevenzip.CreateObject(@SevenzipCLSID, @InterfaceID, FInArchive) <> ERROR_SUCCESS) or not Assigned(FInArchive) then raise EJclCompressionError.CreateResFmt(@RsCompression7zInArchiveError, [GUIDToString(SevenzipCLSID)]); Modified: trunk/jcl/source/common/JclResources.pas =================================================================== --- trunk/jcl/source/common/JclResources.pas 2008-02-03 19:00:42 UTC (rev 2339) +++ trunk/jcl/source/common/JclResources.pas 2008-02-03 19:03:05 UTC (rev 2340) @@ -811,6 +811,7 @@ RsCompressionDataError = 'Data error'; RsCompressionCRCError = 'CRC error'; RsCompressionUnknownError = 'Unknown error'; + RsCompression7zLoadError = 'Sevenzip: Failed to load 7z.dll'; RsCompression7zReturnError = 'Sevenzip: Error result (%.8x) "%s"'; RsCompression7zUnassignedStream = 'Sevenzip: Stream object is not assigned'; RsCompression7zOutArchiveError = 'Sevenzip: Failed to get out archive interface for class %s'; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2008-02-03 19:00:44
|
Revision: 2339 http://jcl.svn.sourceforge.net/jcl/?rev=2339&view=rev Author: outchy Date: 2008-02-03 11:00:42 -0800 (Sun, 03 Feb 2008) Log Message: ----------- style cleaning in Load7Zip function. Modified Paths: -------------- trunk/jcl/source/windows/sevenzip.pas Modified: trunk/jcl/source/windows/sevenzip.pas =================================================================== --- trunk/jcl/source/windows/sevenzip.pas 2008-02-03 18:05:06 UTC (rev 2338) +++ trunk/jcl/source/windows/sevenzip.pas 2008-02-03 19:00:42 UTC (rev 2339) @@ -549,22 +549,21 @@ end; begin Result := SevenzipLib <> INVALID_MODULEHANDLE_VALUE; - if Result then - Exit; - - if SevenzipLib = INVALID_MODULEHANDLE_VALUE then + if not Result then + begin {$IFDEF MSWINDOWS} SevenzipLib := LoadLibrary(sz7Zip); {$ENDIF MSWINDOWS} {$IFDEF UNIX} SevenzipLib := dlopen(PChar(sz7Zip), RTLD_NOW); {$ENDIF UNIX} - Result := SevenzipLib <> INVALID_MODULEHANDLE_VALUE; - if Result then - begin - @CreateObject := GetSymbol(CreateObjectExportName); - @GetNumberOfFormats := GetSymbol(GetNumberOfFormatsExportName); - @GetNumberOfMethods := GetSymbol(GetNumberOfMethodsExportName); + Result := SevenzipLib <> INVALID_MODULEHANDLE_VALUE; + if Result then + begin + @CreateObject := GetSymbol(CreateObjectExportName); + @GetNumberOfFormats := GetSymbol(GetNumberOfFormatsExportName); + @GetNumberOfMethods := GetSymbol(GetNumberOfMethodsExportName); + end; end; end; {$ELSE ~7ZIP_LINKONREQUEST} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mar...@us...> - 2008-02-03 18:05:13
|
Revision: 2338 http://jcl.svn.sourceforge.net/jcl/?rev=2338&view=rev Author: marcovtje Date: 2008-02-03 10:05:06 -0800 (Sun, 03 Feb 2008) Log Message: ----------- * JCLShell now compiles with FPC-trunk (and 2.2.2 when it is released) - removed all conditional FPC defines -> solved the problems FPC side. - Only FPC specific mod: ShellExecuteEx is overloaded in FPC so doesn't play well with {$T-}. Local on again. Modified Paths: -------------- trunk/jcl/source/windows/JclShell.pas Modified: trunk/jcl/source/windows/JclShell.pas =================================================================== --- trunk/jcl/source/windows/JclShell.pas 2008-01-31 15:33:45 UTC (rev 2337) +++ trunk/jcl/source/windows/JclShell.pas 2008-02-03 18:05:06 UTC (rev 2338) @@ -54,9 +54,7 @@ JclUnitVersioning, {$ENDIF UNITVERSIONING} Windows, SysUtils, - {$IFNDEF FPC} ShlObj, - {$ENDIF ~FPC} JclWin32, JclSysUtils; // Files and Folders @@ -214,9 +212,7 @@ uses ActiveX, - {$IFNDEF FPC} CommCtrl, - {$ENDIF ~FPC} Messages, ShellApi, JclFileUtils, JclStrings, JclSysInfo; @@ -252,21 +248,13 @@ FillChar(FileOp, SizeOf(FileOp), #0); with FileOp do begin - {$IFDEF FPC} - THandle := Parent; - {$ELSE} Wnd := Parent; - {$ENDIF FPC} wFunc := FO_DELETE; Source := Files + #0#0; pFrom := PChar(Source); fFlags := DeleteOptionsToCardinal(Options); end; - {$IFDEF FPC} - Result := SHFileOperation(@FileOp) = 0; - {$ELSE} Result := SHFileOperation(FileOp) = 0; - {$ENDIF FPC} end; function SHDeleteFolder(Parent: THandle; const Folder: string; @@ -297,11 +285,7 @@ FillChar(FileOp, SizeOf(FileOp), #0); with FileOp do begin - {$IFDEF FPC} - THandle := GetDesktopWindow; - {$ELSE} Wnd := GetDesktopWindow; - {$ENDIF FPC} wFunc := FO_RENAME; Source := Src + #0#0; Destination := Dest + #0#0; @@ -309,11 +293,7 @@ pTo := PChar(Destination); fFlags := RenameOptionsToCardinal(Options); end; - {$IFDEF FPC} - Result := SHFileOperation(@FileOp) = 0; - {$ELSE} Result := SHFileOperation(FileOp) = 0; - {$ENDIF FPC} end; function CopyOptionsToCardinal(Options: TSHCopyOptions): Cardinal; @@ -335,22 +315,14 @@ Source, Destination: string; begin FillChar(FileOp,SizeOf(FileOp),0); - {$IFDEF FPC} - FileOp.THandle := Parent; - {$ELSE} FileOp.Wnd := Parent; - {$ENDIF FPC} FileOp.wFunc := FO_COPY; Source := Src + #0#0; Destination := Dest + #0#0; FileOp.pFrom := PChar(Source); FileOp.pTo := PChar(Destination); FileOp.fFlags := CopyOptionsToCardinal(Options); - {$IFDEF FPC} - Result := SHFileOperation(@FileOp) = 0; - {$ELSE} Result := SHFileOperation(FileOp) = 0; - {$ENDIF FPC} end; function MoveOptionsToCardinal(Options: TSHMoveOptions): Cardinal; @@ -372,33 +344,25 @@ Source, Destination: string; begin FillChar(FileOp,SizeOf(FileOp),0); - {$IFDEF FPC} - FileOp.THandle := Parent; - {$ELSE} FileOp.Wnd := Parent; - {$ENDIF FPC} FileOp.wFunc := FO_MOVE; Source := Src + #0#0; Destination := Dest + #0#0; FileOp.pFrom := PChar(Source); FileOp.pTo := PChar(Destination); FileOp.fFlags := MoveOptionsToCardinal(Options); - {$IFDEF FPC} - Result := SHFileOperation(@FileOp) = 0; - {$ELSE} Result := SHFileOperation(FileOp) = 0; - {$ENDIF FPC} end; function EnumFolderFlagsToCardinal(Flags: TEnumFolderFlags): Cardinal; begin Result := 0; if efFolders in Flags then - Result := Result or SHCONTF_FOLDERS; + Result := Result or ord(SHCONTF_FOLDERS); if efNonFolders in Flags then - Result := Result or SHCONTF_NONFOLDERS; + Result := Result or ord(SHCONTF_NONFOLDERS); if efIncludeHidden in Flags then - Result := Result or SHCONTF_INCLUDEHIDDEN; + Result := Result or ord(SHCONTF_INCLUDEHIDDEN); end; procedure ClearEnumFolderRec(var F: TEnumFolderRec; const Free, Release: Boolean); @@ -538,7 +502,9 @@ Wnd := Handle; lpVerb := cVerbProperties; end; + {$T+} // need this because ShellExecuteEx is overloaded in FPC -A -W Result := ShellExecuteEx(@Info); + {$T-} end; function DisplayPropDialog(const Handle: THandle; Item: PItemIdList): Boolean; @@ -555,7 +521,9 @@ Wnd := Handle; lpVerb := cVerbProperties; end; + {$T+} Result := ShellExecuteEx(@Info); + {$T-} end; // Window procedure for the callback window created by DisplayContextMenu. @@ -690,7 +658,9 @@ lpFile := PChar(Path); nShow := SW_SHOWNORMAL; end; + {$T+} Result := ShellExecuteEx(@Sei); + {$T-} end; end; @@ -724,7 +694,9 @@ else lpFile := PChar(PidlToPath(Pidl)); end; + {$T+} Result := ShellExecuteEx(@Sei); + {$T-} Malloc.Free(Pidl); end; end; @@ -1345,7 +1317,9 @@ Sei.lpParameters := PCharOrNil(Parameters); Sei.lpVerb := PCharOrNil(Verb); Sei.nShow := CmdShow; + {$T+} Result := ShellExecuteEx(@Sei); + {$T-} end; { TODO -cHelp : author Jean-Fabien Connault note, ShellExecEx() above used to be ShellExec()... } @@ -1372,7 +1346,9 @@ Sei.lpVerb := PCharOrNil(Verb); Sei.nShow := CmdShow; Sei.lpDirectory := PCharOrNil(Directory); + {$T+} Result := ShellExecuteEx(@Sei); + {$T-} if Result then begin WaitForInputIdle(Sei.hProcess, INFINITE); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |