You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
(20) |
May
(48) |
Jun
(8) |
Jul
(23) |
Aug
(41) |
Sep
(42) |
Oct
(22) |
Nov
(17) |
Dec
(36) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(43) |
Feb
(42) |
Mar
(17) |
Apr
(39) |
May
(16) |
Jun
(35) |
Jul
(37) |
Aug
(47) |
Sep
(49) |
Oct
(9) |
Nov
(52) |
Dec
(37) |
2008 |
Jan
(48) |
Feb
(21) |
Mar
(7) |
Apr
(2) |
May
(5) |
Jun
(17) |
Jul
(17) |
Aug
(40) |
Sep
(58) |
Oct
(38) |
Nov
(19) |
Dec
(32) |
2009 |
Jan
(67) |
Feb
(46) |
Mar
(54) |
Apr
(34) |
May
(37) |
Jun
(52) |
Jul
(67) |
Aug
(72) |
Sep
(48) |
Oct
(35) |
Nov
(27) |
Dec
(12) |
2010 |
Jan
(56) |
Feb
(46) |
Mar
(19) |
Apr
(14) |
May
(21) |
Jun
(3) |
Jul
(13) |
Aug
(48) |
Sep
(34) |
Oct
(51) |
Nov
(16) |
Dec
(32) |
2011 |
Jan
(36) |
Feb
(14) |
Mar
(12) |
Apr
(3) |
May
(5) |
Jun
(24) |
Jul
(15) |
Aug
(30) |
Sep
(21) |
Oct
(4) |
Nov
(25) |
Dec
(23) |
2012 |
Jan
(45) |
Feb
(42) |
Mar
(19) |
Apr
(14) |
May
(13) |
Jun
(7) |
Jul
(3) |
Aug
(46) |
Sep
(21) |
Oct
(10) |
Nov
(2) |
Dec
|
2013 |
Jan
(5) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <ou...@us...> - 2010-11-11 14:04:07
|
Revision: 3417 http://jcl.svn.sourceforge.net/jcl/?rev=3417&view=rev Author: outchy Date: 2010-11-11 14:04:01 +0000 (Thu, 11 Nov 2010) Log Message: ----------- Thread safe archive progress. 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 2010-11-11 11:20:26 UTC (rev 3416) +++ trunk/jcl/examples/windows/compression/archive/UMain.pas 2010-11-11 14:04:01 UTC (rev 3417) @@ -86,10 +86,13 @@ private FArchiveStack: TObjectList; FArchive: TJclCompressionArchive; + FProgressValue: Byte; + FProgressMax: Byte; + procedure SyncArchiveProgress; + public procedure CloseArchive; procedure CloseAllArchive; procedure ArchiveProgress(Sender: TObject; const Value, MaxValue: Int64); - public end; var @@ -491,13 +494,15 @@ MyValue := Value; MyMaxValue := MaxValue; - while MyMaxValue > High(Word) do + while MyMaxValue > High(Byte) do begin MyMaxValue := MyMaxValue shr 8; MyValue := MyValue shr 8; end; - ProgressBar1.Max := MyMaxValue; - ProgressBar1.Position := MyValue; + + FProgressMax := MyMaxValue; + FProgressValue := MyValue; + TThread.Synchronize(nil, SyncArchiveProgress); end; procedure TFormMain.CloseAllArchive; @@ -658,6 +663,12 @@ Item.SubItems.Add(''); end; +procedure TFormMain.SyncArchiveProgress; +begin + ProgressBar1.Max := FProgressMax; + ProgressBar1.Position := FProgressValue; +end; + initialization if not Load7Zip then This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-11-11 11:20:34
|
Revision: 3416 http://jcl.svn.sourceforge.net/jcl/?rev=3416&view=rev Author: outchy Date: 2010-11-11 11:20:26 +0000 (Thu, 11 Nov 2010) Log Message: ----------- New functions to get archive signatures. New functions to enumerate all archive formats matching a specified file extension. Example update in order to open archive using all the possible matching formats. Modified Paths: -------------- trunk/jcl/examples/windows/compression/archive/UMain.pas trunk/jcl/source/common/JclCompression.pas trunk/jcl/source/common/JclSysUtils.pas trunk/jcl/source/windows/sevenzip.pas Modified: trunk/jcl/examples/windows/compression/archive/UMain.pas =================================================================== --- trunk/jcl/examples/windows/compression/archive/UMain.pas 2010-11-08 21:05:18 UTC (rev 3415) +++ trunk/jcl/examples/windows/compression/archive/UMain.pas 2010-11-11 11:20:26 UTC (rev 3416) @@ -353,8 +353,9 @@ procedure TFormMain.ActionOpenROExecute(Sender: TObject); var ArchiveFileName, Password: string; - AFormat: TJclDecompressArchiveClass; + AFormats: TJclDecompressArchiveClassArray; SplitArchive: Boolean; + Index: Integer; begin if OpenDialogArchiveRO.Execute then begin @@ -365,34 +366,43 @@ if SplitArchive then ArchiveFileName := ChangeFileExt(ArchiveFileName, ''); - AFormat := GetArchiveFormats.FindDecompressFormat(ArchiveFileName); + AFormats := GetArchiveFormats.FindDecompressFormats(ArchiveFileName); - if AFormat <> nil then + if Length(AFormats) > 0 then begin if SplitArchive then ArchiveFileName := ArchiveFileName + '.%.3d'; InputQuery('Archive password', 'Value', Password); + end; - FArchive := AFormat.Create(ArchiveFileName, 0, SplitArchive); - FArchive.Password := Password; - FArchive.OnProgress := ArchiveProgress; + for Index := Low(AFormats) to High(AFormats) do + begin + FArchive := AFormats[Index].Create(ArchiveFileName, 0, SplitArchive); + try + FArchive.Password := Password; + FArchive.OnProgress := ArchiveProgress; - if FArchive is TJclDecompressArchive then - TJclDecompressArchive(FArchive).ListFiles - else - if FArchive is TJclUpdateArchive then - TJclUpdateArchive(FArchive).ListFiles; + if FArchive is TJclDecompressArchive then + TJclDecompressArchive(FArchive).ListFiles + else + if FArchive is TJclUpdateArchive then + TJclUpdateArchive(FArchive).ListFiles; - ListView1.Items.BeginUpdate; - try - while ListView1.Items.Count < FArchive.ItemCount do - ListView1.Items.Add; - finally - ListView1.Items.EndUpdate; + ListView1.Items.BeginUpdate; + try + while ListView1.Items.Count < FArchive.ItemCount do + ListView1.Items.Add; + finally + ListView1.Items.EndUpdate; + end; + Break; + except + CloseAllArchive; end; - end - else + end; + + if not Assigned(FArchive) then ShowMessage('not a supported format'); end; end; @@ -400,8 +410,9 @@ procedure TFormMain.ActionOpenRWExecute(Sender: TObject); var ArchiveFileName, Password: string; - AFormat: TJclUpdateArchiveClass; + AFormats: TJclUpdateArchiveClassArray; SplitArchive: Boolean; + Index: Integer; begin if OpenDialogArchiveRW.Execute then begin @@ -412,34 +423,42 @@ if SplitArchive then ArchiveFileName := ChangeFileExt(ArchiveFileName, ''); - AFormat := GetArchiveFormats.FindUpdateFormat(ArchiveFileName); + AFormats := GetArchiveFormats.FindUpdateFormats(ArchiveFileName); - if AFormat <> nil then + if Length(AFormats) > 0 then begin if SplitArchive then ArchiveFileName := ArchiveFileName + '.%.3d'; InputQuery('Archive password', 'Value', Password); + end; - FArchive := AFormat.Create(ArchiveFileName, 0, SplitArchive); - FArchive.Password := Password; - FArchive.OnProgress := ArchiveProgress; + for Index := Low(AFormats) to High(AFormats) do + begin + FArchive := AFormats[Index].Create(ArchiveFileName, 0, SplitArchive); + try + FArchive.Password := Password; + FArchive.OnProgress := ArchiveProgress; - if FArchive is TJclDecompressArchive then - TJclDecompressArchive(FArchive).ListFiles - else - if FArchive is TJclUpdateArchive then - TJclUpdateArchive(FArchive).ListFiles; + if FArchive is TJclDecompressArchive then + TJclDecompressArchive(FArchive).ListFiles + else + if FArchive is TJclUpdateArchive then + TJclUpdateArchive(FArchive).ListFiles; - ListView1.Items.BeginUpdate; - try - while ListView1.Items.Count < FArchive.ItemCount do - ListView1.Items.Add; - finally - ListView1.Items.EndUpdate; + ListView1.Items.BeginUpdate; + try + while ListView1.Items.Count < FArchive.ItemCount do + ListView1.Items.Add; + finally + ListView1.Items.EndUpdate; + end; + Break; + except + CloseAllArchive; end; - end - else + end; + if not Assigned(FArchive) then ShowMessage('not a supported format'); end; end; Modified: trunk/jcl/source/common/JclCompression.pas =================================================================== --- trunk/jcl/source/common/JclCompression.pas 2010-11-08 21:05:18 UTC (rev 3415) +++ trunk/jcl/source/common/JclCompression.pas 2010-11-11 11:20:26 UTC (rev 3416) @@ -768,6 +768,7 @@ class function ArchiveExtensions: string; virtual; class function ArchiveName: string; virtual; class function ArchiveSubExtensions: string; virtual; + class function ArchiveSignature: TDynByteArray; virtual; constructor Create(Volume0: TStream; AVolumeMaxSize: Int64 = 0; AOwnVolume: Boolean = False); overload; virtual; @@ -978,6 +979,8 @@ TJclCompressArchiveClass = class of TJclCompressArchive; + TJclCompressArchiveClassArray = array of TJclCompressArchiveClass; + TJclDecompressItem = class(TJclCompressionItem) protected procedure CheckGetProperty(AProperty: TJclCompressionItemProperty); override; @@ -1021,6 +1024,8 @@ TJclDecompressArchiveClass = class of TJclDecompressArchive; + TJclDecompressArchiveClassArray = array of TJclDecompressArchiveClass; + TJclUpdateItem = class(TJclCompressionItem) protected procedure CheckGetProperty(AProperty: TJclCompressionItemProperty); override; @@ -1092,6 +1097,8 @@ TJclUpdateArchiveClass = class of TJclUpdateArchive; + TJclUpdateArchiveClassArray = array of TJclUpdateArchiveClass; + // registered archive formats type TJclCompressionArchiveFormats = class @@ -1113,10 +1120,19 @@ procedure RegisterFormat(AClass: TJclCompressionArchiveClass); procedure UnregisterFormat(AClass: TJclCompressionArchiveClass); + // archive signatures do not give significant results for ISO/UDF (signature is not located at stream start) + // need to find a generic way to match all signature before publishing the code + //function SignatureMatches(Format: TJclCompressionArchiveClass; ArchiveStream: TStream; var Buffer: TDynByteArray): Boolean; function FindCompressFormat(const AFileName: TFileName): TJclCompressArchiveClass; - function FindDecompressFormat(const AFileName: TFileName): TJclDecompressArchiveClass; - function FindUpdateFormat(const AFileName: TFileName): TJclUpdateArchiveClass; + //function FindDecompressFormat(const AFileName: TFileName; TestArchiveSignature: Boolean): TJclDecompressArchiveClass; overload; + function FindDecompressFormat(const AFileName: TFileName): TJclDecompressArchiveClass; //overload; + //function FindUpdateFormat(const AFileName: TFileName; TestArchiveSignature: Boolean): TJclUpdateArchiveClass; overload; + function FindUpdateFormat(const AFileName: TFileName): TJclUpdateArchiveClass; //overload; + function FindCompressFormats(const AFileName: TFileName): TJclCompressArchiveClassArray; + function FindDecompressFormats(const AFileName: TFileName): TJclDecompressArchiveClassArray; + function FindUpdateFormats(const AFileName: TFileName): TJclUpdateArchiveClassArray; + property CompressFormatCount: Integer read GetCompressFormatCount; property CompressFormats[Index: Integer]: TJclCompressArchiveClass read GetCompressFormat; property DecompressFormatCount: Integer read GetDecompressFormatCount; @@ -1138,6 +1154,7 @@ function GetOutArchive: IOutArchive; public class function ArchiveCLSID: TGUID; virtual; + class function ArchiveSignature: TDynByteArray; override; destructor Destroy; override; procedure Compress; override; property OutArchive: IOutArchive read GetOutArchive; @@ -1361,6 +1378,7 @@ function GetSupportsNestedArchive: Boolean; override; public class function ArchiveCLSID: TGUID; virtual; + class function ArchiveSignature: TDynByteArray; override; destructor Destroy; override; procedure ListFiles; override; procedure ExtractSelected(const ADestinationDir: string = ''; @@ -1732,6 +1750,7 @@ function GetOutArchive: IOutArchive; public class function ArchiveCLSID: TGUID; virtual; + class function ArchiveSignature: TDynByteArray; override; destructor Destroy; override; procedure ListFiles; override; procedure ExtractSelected(const ADestinationDir: string = ''; @@ -4295,13 +4314,90 @@ end; end; +function TJclCompressionArchiveFormats.FindCompressFormats( + const AFileName: TFileName): TJclCompressArchiveClassArray; +var + IndexFormat, IndexFilter: Integer; + Filters: TStrings; + AFormat: TJclCompressArchiveClass; +begin + SetLength(Result, 0); + Filters := TStringList.Create; + try + for IndexFormat := 0 to CompressFormatCount - 1 do + begin + AFormat := CompressFormats[IndexFormat]; + StrTokenToStrings(AFormat.ArchiveExtensions, DirSeparator, Filters); + for IndexFilter := 0 to Filters.Count - 1 do + if IsFileNameMatch(AFileName, Filters.Strings[IndexFilter]) then + begin + SetLength(Result, Length(Result) + 1); + Result[High(Result)] := AFormat; + Break; + end; + end; + finally + Filters.Free; + end; +end; + +{function TJclCompressionArchiveFormats.FindDecompressFormat(const AFileName: TFileName; + TestArchiveSignature: Boolean): TJclDecompressArchiveClass; +var + MatchingFormats: TJclDecompressArchiveClassArray; + Index: Integer; + ArchiveStream: TStream; + Buffer: TDynByteArray; +begin + SetLength(Buffer, 0); + + // enumerate formats based on filename + MatchingFormats := FindDecompressFormats(AFileName); + if (Length(MatchingFormats) >= 1) and (not TestArchiveSignature) then + begin + Result := MatchingFormats[0]; + Exit; + end + else + Result := nil; + + // load archive to test signature + ArchiveStream := TFileStream.Create(AFileName, fmOpenRead and fmShareDenyNone); + try + for Index := Low(MatchingFormats) to High(MatchingFormats) do + if SignatureMatches(MatchingFormats[Index], ArchiveStream, Buffer) then + begin + Result := MatchingFormats[Index]; + Exit; + end; + finally + ArchiveStream.Free; + end; +end;} + function TJclCompressionArchiveFormats.FindDecompressFormat(const AFileName: TFileName): TJclDecompressArchiveClass; var + MatchingFormats: TJclDecompressArchiveClassArray; +begin + // enumerate formats based on filename + MatchingFormats := FindDecompressFormats(AFileName); + if Length(MatchingFormats) >= 1 then + begin + Result := MatchingFormats[0]; + Exit; + end + else + Result := nil; +end; + +function TJclCompressionArchiveFormats.FindDecompressFormats( + const AFileName: TFileName): TJclDecompressArchiveClassArray; +var IndexFormat, IndexFilter: Integer; Filters: TStrings; AFormat: TJclDecompressArchiveClass; begin - Result := nil; + SetLength(Result, 0); Filters := TStringList.Create; try for IndexFormat := 0 to DecompressFormatCount - 1 do @@ -4311,24 +4407,73 @@ for IndexFilter := 0 to Filters.Count - 1 do if IsFileNameMatch(AFileName, Filters.Strings[IndexFilter]) then begin - Result := AFormat; + SetLength(Result, Length(Result) + 1); + Result[High(Result)] := AFormat; Break; end; - if Result <> nil then - Break; end; finally Filters.Free; end; end; +{function TJclCompressionArchiveFormats.FindUpdateFormat(const AFileName: TFileName; + TestArchiveSignature: Boolean): TJclUpdateArchiveClass; +var + MatchingFormats: TJclUpdateArchiveClassArray; + Index: Integer; + ArchiveStream: TStream; + Buffer: TDynByteArray; +begin + SetLength(Buffer, 0); + + // enumerate formats based on filename + MatchingFormats := FindUpdateFormats(AFileName); + if (Length(MatchingFormats) >= 1) and (not TestArchiveSignature) then + begin + Result := MatchingFormats[0]; + Exit; + end + else + Result := nil; + + // load archive to test signature + ArchiveStream := TFileStream.Create(AFileName, fmOpenRead and fmShareDenyNone); + try + for Index := Low(MatchingFormats) to High(MatchingFormats) do + if SignatureMatches(MatchingFormats[Index], ArchiveStream, Buffer) then + begin + Result := MatchingFormats[Index]; + Exit; + end; + finally + ArchiveStream.Free; + end; +end;} + function TJclCompressionArchiveFormats.FindUpdateFormat(const AFileName: TFileName): TJclUpdateArchiveClass; var + MatchingFormats: TJclUpdateArchiveClassArray; +begin + // enumerate formats based on filename + MatchingFormats := FindUpdateFormats(AFileName); + if Length(MatchingFormats) >= 1 then + begin + Result := MatchingFormats[0]; + Exit; + end + else + Result := nil; +end; + +function TJclCompressionArchiveFormats.FindUpdateFormats( + const AFileName: TFileName): TJclUpdateArchiveClassArray; +var IndexFormat, IndexFilter: Integer; Filters: TStrings; AFormat: TJclUpdateArchiveClass; begin - Result := nil; + SetLength(Result, 0); Filters := TStringList.Create; try for IndexFormat := 0 to UpdateFormatCount - 1 do @@ -4338,11 +4483,10 @@ for IndexFilter := 0 to Filters.Count - 1 do if IsFileNameMatch(AFileName, Filters.Strings[IndexFilter]) then begin - Result := AFormat; + SetLength(Result, Length(Result) + 1); + Result[High(Result)] := AFormat; Break; end; - if Result <> nil then - Break; end; finally Filters.Free; @@ -4391,6 +4535,36 @@ FCompressFormats.Add(AClass); end; +{function TJclCompressionArchiveFormats.SignatureMatches( + Format: TJclCompressionArchiveClass; ArchiveStream: TStream; + var Buffer: TDynByteArray): Boolean; +var + Index, StartPos, EndPos: Integer; + Signature: TDynByteArray; +begin + // must match empty signatures + Result := True; + Signature := Format.ArchiveSignature; + + // fill buffer if needed + StartPos := Length(Buffer); // High(Buffer) + 1 + EndPos := Length(Signature); + if StartPos < EndPos then + begin + SetLength(Buffer, EndPos); + for Index := StartPos to EndPos - 1 do + ArchiveStream.ReadBuffer(Buffer[Index], SizeOf(Buffer[Index])); + end; + + // compare buffer and signature + for Index := 0 to EndPos - 1 do + if Buffer[Index] <> Signature[Index] then + begin + Result := False; + Break; + end; +end;} + procedure TJclCompressionArchiveFormats.UnregisterFormat(AClass: TJclCompressionArchiveClass); begin if AClass.InheritsFrom(TJclUpdateArchive) then @@ -4513,6 +4687,11 @@ Result := ''; end; +class function TJclCompressionArchive.ArchiveSignature: TDynByteArray; +begin + SetLength(Result, 0); +end; + class function TJclCompressionArchive.ArchiveSubExtensions: string; begin Result := ''; @@ -6019,6 +6198,56 @@ end; end; +function Get7zArchiveSignature(const ClassID: TGUID): TDynByteArray; +var + I, NumberOfFormats: Cardinal; + J: Integer; + PropValue: TPropVariant; + Found: Boolean; + Data: PAnsiChar; +begin + Found := False; + SetLength(Result, 0); + SevenzipCheck(Sevenzip.GetNumberOfFormats(@NumberOfFormats)); + for I := 0 to NumberOfFormats - 1 do + begin + SevenzipCheck(Sevenzip.GetHandlerProperty2(I, kClassID, PropValue)); + if PropValue.vt = VT_BSTR then + begin + try + if SysStringByteLen(PropValue.bstrVal) = SizeOf(TGUID) then + Found := GUIDEquals(PGUID(PropValue.bstrVal)^, ClassID) + else + raise EJclCompressionError.CreateRes(@RsCompressionDataError); + finally + SysFreeString(PropValue.bstrVal); + end; + end + else + raise EJclCompressionError.CreateResFmt(@RsCompression7zUnknownValueType, [PropValue.vt, kClassID]); + + if Found then + begin + SevenzipCheck(Sevenzip.GetHandlerProperty2(I, kStartSignature, PropValue)); + if PropValue.vt = VT_BSTR then + begin + try + SetLength(Result, SysStringByteLen(PropValue.bstrVal)); + Data := PAnsiChar(PropValue.bstrVal); + for J := Low(Result) to High(Result) do + Result[J] := Ord(Data[J]); + finally + SysFreeString(PropValue.bstrVal); + end; + end + else + if PropValue.vt <> VT_EMPTY then + raise EJclCompressionError.CreateResFmt(@RsCompression7zUnknownValueType, [PropValue.vt, kClassID]); + Break; + end; + end; +end; + //=== { TJclSevenzipOutputCallback } ========================================= constructor TJclSevenzipUpdateCallback.Create( @@ -6268,6 +6497,11 @@ Result := GUID_NULL; end; +class function TJclSevenzipCompressArchive.ArchiveSignature: TDynByteArray; +begin + Result := Get7zArchiveSignature(ArchiveCLSID); +end; + destructor TJclSevenzipCompressArchive.Destroy; begin FOutArchive := nil; @@ -7164,6 +7398,11 @@ Result := GUID_NULL; end; +class function TJclSevenzipDecompressArchive.ArchiveSignature: TDynByteArray; +begin + Result := Get7zArchiveSignature(ArchiveCLSID); +end; + destructor TJclSevenzipDecompressArchive.Destroy; begin FInArchive := nil; @@ -8284,6 +8523,11 @@ inherited Destroy; end; +class function TJclSevenzipUpdateArchive.ArchiveSignature: TDynByteArray; +begin + Result := Get7zArchiveSignature(ArchiveCLSID); +end; + procedure TJclSevenzipUpdateArchive.Compress; var OutStream: IOutStream; Modified: trunk/jcl/source/common/JclSysUtils.pas =================================================================== --- trunk/jcl/source/common/JclSysUtils.pas 2010-11-08 21:05:18 UTC (rev 3415) +++ trunk/jcl/source/common/JclSysUtils.pas 2010-11-11 11:20:26 UTC (rev 3416) @@ -611,6 +611,7 @@ // GUID function JclGUIDToString(const GUID: TGUID): string; function JclStringToGUID(const S: string): TGUID; +function GUIDEquals(const GUID1, GUID2: TGUID): Boolean; // thread safe support @@ -3073,6 +3074,15 @@ Result.D4[7] := StrToInt('$' + Copy(S, 36, 2)); end; +function GUIDEquals(const GUID1, GUID2: TGUID): Boolean; +begin + Result := (GUID1.D1 = GUID2.D1) and (GUID1.D2 = GUID2.D2) and (GUID1.D3 = GUID2.D3) and + (GUID1.D4[0] = GUID2.D4[0]) and (GUID1.D4[1] = GUID2.D4[1]) and + (GUID1.D4[2] = GUID2.D4[2]) and (GUID1.D4[3] = GUID2.D4[3]) and + (GUID1.D4[4] = GUID2.D4[4]) and (GUID1.D4[5] = GUID2.D4[5]) and + (GUID1.D4[6] = GUID2.D4[6]) and (GUID1.D4[7] = GUID2.D4[7]); +end; + // add items at the end procedure ListAddItems(var List: string; const Separator, Items: string); var Modified: trunk/jcl/source/windows/sevenzip.pas =================================================================== --- trunk/jcl/source/windows/sevenzip.pas 2010-11-08 21:05:18 UTC (rev 3415) +++ trunk/jcl/source/windows/sevenzip.pas 2010-11-11 11:20:26 UTC (rev 3416) @@ -611,17 +611,26 @@ {$IFDEF 7ZIP_LINKONREQUEST} type TCreateObjectFunc = function (ClsID: PGUID; IID: PGUID; out Obj): HRESULT; stdcall; + TGetHandlerProperty2 = function (FormatIndex: Cardinal; PropID: TPropID; out Value: TPropVariant): HRESULT; stdcall; + TGetHandlerProperty = function (PropID: TPropID; out Value: TPropVariant): HRESULT; stdcall; + TGetMethodProperty = function (CodecIndex: Cardinal; PropID: TPropID; out Value: TPropVariant): HRESULT; stdcall; TGetNumberOfFormatsFunc = function (NumFormats: PCardinal): HRESULT; stdcall; TGetNumberOfMethodsFunc = function (NumMethods: PCardinal): HRESULT; stdcall; TSetLargePageMode = function: HRESULT; stdcall; var CreateObject: TCreateObjectFunc = nil; + GetHandlerProperty2: TGetHandlerProperty2 = nil; + GetHandlerProperty: TGetHandlerProperty = nil; + GetMethodProperty: TGetMethodProperty = nil; GetNumberOfFormats: TGetNumberOfFormatsFunc = nil; GetNumberOfMethods: TGetNumberOfMethodsFunc = nil; SetLargePageMode: TSetLargePageMode = nil; {$ELSE ~7ZIP_LINKONREQUEST} function CreateObject(ClsID: PGUID; IID: PGUID; out Obj): HRESULT; stdcall; +function GetHandlerProperty2(FormatIndex: Cardinal; PropID: TPropID; out Value: TPropVariant): HRESULT; stdcall; +function GetHandlerProperty(PropID: TPropID; out Value: TPropVariant): HRESULT; stdcall; +function GetMethodProperty(CodecIndex: Cardinal; PropID: TPropID; out Value: TPropVariant): HRESULT; stdcall; function GetNumberOfFormats(NumFormats: PCardinal): HRESULT; stdcall; function GetNumberOfMethods(NumMethods: PCardinal): HRESULT; stdcall; function SetLargePageMode: HRESULT; stdcall; @@ -658,6 +667,9 @@ const sz7Zip = '7z.dll'; CreateObjectExportName = 'CreateObject'; + GetHandlerProperty2ExportName = 'GetHandlerProperty2'; + GetHandlerPropertyExportName = 'GetHandlerProperty'; + GetMethodPropertyExportName = 'GetMethodProperty'; GetNumberOfFormatsExportName = 'GetNumberOfFormats'; GetNumberOfMethodsExportName = 'GetNumberOfMethods'; SetLargePageModeExportName = 'SetLargePageMode'; @@ -665,6 +677,9 @@ {$IFDEF 7ZIP_LINKDLL} function CreateObject; external sz7Zip name CreateObjectExportName; +function GetHandlerProperty2; external sz7Zip name GetHandlerProperty2ExportName; +function GetHandlerProperty; external sz7Zip name GetHandlerPropertyExportName; +function GetMethodProperty; external sz7Zip name GetMethodPropertyExportName; function GetNumberOfFormats; external sz7Zip name GetNumberOfFormatsExportName; function GetNumberOfMethods; external sz7Zip name GetNumberOfMethodsExportName; function SetLargePageMode; external sz7Zip name SetLargePageModeExportName; @@ -700,11 +715,16 @@ if Result then begin @CreateObject := GetSymbol(CreateObjectExportName); + @GetHandlerProperty2 := GetSymbol(GetHandlerProperty2ExportName); + @GetHandlerProperty := GetSymbol(GetHandlerPropertyExportName); + @GetMethodProperty := GetSymbol(GetMethodPropertyExportName); @GetNumberOfFormats := GetSymbol(GetNumberOfFormatsExportName); @GetNumberOfMethods := GetSymbol(GetNumberOfMethodsExportName); @SetLargePageMode := GetSymbol(SetLargePageModeExportName); - Result := Assigned(@CreateObject) and Assigned(@GetNumberOfFormats) and - Assigned(@GetNumberOfMethods) and Assigned(@SetLargePageMode); + Result := Assigned(@CreateObject) and Assigned(@GetHandlerProperty2) and + Assigned(@GetHandlerProperty) and Assigned(@GetMethodProperty) and + Assigned(@GetNumberOfFormats) and Assigned(@GetNumberOfMethods) and + Assigned(@SetLargePageMode); end; end; end; @@ -727,6 +747,9 @@ begin {$IFDEF 7ZIP_LINKONREQUEST} @CreateObject := nil; + @GetHandlerProperty2 := nil; + @GetHandlerProperty := nil; + @GetMethodProperty := nil; @GetNumberOfFormats := nil; @GetNumberOfMethods := nil; @SetLargePageMode := nil; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-11-08 21:05:26
|
Revision: 3415 http://jcl.svn.sourceforge.net/jcl/?rev=3415&view=rev Author: outchy Date: 2010-11-08 21:05:18 +0000 (Mon, 08 Nov 2010) Log Message: ----------- GetCLSID to become a class function name ArchiveCLSID. Modified Paths: -------------- trunk/jcl/source/common/JclCompression.pas Modified: trunk/jcl/source/common/JclCompression.pas =================================================================== --- trunk/jcl/source/common/JclCompression.pas 2010-11-07 20:02:16 UTC (rev 3414) +++ trunk/jcl/source/common/JclCompression.pas 2010-11-08 21:05:18 UTC (rev 3415) @@ -1134,10 +1134,10 @@ private FOutArchive: IOutArchive; protected - function GetCLSID: TGUID; virtual; abstract; function GetItemClass: TJclCompressionItemClass; override; function GetOutArchive: IOutArchive; public + class function ArchiveCLSID: TGUID; virtual; destructor Destroy; override; procedure Compress; override; property OutArchive: IOutArchive read GetOutArchive; @@ -1157,12 +1157,12 @@ FNumberOfPasses: Cardinal; FAlgorithm: Cardinal; protected - function GetCLSID: TGUID; override; procedure InitializeArchiveProperties; override; public class function MultipleItemContainer: Boolean; override; class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; { IJclArchiveNumberOfThreads } function GetNumberOfThreads: Cardinal; procedure SetNumberOfThreads(Value: Cardinal); @@ -1199,12 +1199,12 @@ FCompressionLevel: Cardinal; FNumberOfPasses: Cardinal; protected - function GetCLSID: TGUID; override; procedure InitializeArchiveProperties; override; public class function ArchiveExtensions: string; override; class function ArchiveName: string; override; class function ArchiveSubExtensions: string; override; + class function ArchiveCLSID: TGUID; override; { IJclArchiveNumberOfThreads } function GetNumberOfThreads: Cardinal; procedure SetNumberOfThreads(Value: Cardinal); @@ -1239,12 +1239,12 @@ FSolidBlockSize: Int64; FSolidExtension: Boolean; protected - function GetCLSID: TGUID; override; procedure InitializeArchiveProperties; override; public class function MultipleItemContainer: Boolean; override; class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; { IJclArchiveNumberOfThreads } function GetNumberOfThreads: Cardinal; procedure SetNumberOfThreads(Value: Cardinal); @@ -1284,12 +1284,11 @@ end; TJclTarCompressArchive = class(TJclSevenzipCompressArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function MultipleItemContainer: Boolean; override; class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; end; TJclGZipCompressArchive = class(TJclSevenzipCompressArchive, IJclArchiveCompressionLevel, IJclArchiveNumberOfPasses, @@ -1299,12 +1298,12 @@ FNumberOfPasses: Cardinal; FAlgorithm: Cardinal; protected - function GetCLSID: TGUID; override; procedure InitializeArchiveProperties; override; public class function ArchiveExtensions: string; override; class function ArchiveName: string; override; class function ArchiveSubExtensions: string; override; + class function ArchiveCLSID: TGUID; override; { IJclArchiveCompressionLevel } function GetCompressionLevel: Cardinal; function GetCompressionLevelMax: Cardinal; @@ -1323,12 +1322,12 @@ private FCompressionMethod: TJclCompressionMethod; protected - function GetCLSID: TGUID; override; procedure InitializeArchiveProperties; override; public class function ArchiveExtensions: string; override; class function ArchiveName: string; override; class function ArchiveSubExtensions: string; override; + class function ArchiveCLSID: TGUID; override; { IJclArchiveCompressionMethod } function GetCompressionMethod: TJclCompressionMethod; function GetSupportedCompressionMethods: TJclCompressionMethods; @@ -1336,11 +1335,10 @@ end; TJclSwfcCompressArchive = class(TJclSevenzipCompressArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; end; // sevenzip classes for decompression @@ -1357,12 +1355,12 @@ FOpened: Boolean; protected procedure OpenArchive; - function GetCLSID: TGUID; virtual; abstract; function GetInArchive: IInArchive; function GetInArchiveGetStream: IInArchiveGetStream; function GetItemClass: TJclCompressionItemClass; override; function GetSupportsNestedArchive: Boolean; override; public + class function ArchiveCLSID: TGUID; virtual; destructor Destroy; override; procedure ListFiles; override; procedure ExtractSelected(const ADestinationDir: string = ''; @@ -1379,12 +1377,12 @@ private FNumberOfThreads: Cardinal; protected - function GetCLSID: TGUID; override; procedure InitializeArchiveProperties; override; public class function MultipleItemContainer: Boolean; override; class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; { IJclArchiveNumberOfThreads } function GetNumberOfThreads: Cardinal; procedure SetNumberOfThreads(Value: Cardinal); @@ -1394,202 +1392,183 @@ private FNumberOfThreads: Cardinal; protected - function GetCLSID: TGUID; override; procedure InitializeArchiveProperties; override; public class function ArchiveExtensions: string; override; class function ArchiveName: string; override; class function ArchiveSubExtensions: string; override; + class function ArchiveCLSID: TGUID; override; { IJclArchiveNumberOfThreads } function GetNumberOfThreads: Cardinal; procedure SetNumberOfThreads(Value: Cardinal); end; TJclRarDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function MultipleItemContainer: Boolean; override; class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; end; TJclArjDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function MultipleItemContainer: Boolean; override; class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; end; TJclZDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function MultipleItemContainer: Boolean; override; class function ArchiveExtensions: string; override; class function ArchiveName: string; override; class function ArchiveSubExtensions: string; override; + class function ArchiveCLSID: TGUID; override; end; TJclLzhDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function MultipleItemContainer: Boolean; override; class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; end; TJcl7zDecompressArchive = class(TJclSevenzipDecompressArchive, IJclArchiveNumberOfThreads, IInterface) private FNumberOfThreads: Cardinal; protected - function GetCLSID: TGUID; override; procedure InitializeArchiveProperties; override; public class function MultipleItemContainer: Boolean; override; class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; { IJclArchiveNumberOfThreads } function GetNumberOfThreads: Cardinal; procedure SetNumberOfThreads(Value: Cardinal); end; TJclCabDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function MultipleItemContainer: Boolean; override; class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; end; TJclNsisDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function MultipleItemContainer: Boolean; override; class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; end; TJclLzmaDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function MultipleItemContainer: Boolean; override; class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; end; TJclLzma86DecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function MultipleItemContainer: Boolean; override; class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; end; TJclPeDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function MultipleItemContainer: Boolean; override; class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; end; TJclElfDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function MultipleItemContainer: Boolean; override; class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; end; TJclMachoDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function MultipleItemContainer: Boolean; override; class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; end; TJclUdfDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function MultipleItemContainer: Boolean; override; class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; end; TJclXarDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function MultipleItemContainer: Boolean; override; class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; end; TJclMubDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function MultipleItemContainer: Boolean; override; class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; end; TJclHfsDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function MultipleItemContainer: Boolean; override; class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; end; TJclDmgDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function MultipleItemContainer: Boolean; override; class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; end; TJclCompoundDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function MultipleItemContainer: Boolean; override; class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; end; TJclWimDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function MultipleItemContainer: Boolean; override; class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; end; TJclIsoDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function MultipleItemContainer: Boolean; override; class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; end; // not implemented in 9.04 @@ -1603,158 +1582,140 @@ end;} TJclChmDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function MultipleItemContainer: Boolean; override; class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; end; TJclSplitDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; end; TJclRpmDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function MultipleItemContainer: Boolean; override; class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; end; TJclDebDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function MultipleItemContainer: Boolean; override; class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; end; TJclCpioDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function MultipleItemContainer: Boolean; override; class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; end; TJclTarDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function MultipleItemContainer: Boolean; override; class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; end; TJclGZipDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function ArchiveExtensions: string; override; class function ArchiveName: string; override; class function ArchiveSubExtensions: string; override; + class function ArchiveCLSID: TGUID; override; end; TJclXzDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function ArchiveExtensions: string; override; class function ArchiveName: string; override; class function ArchiveSubExtensions: string; override; + class function ArchiveCLSID: TGUID; override; end; TJclNtfsDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function MultipleItemContainer: Boolean; override; class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; end; TJclFatDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function MultipleItemContainer: Boolean; override; class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; end; TJclMbrDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function MultipleItemContainer: Boolean; override; class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; end; TJclVhdDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function ArchiveExtensions: string; override; class function ArchiveName: string; override; class function ArchiveSubExtensions: string; override; + class function ArchiveCLSID: TGUID; override; end; TJclMslzDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; end; TJclFlvDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; end; TJclSwfDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; end; TJclSwfcDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; end; TJclAPMDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; end; TJclPpmdDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; end; //sevenzip classes for updates (read and write) @@ -1766,11 +1727,11 @@ FOpened: Boolean; protected procedure OpenArchive; - function GetCLSID: TGUID; virtual; abstract; function GetInArchive: IInArchive; function GetItemClass: TJclCompressionItemClass; override; function GetOutArchive: IOutArchive; public + class function ArchiveCLSID: TGUID; virtual; destructor Destroy; override; procedure ListFiles; override; procedure ExtractSelected(const ADestinationDir: string = ''; @@ -1796,12 +1757,12 @@ FNumberOfPasses: Cardinal; FAlgorithm: Cardinal; protected - function GetCLSID: TGUID; override; procedure InitializeArchiveProperties; override; public class function MultipleItemContainer: Boolean; override; class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; { IJclArchiveNumberOfThreads } function GetNumberOfThreads: Cardinal; procedure SetNumberOfThreads(Value: Cardinal); @@ -1838,12 +1799,12 @@ FCompressionLevel: Cardinal; FNumberOfPasses: Cardinal; protected - function GetCLSID: TGUID; override; procedure InitializeArchiveProperties; override; public class function ArchiveExtensions: string; override; class function ArchiveName: string; override; class function ArchiveSubExtensions: string; override; + class function ArchiveCLSID: TGUID; override; { IJclArchiveNumberOfThreads } function GetNumberOfThreads: Cardinal; procedure SetNumberOfThreads(Value: Cardinal); @@ -1875,12 +1836,12 @@ FSaveCreationDateTime: Boolean; FSaveLastWriteDateTime: Boolean; protected - function GetCLSID: TGUID; override; procedure InitializeArchiveProperties; override; public class function MultipleItemContainer: Boolean; override; class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; { IJclArchiveNumberOfThreads } function GetNumberOfThreads: Cardinal; procedure SetNumberOfThreads(Value: Cardinal); @@ -1915,12 +1876,11 @@ end; TJclTarUpdateArchive = class(TJclSevenzipUpdateArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function MultipleItemContainer: Boolean; override; class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; end; TJclGZipUpdateArchive = class(TJclSevenzipUpdateArchive, IJclArchiveCompressionLevel, IJclArchiveNumberOfPasses, @@ -1930,12 +1890,12 @@ FNumberOfPasses: Cardinal; FAlgorithm: Cardinal; protected - function GetCLSID: TGUID; override; procedure InitializeArchiveProperties; override; public class function ArchiveExtensions: string; override; class function ArchiveName: string; override; class function ArchiveSubExtensions: string; override; + class function ArchiveCLSID: TGUID; override; { IJclArchiveCompressionLevel } function GetCompressionLevel: Cardinal; function GetCompressionLevelMax: Cardinal; @@ -1954,12 +1914,12 @@ private FCompressionMethod: TJclCompressionMethod; protected - function GetCLSID: TGUID; override; procedure InitializeArchiveProperties; override; public class function ArchiveExtensions: string; override; class function ArchiveName: string; override; class function ArchiveSubExtensions: string; override; + class function ArchiveCLSID: TGUID; override; { IJclArchiveCompressionMethod } function GetCompressionMethod: TJclCompressionMethod; function GetSupportedCompressionMethods: TJclCompressionMethods; @@ -1967,11 +1927,10 @@ end; TJclSwfcUpdateArchive = class(TJclSevenzipUpdateArchive, IInterface) - protected - function GetCLSID: TGUID; override; public class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveCLSID: TGUID; override; end; // internal sevenzip stuff, do not use it directly @@ -6304,6 +6263,11 @@ //=== { TJclSevenzipCompressArchive } ======================================== +class function TJclSevenzipCompressArchive.ArchiveCLSID: TGUID; +begin + Result := GUID_NULL; +end; + destructor TJclSevenzipCompressArchive.Destroy; begin FOutArchive := nil; @@ -6321,7 +6285,7 @@ begin if not Assigned(FOutArchive) then begin - SevenzipCLSID := GetCLSID; + SevenzipCLSID := ArchiveCLSID; InterfaceID := Sevenzip.IOutArchive; if (not Is7ZipLoaded) and (not Load7Zip) then raise EJclCompressionError.CreateRes(@RsCompression7zLoadError); @@ -6370,7 +6334,7 @@ Result := LoadResString(@RsCompression7zName); end; -function TJcl7zCompressArchive.GetCLSID: TGUID; +class function TJcl7zCompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormat7z; end; @@ -6569,14 +6533,14 @@ Result := LoadResString(@RsCompressionZipName); end; -function TJclZipCompressArchive.GetAlgorithm: Cardinal; +class function TJclZipCompressArchive.ArchiveCLSID: TGUID; begin - Result := FAlgorithm; + Result := CLSID_CFormatZip; end; -function TJclZipCompressArchive.GetCLSID: TGUID; +function TJclZipCompressArchive.GetAlgorithm: Cardinal; begin - Result := CLSID_CFormatZip; + Result := FAlgorithm; end; function TJclZipCompressArchive.GetCompressionLevel: Cardinal; @@ -6779,7 +6743,7 @@ Result := LoadResString(@RsCompressionBZip2SubExtensions); end; -function TJclBZ2CompressArchive.GetCLSID: TGUID; +class function TJclBZ2CompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatBZ2; end; @@ -6878,7 +6842,7 @@ Result := LoadResString(@RsCompressionTarName); end; -function TJclTarCompressArchive.GetCLSID: TGUID; +class function TJclTarCompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatTar; end; @@ -6905,14 +6869,14 @@ Result := LoadResString(@RsCompressionGZipSubExtensions); end; -function TJclGZipCompressArchive.GetAlgorithm: Cardinal; +class function TJclGZipCompressArchive.ArchiveCLSID: TGUID; begin - Result := FAlgorithm; + Result := CLSID_CFormatGZip; end; -function TJclGZipCompressArchive.GetCLSID: TGUID; +function TJclGZipCompressArchive.GetAlgorithm: Cardinal; begin - Result := CLSID_CFormatGZip; + Result := FAlgorithm; end; function TJclGZipCompressArchive.GetCompressionLevel: Cardinal; @@ -7000,7 +6964,7 @@ Result := LoadResString(@RsCompressionXzSubExtensions); end; -function TJclXzCompressArchive.GetCLSID: TGUID; +class function TJclXzCompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatXz; end; @@ -7041,7 +7005,7 @@ Result := LoadResString(@RsCompressionSwfcName); end; -function TJclSwfcCompressArchive.GetCLSID: TGUID; +class function TJclSwfcCompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatSwfc; end; @@ -7195,6 +7159,11 @@ //=== { TJclSevenzipDecompressArchive } ====================================== +class function TJclSevenzipDecompressArchive.ArchiveCLSID: TGUID; +begin + Result := GUID_NULL; +end; + destructor TJclSevenzipDecompressArchive.Destroy; begin FInArchive := nil; @@ -7300,7 +7269,7 @@ begin if not Assigned(FInArchive) then begin - SevenzipCLSID := GetCLSID; + SevenzipCLSID := ArchiveCLSID; InterfaceID := Sevenzip.IInArchive; if (not Is7ZipLoaded) and (not Load7Zip) then raise EJclCompressionError.CreateRes(@RsCompression7zLoadError); @@ -7412,7 +7381,7 @@ Result := LoadResString(@RsCompressionZipName); end; -function TJclZipDecompressArchive.GetCLSID: TGUID; +class function TJclZipDecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatZip; end; @@ -7456,7 +7425,7 @@ Result := LoadResString(@RsCompressionBZip2SubExtensions); end; -function TJclBZ2DecompressArchive.GetCLSID: TGUID; +class function TJclBZ2DecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatBZ2; end; @@ -7490,7 +7459,7 @@ Result := LoadResString(@RsCompressionRarName); end; -function TJclRarDecompressArchive.GetCLSID: TGUID; +class function TJclRarDecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatRar; end; @@ -7512,7 +7481,7 @@ Result := LoadResString(@RsCompressionArjName); end; -function TJclArjDecompressArchive.GetCLSID: TGUID; +class function TJclArjDecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatArj; end; @@ -7539,7 +7508,7 @@ Result := LoadResString(@RsCompressionZSubExtensions); end; -function TJclZDecompressArchive.GetCLSID: TGUID; +class function TJclZDecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatZ; end; @@ -7561,7 +7530,7 @@ Result := LoadResString(@RsCompressionLzhName); end; -function TJclLzhDecompressArchive.GetCLSID: TGUID; +class function TJclLzhDecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatLzh; end; @@ -7583,7 +7552,7 @@ Result := LoadResString(@RsCompression7zName); end; -function TJcl7zDecompressArchive.GetCLSID: TGUID; +class function TJcl7zDecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormat7z; end; @@ -7622,7 +7591,7 @@ Result := LoadResString(@RsCompressionCabName); end; -function TJclCabDecompressArchive.GetCLSID: TGUID; +class function TJclCabDecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatCab; end; @@ -7644,7 +7613,7 @@ Result := LoadResString(@RsCompressionNsisName); end; -function TJclNsisDecompressArchive.GetCLSID: TGUID; +class function TJclNsisDecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatNsis; end; @@ -7666,7 +7635,7 @@ Result := LoadResString(@RsCompressionLzmaName); end; -function TJclLzmaDecompressArchive.GetCLSID: TGUID; +class function TJclLzmaDecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatLzma; end; @@ -7688,7 +7657,7 @@ Result := LoadResString(@RsCompressionLzma86Name); end; -function TJclLzma86DecompressArchive.GetCLSID: TGUID; +class function TJclLzma86DecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatLzma86; end; @@ -7710,7 +7679,7 @@ Result := LoadResString(@RsCompressionPeName); end; -function TJclPeDecompressArchive.GetCLSID: TGUID; +class function TJclPeDecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatPe; end; @@ -7732,7 +7701,7 @@ Result := LoadResString(@RsCompressionElfName); end; -function TJclElfDecompressArchive.GetCLSID: TGUID; +class function TJclElfDecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatElf; end; @@ -7754,7 +7723,7 @@ Result := LoadResString(@RsCompressionMachoName); end; -function TJclMachoDecompressArchive.GetCLSID: TGUID; +class function TJclMachoDecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatMacho; end; @@ -7776,7 +7745,7 @@ Result := LoadResString(@RsCompressionUdfName); end; -function TJclUdfDecompressArchive.GetCLSID: TGUID; +class function TJclUdfDecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatUdf; end; @@ -7798,7 +7767,7 @@ Result := LoadResString(@RsCompressionXarName); end; -function TJclXarDecompressArchive.GetCLSID: TGUID; +class function TJclXarDecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatXar; end; @@ -7820,7 +7789,7 @@ Result := LoadResString(@RsCompressionMubName); end; -function TJclMubDecompressArchive.GetCLSID: TGUID; +class function TJclMubDecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatMub; end; @@ -7842,7 +7811,7 @@ Result := LoadResString(@RsCompressionHfsName); end; -function TJclHfsDecompressArchive.GetCLSID: TGUID; +class function TJclHfsDecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatHfs; end; @@ -7864,7 +7833,7 @@ Result := LoadResString(@RsCompressionDmgName); end; -function TJclDmgDecompressArchive.GetCLSID: TGUID; +class function TJclDmgDecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatDmg; end; @@ -7886,7 +7855,7 @@ Result := LoadResString(@RsCompressionCompoundName); end; -function TJclCompoundDecompressArchive.GetCLSID: TGUID; +class function TJclCompoundDecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatCompound; end; @@ -7908,7 +7877,7 @@ Result := LoadResString(@RsCompressionWimName); end; -function TJclWimDecompressArchive.GetCLSID: TGUID; +class function TJclWimDecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatWim; end; @@ -7930,7 +7899,7 @@ Result := LoadResString(@RsCompressionIsoName); end; -function TJclIsoDecompressArchive.GetCLSID: TGUID; +class function TJclIsoDecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatIso; end; @@ -7952,7 +7921,7 @@ Result := LoadResString(@RsCompressionChmName); end; -function TJclChmDecompressArchive.GetCLSID: TGUID; +class function TJclChmDecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatChm; end; @@ -7974,7 +7943,7 @@ Result := LoadResString(@RsCompressionSplitName); end; -function TJclSplitDecompressArchive.GetCLSID: TGUID; +class function TJclSplitDecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatSplit; end; @@ -7991,7 +7960,7 @@ Result := LoadResString(@RsCompressionRpmName); end; -function TJclRpmDecompressArchive.GetCLSID: TGUID; +class function TJclRpmDecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatRpm; end; @@ -8013,7 +7982,7 @@ Result := LoadResString(@RsCompressionDebName); end; -function TJclDebDecompressArchive.GetCLSID: TGUID; +class function TJclDebDecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatDeb; end; @@ -8035,7 +8004,7 @@ Result := LoadResString(@RsCompressionCpioName); end; -function TJclCpioDecompressArchive.GetCLSID: TGUID; +class function TJclCpioDecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatCpio; end; @@ -8057,7 +8026,7 @@ Result := LoadResString(@RsCompressionTarName); end; -function TJclTarDecompressArchive.GetCLSID: TGUID; +class function TJclTarDecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatTar; end; @@ -8084,7 +8053,7 @@ Result := LoadResString(@RsCompressionGZipSubExtensions); end; -function TJclGZipDecompressArchive.GetCLSID: TGUID; +class function TJclGZipDecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatGZip; end; @@ -8106,7 +8075,7 @@ Result := LoadResString(@RsCompressionXzSubExtensions); end; -function TJclXzDecompressArchive.GetCLSID: TGUID; +class function TJclXzDecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatXz; end; @@ -8123,7 +8092,7 @@ Result := LoadResString(@RsCompressionNtfsName); end; -function TJclNtfsDecompressArchive.GetCLSID: TGUID; +class function TJclNtfsDecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatNtfs; end; @@ -8145,7 +8114,7 @@ Result := LoadResString(@RsCompressionFatName); end; -function TJclFatDecompressArchive.GetCLSID: TGUID; +class function TJclFatDecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatFat; end; @@ -8167,7 +8136,7 @@ Result := LoadResString(@RsCompressionMbrName); end; -function TJclMbrDecompressArchive.GetCLSID: TGUID; +class function TJclMbrDecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatMbr; end; @@ -8194,7 +8163,7 @@ Result := LoadResString(@RsCompressionVhdSubExtensions); end; -function TJclVhdDecompressArchive.GetCLSID: TGUID; +class function TJclVhdDecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatVhd; end; @@ -8211,7 +8180,7 @@ Result := LoadResString(@RsCompressionMslzName); end; -function TJclMslzDecompressArchive.GetCLSID: TGUID; +class function TJclMslzDecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatMslz; end; @@ -8228,7 +8197,7 @@ Result := LoadResString(@RsCompressionFlvName); end; -function TJclFlvDecompressArchive.GetCLSID: TGUID; +class function TJclFlvDecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatFlv; end; @@ -8245,7 +8214,7 @@ Result := LoadResString(@RsCompressionSwfName); end; -function TJclSwfDecompressArchive.GetCLSID: TGUID; +class function TJclSwfDecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatSwf; end; @@ -8262,7 +8231,7 @@ Result := LoadResString(@RsCompressionSwfcName); end; -function TJclSwfcDecompressArchive.GetCLSID: TGUID; +class function TJclSwfcDecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatSwfc; end; @@ -8279,7 +8248,7 @@ Result := LoadResString(@RsCompressionApmName); end; -function TJclAPMDecompressArchive.GetCLSID: TGUID; +class function TJclAPMDecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatAPM; end; @@ -8296,13 +8265,18 @@ Result := LoadResString(@RsCompressionPpmdName); end; -function TJclPpmdDecompressArchive.GetCLSID: TGUID; +class function TJclPpmdDecompressArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatPpmd; end; //=== { TJclSevenzipUpdateArchive } ========================================== +class function TJclSevenzipUpdateArchive.ArchiveCLSID: TGUID; +begin + Result := GUID_NULL; +end; + destructor TJclSevenzipUpdateArchive.Destroy; begin FInArchive := nil; @@ -8462,7 +8436,7 @@ begin if not Assigned(FInArchive) then begin - SevenzipCLSID := GetCLSID; + SevenzipCLSID := ArchiveCLSID; InterfaceID := Sevenzip.IInArchive; if (not Is7ZipLoaded) and (not Load7Zip) then raise EJclCompressionError.CreateRes(@RsCompression7zLoadError); @@ -8484,7 +8458,7 @@ begin if not Assigned(FOutarchive) then begin - SevenzipCLSID := GetCLSID; + SevenzipCLSID := ArchiveCLSID; InterfaceID := Sevenzip.IOutArchive; if not Supports(InArchive, InterfaceID, FOutArchive) or not Assigned(FOutArchive) then @@ -8600,14 +8574,14 @@ Result := LoadResString(@RsCompressionZipName); end; -function TJclZipUpdateArchive.GetAlgorithm: Cardinal; +class function TJclZipUpdateArchive.ArchiveCLSID: TGUID; begin - Result := FAlgorithm; + Result := CLSID_CFormatZip; end; -function TJclZipUpdateArchive.GetCLSID: TGUID; +function TJclZipUpdateArchive.GetAlgorithm: Cardinal; begin - Result := CLSID_CFormatZip; + Result := FAlgorithm; end; function TJclZipUpdateArchive.GetCompressionLevel: Cardinal; @@ -8817,7 +8791,7 @@ Result := LoadResString(@RsCompressionBZip2SubExtensions); end; -function TJclBZ2UpdateArchive.GetCLSID: TGUID; +class function TJclBZ2UpdateArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatBZ2; end; @@ -8920,7 +8894,7 @@ Result := LoadResString(@RsCompression7zName); end; -function TJcl7zUpdateArchive.GetCLSID: TGUID; +class function TJcl7zUpdateArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormat7z; end; @@ -9105,7 +9079,7 @@ Result := LoadResString(@RsCompressionTarName); end; -function TJclTarUpdateArchive.GetCLSID: TGUID; +class function TJclTarUpdateArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatTar; end; @@ -9132,14 +9106,14 @@ Result := LoadResString(@RsCompressionGZipSubExtensions); end; -function TJclGZipUpdateArchive.GetAlgorithm: Cardinal; +class function TJclGZipUpdateArchive.ArchiveCLSID: TGUID; begin - Result := FAlgorithm; + Result := CLSID_CFormatGZip; end; -function TJclGZipUpdateArchive.GetCLSID: TGUID; +function TJclGZipUpdateArchive.GetAlgorithm: Cardinal; begin - Result := CLSID_CFormatGZip; + Result := FAlgorithm; end; function TJclGZipUpdateArchive.GetCompressionLevel: Cardinal; @@ -9230,7 +9204,7 @@ Result := LoadResString(@RsCompressionXzSubExtensions); end; -function TJclXzUpdateArchive.GetCLSID: TGUID; +class function TJclXzUpdateArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatXz; end; @@ -9273,7 +9247,7 @@ Result := LoadResString(@RsCompressionSwfcName); end; -function TJclSwfcUpdateArchive.GetCLSID: TGUID; +class function TJclSwfcUpdateArchive.ArchiveCLSID: TGUID; begin Result := CLSID_CFormatSwfc; end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-11-07 20:02:25
|
Revision: 3414 http://jcl.svn.sourceforge.net/jcl/?rev=3414&view=rev Author: outchy Date: 2010-11-07 20:02:16 +0000 (Sun, 07 Nov 2010) Log Message: ----------- website updates: - jcl.delphi-jedi.org is now deprecated (it was really outdated); - its content is moved to JEDI wiki that can more easily be updated; - original pages are replaced by redirections; - removal of orphaned pages. Modified Paths: -------------- trunk/website/delphi-jedi/btguide.html trunk/website/delphi-jedi/documents/lgpl.html trunk/website/delphi-jedi/documents/mpl11.html trunk/website/delphi-jedi/documents/styleguide.html trunk/website/delphi-jedi/index.html trunk/website/delphi-jedi/jpp.html trunk/website/delphi-jedi/page10.html trunk/website/delphi-jedi/page11.html trunk/website/delphi-jedi/page12.html trunk/website/delphi-jedi/page20.html trunk/website/delphi-jedi/page21.html trunk/website/delphi-jedi/page22.html trunk/website/delphi-jedi/page23.html trunk/website/delphi-jedi/page24.html trunk/website/delphi-jedi/page30.html trunk/website/delphi-jedi/page32.html trunk/website/delphi-jedi/page33.html trunk/website/delphi-jedi/page34.html trunk/website/delphi-jedi/page40.html trunk/website/delphi-jedi/page41.html trunk/website/delphi-jedi/page42.html trunk/website/delphi-jedi/page50.html trunk/website/delphi-jedi/page51.html trunk/website/delphi-jedi/page52.html trunk/website/delphi-jedi/page53.html trunk/website/delphi-jedi/page54.html trunk/website/delphi-jedi/ppp.html Removed Paths: ------------- trunk/website/delphi-jedi/documents/lgpl.pdf trunk/website/delphi-jedi/documents/mpl11.pdf trunk/website/delphi-jedi/documents/styleguide.pdf trunk/website/delphi-jedi/download/ trunk/website/delphi-jedi/img/ trunk/website/delphi-jedi/page13.html trunk/website/delphi-jedi/page60.html trunk/website/delphi-jedi/styles.css trunk/website/sourceforge/test.html Modified: trunk/website/delphi-jedi/btguide.html =================================================================== --- trunk/website/delphi-jedi/btguide.html 2010-11-03 14:01:53 UTC (rev 3413) +++ trunk/website/delphi-jedi/btguide.html 2010-11-07 20:02:16 UTC (rev 3414) @@ -1,455 +1,9 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> -<HTML> -<HEAD> - <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1252"> - <TITLE></TITLE> - <META NAME="GENERATOR" CONTENT="StarOffice 6.0 (Win32)"> - <META NAME="AUTHOR" CONTENT="Matthias Thoma"> - <META NAME="CREATED" CONTENT="20020207;14151035"> - <META NAME="CHANGEDBY" CONTENT="Matthias Thoma"> - <META NAME="CHANGED" CONTENT="20020407;15354884"> - <STYLE> - <!-- - @page { margin: 2cm } - --> - </STYLE> -</HEAD> -<BODY> -<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><FONT FACE="Verdana, sans-serif"><FONT SIZE=6 STYLE="font-size: 22pt"><B>JEDI -Issue Tracker</B></FONT></FONT></P> -<P ALIGN=LEFT STYLE="margin-bottom: 0cm"><FONT FACE="Verdana, sans-serif"><B>Quick -start guide</B></FONT></P> -<P STYLE="margin-bottom: 0cm"><BR> -</P> -<P STYLE="margin-bottom: 0cm"><BR> -</P> -<P STYLE="margin-bottom: 0cm"><FONT SIZE=4><B>Getting started</B></FONT></P> -<P STYLE="margin-bottom: 0cm"><BR> -</P> -<P STYLE="margin-bottom: 0cm"><FONT SIZE=3><FONT FACE="Verdana, sans-serif">First -you need to signup for a new account. The issue trackers login screen -provides a link (Figure 1). </FONT></FONT> -</P> -<P STYLE="margin-bottom: 0cm"><BR> -</P> -<P STYLE="margin-bottom: 0cm"><IMG SRC="gra2.jpg" NAME="Grafik5" ALIGN=LEFT WIDTH=399 HEIGHT=219 BORDER=0><BR CLEAR=LEFT><BR> -</P> -<P STYLE="margin-bottom: 0cm"><BR> -</P> -<P STYLE="margin-bottom: 0cm"><FONT FACE="Verdana, sans-serif"><FONT SIZE=3>The -following sign up screen will ask you for a <B>username </B><SPAN STYLE="font-weight: medium">and -a <B>valid email address</B>. A randomly generated password will be -send to that email address shortly afterwards. O</SPAN></FONT>nce you -have your randomly generated password please go back to the login -page. </FONT> -</P> -<P STYLE="margin-bottom: 0cm"><BR> -</P> -<P STYLE="margin-bottom: 0cm"><FONT FACE="Verdana, sans-serif">Just -enter your username and password and hit the login button. There is -also a <B>Save Login</B> checkbox to have the package remember that -you are logged in between browser sessions. You will have to have -<B>cookies enabled</B> to login. </FONT> -</P> -<P STYLE="margin-bottom: 0cm"><BR> -</P> -<P STYLE="margin-bottom: 0cm"><FONT FACE="Verdana, sans-serif">If the -account doesn't exist, the account is disabled, or the password is -incorrect then you will remain at the login page. An error message -will be displayed. </FONT> -</P> -<P STYLE="margin-bottom: 0cm"><BR> -</P> -<P STYLE="margin-bottom: 0cm"><BR> -</P> -<P STYLE="margin-bottom: 0cm"><FONT FACE="Verdana, sans-serif"><FONT SIZE=4><B>The -main screen</B></FONT></FONT></P> -<P STYLE="margin-bottom: 0cm"><BR> -</P> -<P STYLE="margin-bottom: 0cm"><FONT FACE="Verdana, sans-serif"><SPAN STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif">The -main screen is the first page you see upon logging in. It shows you -the latest news and updates for the bugtracker. Some news postings -are specific to projects and others are global across the entire -bugtracker. This is set at the time of posting in the section. In the -top right corner you are able to switch between the different -projects. It is recommended to set it to <B>Code Library</B><SPAN STYLE="font-weight: medium"> -now</SPAN>. </FONT></SPAN></FONT> -</P> -<P STYLE="margin-bottom: 0cm; font-weight: medium"><BR> -</P> -<P STYLE="margin-bottom: 0cm; font-weight: medium"><FONT FACE="Verdana, sans-serif">When -you first logged in you have the following options:</FONT></P> -<P STYLE="margin-top: 0.18cm; margin-bottom: 0.18cm"><IMG SRC="gra1.jpg" NAME="Grafik1" ALIGN=LEFT WIDTH=511 HEIGHT=50 BORDER=0><BR CLEAR=LEFT><BR><BR> -</P> -<P STYLE="margin-bottom: 0cm"><BR> -</P> -<TABLE WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=0> - <COL WIDTH=29*> - <COL WIDTH=227*> - <TR VALIGN=TOP> - <TD WIDTH=11%> - <P><FONT FACE="Verdana, sans-serif"><FONT SIZE=2 STYLE="font-size: 10pt"><B>Main</B></FONT></FONT></P> - </TD> - <TD WIDTH=89%> - <P><FONT FACE="Verdana, sans-serif"><FONT SIZE=2 STYLE="font-size: 10pt">The - screen you are seeing now. You can always get back to it by - pressing that button.</FONT></FONT></P> - </TD> - </TR> - <TR VALIGN=TOP> - <TD WIDTH=11%> - <P><FONT FACE="Verdana, sans-serif"><FONT SIZE=2 STYLE="font-size: 10pt"><B>View - Bugs</B></FONT></FONT></P> - </TD> - <TD WIDTH=89%> - <P><FONT FACE="Verdana, sans-serif"><FONT SIZE=2 STYLE="font-size: 10pt">Shows - all bugs reported in the selected project.</FONT></FONT></P> - </TD> - </TR> - <TR VALIGN=TOP> - <TD WIDTH=11%> - <P><FONT FACE="Verdana, sans-serif"><FONT SIZE=2 STYLE="font-size: 10pt"><B>Report - Bug</B></FONT></FONT></P> - </TD> - <TD WIDTH=89%> - <P><FONT FACE="Verdana, sans-serif"><FONT SIZE=2 STYLE="font-size: 10pt">Report - a bug </FONT></FONT> - </P> - </TD> - </TR> - <TR VALIGN=TOP> - <TD WIDTH=11%> - <P><FONT FACE="Verdana, sans-serif"><FONT SIZE=2 STYLE="font-size: 10pt"><B>Summary</B></FONT></FONT></P> - </TD> - <TD WIDTH=89%> - <P><FONT FACE="Verdana, sans-serif"><FONT SIZE=2 STYLE="font-size: 10pt">Some - statistics about bugs, longest open bugs etc.</FONT></FONT></P> - </TD> - </TR> - <TR VALIGN=TOP> - <TD WIDTH=11%> - <P><FONT FACE="Verdana, sans-serif"><FONT SIZE=2 STYLE="font-size: 10pt"><B>Account</B></FONT></FONT></P> - </TD> - <TD WIDTH=89%> - <P><FONT FACE="Verdana, sans-serif"><FONT SIZE=2 STYLE="font-size: 10pt">You - account settings</FONT></FONT></P> - </TD> - </TR> - <TR VALIGN=TOP> - <TD WIDTH=11%> - <P><FONT FACE="Verdana, sans-serif"><FONT SIZE=2 STYLE="font-size: 10pt"><B>Docs</B></FONT></FONT></P> - </TD> - <TD WIDTH=89%> - <P><FONT FACE="Verdana, sans-serif"><FONT SIZE=2 STYLE="font-size: 10pt">Documentation - related to the bucktracker or the code library.</FONT></FONT></P> - </TD> - </TR> - <TR VALIGN=TOP> - <TD WIDTH=11%> - <P><FONT FACE="Verdana, sans-serif"><FONT SIZE=2 STYLE="font-size: 10pt"><B>Logout</B></FONT></FONT></P> - </TD> - <TD WIDTH=89%> - <P><FONT FACE="Verdana, sans-serif"><FONT SIZE=2 STYLE="font-size: 10pt">Exit - the bug tracker</FONT></FONT></P> - </TD> - </TR> -</TABLE> -<P STYLE="margin-bottom: 0cm"><BR> -</P> -<P STYLE="margin-bottom: 0cm; font-weight: medium"><FONT FACE="Verdana, sans-serif">The -first thing you as developer should do now is to write a short -message to <A HREF="mailto:jc...@de...">jc...@de...</A> -and ask for developer rights. The next step is most likely to -customize your account. </FONT> -</P> -<P STYLE="margin-bottom: 0cm"><BR> -</P> -<P STYLE="margin-bottom: 0cm; font-weight: medium"><IMG SRC="gra3.jpg" NAME="Grafik3" ALIGN=LEFT WIDTH=613 HEIGHT=247 BORDER=0><BR CLEAR=LEFT><BR> -</P> -<P STYLE="margin-bottom: 0cm"><BR> -</P> -<P STYLE="margin-bottom: 0cm; font-weight: medium"><FONT FACE="Verdana, sans-serif">Now -you are able to change and confirm your password. Please just enter -it into the appropriate fields. Afterwards please go to the -<B>preferences</B> page. There you can turn on/turn off every kind of -email notification. At startup you will not get any email -notifications at all.</FONT></P> -<P STYLE="margin-bottom: 0cm; font-weight: medium"><BR> -</P> -<P STYLE="margin-bottom: 0cm; font-weight: medium"><IMG SRC="gra4.jpg" NAME="Grafik2" ALIGN=LEFT WIDTH=644 HEIGHT=289 BORDER=0><BR CLEAR=LEFT><BR> -</P> -<P STYLE="margin-bottom: 0cm; font-weight: medium"><BR> -</P> -<TABLE WIDTH=735 BORDER=0 CELLPADDING=0 CELLSPACING=0> - <COL WIDTH=217> - <COL WIDTH=518> - <TR VALIGN=TOP> - <TD WIDTH=217> - <P STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif">Email - on New</FONT></P> - </TD> - <TD WIDTH=518> - <P STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif">Email - you if you when a new bug report is filed.</FONT></P> - </TD> - </TR> - <TR VALIGN=TOP> - <TD WIDTH=217> - <P><SPAN STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif">Email - on Assigned</FONT></SPAN></P> - </TD> - <TD WIDTH=518> - <P><SPAN STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif">Email - you when a bug you are attached to is set to assigned</FONT></SPAN></P> - </TD> - </TR> - <TR VALIGN=TOP> - <TD WIDTH=217> - <P><SPAN STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif">Email - on Feedback</FONT></SPAN></P> - </TD> - <TD WIDTH=518> - <P STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif">Email - you when a bug you are attached to is set to Feedback status</FONT></P> - </TD> - </TR> - <TR VALIGN=TOP> - <TD WIDTH=217> - <P><SPAN STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif">Email - on Resolved</FONT></SPAN></P> - </TD> - <TD WIDTH=518> - <P><SPAN STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif">Email - you when a bug you are attached to is set to Resolved status</FONT></SPAN></P> - </TD> - </TR> - <TR VALIGN=TOP> - <TD WIDTH=217> - <P><SPAN STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif">Email - on Closed</FONT></SPAN></P> - </TD> - <TD WIDTH=518> - <P><SPAN STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif">Email - you when a bug you are attached to is set to Closed status</FONT></SPAN></P> - </TD> - </TR> - <TR VALIGN=TOP> - <TD WIDTH=217> - <P><SPAN STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif">Email - on Reopened</FONT></SPAN></P> - </TD> - <TD WIDTH=518> - <P><SPAN STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif">Email - you when a bug you are attached to is Reopened</FONT></SPAN></P> - </TD> - </TR> - <TR VALIGN=TOP> - <TD WIDTH=217> - <P><SPAN STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif">Email - on Bugnote Added</FONT></SPAN></P> - </TD> - <TD WIDTH=518> - <P><SPAN STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif">Email - you when a bug you are attached to has a Bugnote added</FONT></SPAN></P> - </TD> - </TR> - <TR VALIGN=TOP> - <TD WIDTH=217> - <P><SPAN STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif">Email - on Status Change</FONT></SPAN></P> - </TD> - <TD WIDTH=518> - <P STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif">mail - you when the status of a bug you are attached to has changed</FONT></P> - </TD> - </TR> - <TR VALIGN=TOP> - <TD WIDTH=217> - <P><SPAN STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif">Email - on Priority Change</FONT></SPAN></P> - </TD> - <TD WIDTH=518> - <P STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif">Email - you when the priority of a bug you are attached to has changed</FONT></P> - </TD> - </TR> -</TABLE> -<P STYLE="margin-bottom: 0cm; font-weight: medium"><BR> -</P> -<P STYLE="margin-bottom: 0cm; font-weight: medium"><BR> -</P> -<P STYLE="margin-bottom: 0cm; font-weight: medium"><FONT FACE="Verdana, sans-serif">Every -email you get will have the sender address <A HREF="mailto:bug...@de...">bug...@de...</A> -- you can use it as sort criteria within you email application.</FONT></P> -<P STYLE="margin-bottom: 0cm; font-weight: medium"><BR> -</P> -<P STYLE="margin-bottom: 0cm"><BR> -</P> -<P STYLE="margin-bottom: 0cm"><FONT FACE="Verdana, sans-serif"><FONT SIZE=4><B>View -bugs</B></FONT></FONT></P> -<P STYLE="margin-bottom: 0cm"><BR> -</P> -<P STYLE="margin-bottom: 0cm; font-weight: medium"><FONT FACE="Verdana, sans-serif"><FONT SIZE=3>The -bugs are listed in a table and the attributes are listed in the -following order: priority, id, number of bugnotes, category, -severity, status, last updated, and summary.</FONT></FONT></P> -<P STYLE="margin-bottom: 0cm; font-weight: medium"><BR> -</P> -<P STYLE="margin-bottom: 0cm; font-weight: medium"><IMG SRC="gra5.jpg" NAME="Grafik4" ALIGN=LEFT WIDTH=399 HEIGHT=219 BORDER=0><BR CLEAR=LEFT><BR> -</P> -<P STYLE="margin-bottom: 0cm; font-weight: medium"><BR> -</P> -<P STYLE="margin-bottom: 0cm; font-weight: medium"><FONT FACE="Verdana, sans-serif"><FONT SIZE=3>Each -(except for number of bugnotes) can be clicked on to sort by that -column. Clicking again will reverse the direction of the sort. The -default is to sort by id in descending order. </FONT></FONT> -</P> -<P STYLE="margin-top: 0.18cm; margin-bottom: 0.18cm"><SPAN STYLE="font-weight: medium"><FONT SIZE=3><FONT FACE="Verdana, sans-serif">The -bug id is a link that leads to a more detailed report about the bug. -Depending on what you have set in your Account Preferences you will -be sent to the simple or advanced view. You can also add Bugnotes -here. </FONT></FONT></SPAN> -</P> -<P STYLE="margin-top: 0.18cm; margin-bottom: 0.18cm; font-weight: medium"> -<FONT FACE="Verdana, sans-serif"><FONT SIZE=3>Each table row is color -coded according to the bug status. Here is an explanation of the -default colorings: </FONT></FONT> -</P> -<TABLE WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=0> - <COL WIDTH=24*> - <COL WIDTH=232*> - <TR VALIGN=TOP> - <TD WIDTH=9%> - <P><FONT FACE="Verdana, sans-serif"><FONT SIZE=3>red</FONT></FONT></P> - </TD> - <TD WIDTH=91%> - <P><FONT FACE="Verdana, sans-serif"><FONT SIZE=3>Bug is new</FONT></FONT></P> - </TD> - </TR> - <TR VALIGN=TOP> - <TD WIDTH=9%> - <P><FONT FACE="Verdana, sans-serif"><FONT SIZE=3>purple</FONT></FONT></P> - </TD> - <TD WIDTH=91%> - <P><FONT FACE="Verdana, sans-serif"><FONT SIZE=3>Feedback - bug - requires more feedback before work can proceed </FONT></FONT> - </P> - </TD> - </TR> - <TR VALIGN=TOP> - <TD WIDTH=9%> - <P><FONT FACE="Verdana, sans-serif"><FONT SIZE=3>organge</FONT></FONT></P> - </TD> - <TD WIDTH=91%> - <P><FONT FACE="Verdana, sans-serif"><FONT SIZE=3>Acknowledged - - lets the user know that the bug has been examined but probably not - by the proper developer</FONT></FONT></P> - </TD> - </TR> - <TR VALIGN=TOP> - <TD WIDTH=9%> - <P><FONT FACE="Verdana, sans-serif"><FONT SIZE=3>yellow</FONT></FONT></P> - </TD> - <TD WIDTH=91%> - <P><FONT FACE="Verdana, sans-serif"><FONT SIZE=3>Confirmed - bug - has been confirmed by an updater or developer </FONT></FONT> - </P> - </TD> - </TR> - <TR VALIGN=TOP> - <TD WIDTH=9%> - <P><FONT SIZE=3><FONT FACE="Verdana, sans-serif">blue</FONT></FONT></P> - </TD> - <TD WIDTH=91%> - <P><FONT FACE="Verdana, sans-serif"><FONT SIZE=3>Assigned – A - developer is working on the bug.</FONT></FONT></P> - </TD> - </TR> - <TR VALIGN=TOP> - <TD WIDTH=9%> - <P><FONT FACE="Verdana, sans-serif"><FONT SIZE=3>green</FONT></FONT></P> - </TD> - <TD WIDTH=91%> - <P><FONT FACE="Verdana, sans-serif"><FONT SIZE=3>Resolved - bug - should be fixed, waiting on confirmation of fix </FONT></FONT> - </P> - </TD> - </TR> - <TR VALIGN=TOP> - <TD WIDTH=9%> - <P><FONT FACE="Verdana, sans-serif"><FONT SIZE=3>gray</FONT></FONT></P> - </TD> - <TD WIDTH=91%> - <P><FONT FACE="Verdana, sans-serif"><FONT SIZE=3>Closed – Bug - is closed</FONT></FONT></P> - </TD> - </TR> -</TABLE> -<P STYLE="margin-bottom: 0cm; font-weight: medium"><BR> -</P> -<P STYLE="margin-bottom: 0cm"><BR> -</P> -<P STYLE="margin-bottom: 0cm"><FONT FACE="Verdana, sans-serif"><FONT SIZE=3><B>Used -bugstates</B></FONT></FONT></P> -<P STYLE="margin-bottom: 0cm"><BR> -</P> -<P STYLE="margin-bottom: 0cm"><SPAN STYLE="font-weight: medium"><FONT SIZE=3><FONT FACE="Verdana, sans-serif">These -bug states introduce some kind of overhead for a project like JEDI. -Therefore we normally use only the new, assigned, Resolved and closed -bug states. Each bug is new by default. If you want to work on it -please assign yourself to it (bugstate assigned). When you are done -simply resolve it. Close is a special state: In a normal commercial -environment someone would need to confirm the bugfix and close it -afterwards. Since we do not have the man power to have such a -complete QA cycle gray and green are both considered as resolved. If -one of the developer believes that the bugfix is wrong he can simply -reopen it. </FONT></FONT></SPAN> -</P> -<P STYLE="margin-bottom: 0cm"><BR> -</P> -<P STYLE="margin-bottom: 0cm; font-weight: medium"><BR> -</P> -<H2 STYLE="margin-top: 0cm; margin-bottom: 0cm"><FONT FACE="Thorndale, serif"><FONT SIZE=4>Editing -Bug</FONT></FONT></H2> -<P STYLE="margin-bottom: 0cm"><BR> -</P> -<P><FONT FACE="Verdana, sans-serif"><FONT SIZE=3>Update Bug Simple </FONT></FONT> -</P> -<P><FONT FACE="Verdana, sans-serif"><FONT SIZE=3>Here you can update -various bug fields. The Category, Severity, and Reproducibility -fields are editable but shouldn't be unless there is a gross -miscategorization. Also modifiable are the Assigned To, Priority, -Projection, ETA, Resolution, and Duplicate ID fields. </FONT></FONT> -</P> -<P><FONT FACE="Verdana, sans-serif"><FONT SIZE=3>Update bug advanced</FONT></FONT></P> -<P><FONT FACE="Verdana, sans-serif"><FONT SIZE=3>Projection and ETA -are the only fields that are only modifiable by the Update Bug -Advanced page. </FONT></FONT> -</P> -<P><FONT FACE="Verdana, sans-serif"><FONT SIZE=3>Assign To Me</FONT></FONT></P> -<P><FONT FACE="Verdana, sans-serif"><FONT SIZE=3>If you are a -developer you can use this as a one click assign to 'me'. This is for -convenience and for saving time. </FONT></FONT> -</P> -<P><FONT FACE="Verdana, sans-serif"><FONT SIZE=3>Resolve Bug</FONT></FONT></P> -<P><FONT FACE="Verdana, sans-serif"><FONT SIZE=3>This option on the -View Bugs page allows you to resolve the bug. It will lead you to a -page where you can set the resolution state and a duplicate id (if -applicable). After choosing that the user can choose to enter a -bugnote detailing the reason for the closure. The bug is then set to -the Resolved state. </FONT></FONT> -</P> -<P><FONT FACE="Verdana, sans-serif"><FONT SIZE=3>Delete Bug</FONT></FONT></P> -<P><FONT FACE="Verdana, sans-serif"><FONT SIZE=3>This option on the -View Bugs page allows you to delete an existing bug. This should only -be used on frivolous or test bugs. A confirmation screen will prompt -you if you really want to delete the bug. Please never delete a bug -unless it contains spam or other nonsense. Just the fact that a bug -entry is made up on wrong assumptes doesn't make it reasonable to -delete it.</FONT></FONT></P> -<HR> -<P STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif"><FONT SIZE=1 STYLE="font-size: 8pt">Copyright -© 2002 Project JEDI<BR>Parts of this document are taken from the -MantisBT introduction by .</FONT></FONT></P> -</BODY> -</HTML> \ No newline at end of file +<html> +<head> + <title>Project JEDI - JEDI Code Library - Redirecting...</title> + <meta http-equiv="refresh" content="1; url=http://wiki.delphi-jedi.org/index.php?title=IssueTracker" /> +</head> +<body> + Redirecting... +</body> +</html> Modified: trunk/website/delphi-jedi/documents/lgpl.html =================================================================== --- trunk/website/delphi-jedi/documents/lgpl.html 2010-11-03 14:01:53 UTC (rev 3413) +++ trunk/website/delphi-jedi/documents/lgpl.html 2010-11-07 20:02:16 UTC (rev 3414) @@ -1,264 +1,9 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> -<title>GNU LESSER GENERAL PUBLIC LICENSE</title> + <title>Project JEDI - JEDI Code Library - Redirecting...</title> + <meta http-equiv="refresh" content="1; url=http://wiki.delphi-jedi.org/index.php?title=GNU_Lesser_General_Public_License" /> </head> <body> -<h2>GNU LESSER GENERAL PUBLIC LICENSE</h2> - -<p>Version 2.1, February 1999</p> - -<pre> -Copyright (C) 1991, 1999 Free Software Foundation, Inc. -59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -Everyone is permitted to copy and distribute verbatim copies -of this license document, but changing it is not allowed. - -[This is the first released version of the Lesser GPL. It also counts - as the successor of the GNU Library Public License, version 2, hence - the version number 2.1.] -</pre> - -<h2><a name="SEC2" href="#TOC2">Preamble</a></h2> - -<p>The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and -change free software--to make sure the software is free for all its users.</p> - -<p>This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use -it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the -explanations below.</p> - -<p>When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software -(and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are -informed that you can do these things.</p> - -<p>To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain -responsibilities for you if you distribute copies of the library or if you modify it.</p> - -<p>For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can -get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the -library and recompiling it. And you must show them these terms so they know their rights.</p> - -<p>We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library.</p> - -<p>To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should -know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others.</p> - -<p>Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a -restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this -license.</p> - -<p>Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, -and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs.</p> - -<p>When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The -ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking -other code with the library.</p> - -<p>We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software -developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license -provides advantages in certain special circumstances.</p> - -<p>For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs -must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library -to free software only, so we use the Lesser General Public License.</p> - -<p>In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C -Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system.</p> - -<p>Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal -to run that program using a modified version of the Library.</p> - -<p>The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". -The former contains code derived from the library, whereas the latter must be combined with the library in order to run.</p> - -<h2><a name="SEC3" href="#TOC3">TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION</a></h2> - -<p><strong>0.</strong> This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be -distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you".</p> - -<p>A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form -executables.</p> - -<p>The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, -translation is included without limitation in the term "modification".)</p> - -<p>"Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to control compilation and installation of the library.</p> - -<p>Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and -output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on -what the Library does and what the program that uses the Library does.</p> - -<p><strong>1.</strong> You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on -each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License -along with the Library.</p> - -<p>You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.</p> - -<p><strong>2.</strong> You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the -terms of Section 1 above, provided that you also meet all of these conditions:</p> - -<ul> -<li><strong>a)</strong> The modified work must itself be a software library.</li> - -<li><strong>b)</strong> You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change.</li> - -<li><strong>c)</strong> You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License.</li> - -<li><strong>d)</strong> If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed -when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs -whatever part of its purpose remains meaningful. - -<p>(For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any -application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.)</p> - -<p>These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work -based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless -of who wrote it.</p> - -<p>Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of -derivative or collective works based on the Library.</p> - -<p>In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the -other work under the scope of this License.</p> -</li> -</ul> - -<p><strong>3.</strong> You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices -that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public -License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices.</p> - -<p>Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that -copy.</p> - -<p>This option is useful when you wish to copy part of the code of the Library into a program that is not a library.</p> - -<p><strong>4.</strong> You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided -that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software -interchange.</p> - -<p>If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not compelled to copy the source along with the object code.</p> - -<p><strong>5.</strong> A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses -the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License.</p> - -<p>However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that -uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables.</p> - -<p>When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code -is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by -law.</p> - -<p>If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.)</p> - -<p>Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself.</p> - -<p><strong>6.</strong> As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and -distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications.</p> - -<p>You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If -the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, -you must do one of these things:</p> - -<ul> -<li><strong>a)</strong> Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed -under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that -the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the -Library will not necessarily be able to recompile the application to use the modified definitions.)</li> - -<li><strong>b)</strong> Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's -computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified -version is interface-compatible with the version that the work was made with.</li> - -<li><strong>c)</strong> Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the -cost of performing this distribution.</li> - -<li><strong>d)</strong> If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place.</li> - -<li><strong>e)</strong> Verify that the user has already received a copy of these materials or that you have already sent this user a copy.</li> -</ul> - -<p>For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, -the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating -system on which the executable runs, unless that component itself accompanies the executable.</p> - -<p>It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you distribute.</p> - -<p><strong>7.</strong> You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and -distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these -two things:</p> - -<ul> -<li><strong>a)</strong> Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the -Sections above.</li> - -<li><strong>b)</strong> Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of -the same work.</li> -</ul> - -<p><strong>8.</strong> You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, -link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will -not have their licenses terminated so long as such parties remain in full compliance.</p> - -<p><strong>9.</strong> You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative -works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of -this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it.</p> - -<p><strong>10.</strong> Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link -with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for -enforcing compliance by third parties with this License.</p> - -<p><strong>11.</strong> If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by -court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy -simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not -permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain -entirely from distribution of the Library.</p> - -<p>If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply -in other circumstances.</p> - -<p>It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of -protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software -distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system -and a licensee cannot impose that choice.</p> - -<p>This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.</p> - -<p><strong>12.</strong> If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the -Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such -case, this License incorporates the limitation as if written in the body of this License.</p> - -<p><strong>13.</strong> The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the -present version, but may differ in detail to address new problems or concerns.</p> - -<p>Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the -terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version -ever published by the Free Software Foundation.</p> - -<p><strong>14.</strong> If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. -For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of -preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.</p> - -<p><strong>NO WARRANTY</strong></p> - -<p><strong>15.</strong> BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE -COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION.</p> - -<p><strong>16.</strong> IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED -ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED -OF THE POSSIBILITY OF SUCH DAMAGES.</p> - -<h2>END OF TERMS AND CONDITIONS</h2> + Redirecting... </body> </html> - Deleted: trunk/website/delphi-jedi/documents/lgpl.pdf =================================================================== (Binary files differ) Modified: trunk/website/delphi-jedi/documents/mpl11.html =================================================================== --- trunk/website/delphi-jedi/documents/mpl11.html 2010-11-03 14:01:53 UTC (rev 3413) +++ trunk/website/delphi-jedi/documents/mpl11.html 2010-11-07 20:02:16 UTC (rev 3414) @@ -1,394 +1,9 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> - <html> <head> - <title>Mozilla Public License (Version 1.1)</title> + <title>Project JEDI - JEDI Code Library - Redirecting...</title> + <meta http-equiv="refresh" content="1; url=http://wiki.delphi-jedi.org/index.php?title=Mozilla_Public_License" /> </head> - <body> - -<h1>Mozilla Public License 1.1</h1> -<p><b>1. Definitions.</b> -<ul><b>1.0.1. "Commercial Use" </b>means distribution or otherwise making -the Covered Code available to a third party. -<p><b>1.1. ''Contributor''</b> means each entity that creates or contributes -to the creation of Modifications. -<p><b>1.2. ''Contributor Version''</b> means the combination of the Original -Code, prior Modifications used by a Contributor, and the Modifications -made by that particular Contributor. -<p><b>1.3. ''Covered Code''</b> means the Original Code or Modifications -or the combination of the Original Code and Modifications, in each case -including portions thereof<b>.</b> -<p><b>1.4. ''Electronic Distribution Mechanism''</b> means a mechanism -generally accepted in the software development community for the electronic -transfer of data. -<p><b>1.5. ''Executable''</b> means Covered Code in any form other than -Source Code. -<p><b>1.6. ''Initial Developer''</b> means the individual or entity identified -as the Initial Developer in the Source Code notice required by <b>Exhibit -A</b>. -<p><b>1.7. ''Larger Work''</b> means a work which combines Covered Code -or portions thereof with code not governed by the terms of this License. -<p><b>1.8. ''License''</b> means this document. -<p><b>1.8.1. "Licensable"</b> means having the right to grant, to the maximum -extent possible, whether at the time of the initial grant or subsequently -acquired, any and all of the rights conveyed herein. -<p><b>1.9. ''Modifications''</b> means any addition to or deletion from -the substance or structure of either the Original Code or any previous -Modifications. When Covered Code is released as a series of files, a Modification -is: -<ul><b>A.</b> Any addition to or deletion from the contents of a file containing -Original Code or previous Modifications. -<p><b>B.</b> Any new file that contains any part of the Original Code or -previous Modifications. -<br> </ul> -<b>1.10. ''Original Code''</b> means Source Code of computer software code -which is described in the Source Code notice required by <b>Exhibit A</b> -as Original Code, and which, at the time of its release under this License -is not already Covered Code governed by this License. -<p><b>1.10.1. "Patent Claims"</b> means any patent claim(s), now owned -or hereafter acquired, including without limitation, method, process, -and apparatus claims, in any patent Licensable by grantor. -<p><b>1.11. ''Source Code''</b> means the preferred form of the Covered -Code for making modifications to it, including all modules it contains, -plus any associated interface definition files, scripts used to control -compilation and installation of an Executable, or source code differential -comparisons against either the Original Code or another well known, available -Covered Code of the Contributor's choice. The Source Code can be in a compressed -or archival form, provided the appropriate decompression or de-archiving -software is widely available for no charge. -<p><b>1.12. "You'' (or "Your") </b> means an individual or a legal -entity exercising rights under, and complying with all of the terms of, -this License or a future version of this License issued under Section 6.1. -For legal entities, "You'' includes any entity which controls, is controlled -by, or is under common control with You. For purposes of this definition, -"control'' means (a) the power, direct or indirect, to cause the direction -or management of such entity, whether by contract or otherwise, or (b) -ownership of more than fifty percent (50%) of the outstanding shares or -beneficial ownership of such entity.</ul> -<b>2. Source Code License.</b> -<ul><b>2.1. The Initial Developer Grant.</b> -<br>The Initial Developer hereby grants You a world-wide, royalty-free, -non-exclusive license, subject to third party intellectual property claims: -<ul><b>(a)</b> <b> </b>under intellectual property rights (other than -patent or trademark) Licensable by Initial Developer to use, reproduce, -modify, display, perform, sublicense and distribute the Original Code (or -portions thereof) with or without Modifications, and/or as part of a Larger -Work; and -<p><b>(b)</b> under Patents Claims infringed by the making, using or selling -of Original Code, to make, have made, use, practice, sell, and offer for -sale, and/or otherwise dispose of the Original Code (or portions thereof). -<ul> -<ul> </ul> -</ul> -<b>(c) </b>the licenses granted in this Section 2.1(a) and (b) are effective -on the date Initial Developer first distributes Original Code under the -terms of this License. -<p><b>(d) </b>Notwithstanding Section 2.1(b) above, no patent license is -granted: 1) for code that You delete from the Original Code; 2) separate -from the Original Code; or 3) for infringements caused by: i) the -modification of the Original Code or ii) the combination of the Original -Code with other software or devices. -<br> </ul> -<b>2.2. Contributor Grant.</b> -<br>Subject to third party intellectual property claims, each Contributor -hereby grants You a world-wide, royalty-free, non-exclusive license -<ul> -<br><b>(a)</b> <b> </b>under intellectual property rights (other than -patent or trademark) Licensable by Contributor, to use, reproduce, modify, -display, perform, sublicense and distribute the Modifications created by -such Contributor (or portions thereof) either on an unmodified basis, with -other Modifications, as Covered Code and/or as part of a Larger Work; and -<p><b>(b)</b> under Patent Claims infringed by the making, using, or selling -of Modifications made by that Contributor either alone and/or in<font color="#000000"> -combination with its Contributor Version (or portions of such combination), -to make, use, sell, offer for sale, have made, and/or otherwise dispose -of: 1) Modifications made by that Contributor (or portions thereof); and -2) the combination of Modifications made by that Contributor with -its Contributor Version (or portions of such combination).</font> -<p><b>(c) </b>the licenses granted in Sections 2.2(a) and 2.2(b) are effective -on the date Contributor first makes Commercial Use of the Covered Code. -<p><b>(d) </b> Notwithstanding Section 2.2(b) above, no -patent license is granted: 1) for any code that Contributor has deleted -from the Contributor Version; 2) separate from the Contributor Version; -3) for infringements caused by: i) third party modifications of Contributor -Version or ii) the combination of Modifications made by that Contributor -with other software (except as part of the Contributor Version) or -other devices; or 4) under Patent Claims infringed by Covered Code in the -absence of Modifications made by that Contributor.</ul> -</ul> - -<p><br><b>3. Distribution Obligations.</b> -<ul><b>3.1. Application of License.</b> -<br>The Modifications which You create or to which You contribute are governed -by the terms of this License, including without limitation Section <b>2.2</b>. -The Source Code version of Covered Code may be distributed only under the -terms of this License or a future version of this License released under -Section <b>6.1</b>, and You must include a copy of this License with every -copy of the Source Code You distribute. You may not offer or impose any -terms on any Source Code version that alters or restricts the applicable -version of this License or the recipients' rights hereunder. However, You -may include an additional document offering the additional rights described -in Section <b>3.5</b>. -<p><b>3.2. Availability of Source Code.</b> -<br>Any Modification which You create or to which You contribute must be -made available in Source Code form under the terms of this License either -on the same media as an Executable version or via an accepted Electronic -Distribution Mechanism to anyone to whom you made an Executable version -available; and if made available via Electronic Distribution Mechanism, -must remain available for at least twelve (12) months after the date it -initially became available, or at least six (6) months after a subsequent -version of that particular Modification has been made available to such -recipients. You are responsible for ensuring that the Source Code version -remains available even if the Electronic Distribution Mechanism is maintained -by a third party. -<p><b>3.3. Description of Modifications.</b> -<br>You must cause all Covered Code to which You contribute to contain -a file documenting the changes You made to create that Covered Code and -the date of any change. You must include a prominent statement that the -Modification is derived, directly or indirectly, from Original Code provided -by the Initial Developer and including the name of the Initial Developer -in (a) the Source Code, and (b) in any notice in an Executable version -or related documentation in which You describe the origin or ownership -of the Covered Code. -<p><b>3.4. Intellectual Property Matters</b> -<ul><b>(a) Third Party Claims</b>. -<br>If Contributor has knowledge that a license under a third party's intellectual -property rights is required to exercise the rights granted by such Contributor -under Sections 2.1 or 2.2, Con... [truncated message content] |
From: <ou...@us...> - 2010-11-03 14:02:01
|
Revision: 3413 http://jcl.svn.sourceforge.net/jcl/?rev=3413&view=rev Author: outchy Date: 2010-11-03 14:01:53 +0000 (Wed, 03 Nov 2010) Log Message: ----------- example cleanup. remove unsupported versions for Delphi/C++Builder, introduce new versions. Modified Paths: -------------- trunk/jcl/examples/common/containers/algorithms/AlgorithmsExample.dof trunk/jcl/examples/common/containers/algorithms/TestMoveArray.dof trunk/jcl/examples/common/containers/hashing/HashingExample.dof trunk/jcl/examples/common/containers/lists/ListExample.dof trunk/jcl/examples/common/containers/performance/ContainerPerformance.dof trunk/jcl/examples/common/containers/trees/TreeExample.dof trunk/jcl/examples/common/containers/trees/TreeStructure.dof trunk/jcl/examples/common/expreval/ExprEvalExample.dof trunk/jcl/examples/common/filesearch/FileSearchDemo.dof trunk/jcl/examples/common/graphics/ClipLineDemo.dof trunk/jcl/examples/common/graphics/StretchGraphicExample.dof trunk/jcl/examples/common/multimedia/MidiOutExample.dof trunk/jcl/examples/common/numformat/NumFormatExample.dof trunk/jcl/examples/common/pcre/PCREDemo.dof trunk/jcl/examples/common/rtti/RTTIExample.dof trunk/jcl/examples/common/sysinfo/EnvironmentExample.dof trunk/jcl/examples/common/textconverter/TextConverter.dof trunk/jcl/examples/common/textreader/TextReaderExample.dof trunk/jcl/examples/common/unitversioning/UnitVersioningTest.dof trunk/jcl/examples/common/unitversioning/UnitVersioningTestDLL.dof trunk/jcl/examples/windows/appinst/AppInstExample.dof trunk/jcl/examples/windows/appinst/SingleInstExample.dof trunk/jcl/examples/windows/asuser/CreateProcAsUserExample.dof trunk/jcl/examples/windows/clr/ClrDemo.dof trunk/jcl/examples/windows/compression/archive/ArchiveDemo.dof trunk/jcl/examples/windows/console/ConsoleExamples.dof trunk/jcl/examples/windows/debug/framestrack/FramesTrackExample.dof trunk/jcl/examples/windows/debug/mttest/JclDebugMTTest.dof trunk/jcl/examples/windows/debug/sourceloc/SourceLocExample.dof trunk/jcl/examples/windows/debug/stacktrack/StackTrackDLLsComLibrary.dof trunk/jcl/examples/windows/debug/stacktrack/StackTrackDLLsDynamicLibrary.dof trunk/jcl/examples/windows/debug/stacktrack/StackTrackDLLsExample.dof trunk/jcl/examples/windows/debug/stacktrack/StackTrackDLLsStaticLibrary.dof trunk/jcl/examples/windows/debug/stacktrack/StackTrackExample.dof trunk/jcl/examples/windows/debug/threadexcept/ThreadExceptExample.dof trunk/jcl/examples/windows/debug/tools/MakeJclDbg.dof trunk/jcl/examples/windows/debug/tools/MapToJdbg.dof trunk/jcl/examples/windows/debug/tools/TlbToMap.dof trunk/jcl/examples/windows/delphitools/dependencyviewer/DependView.dof trunk/jcl/examples/windows/delphitools/peviewer/PeViewer.dof trunk/jcl/examples/windows/delphitools/resfix/ResFix.dof trunk/jcl/examples/windows/delphitools/screenjpg/ScreenJPG.dof trunk/jcl/examples/windows/delphitools/toolhelpview/ToolHelpViewer.dof trunk/jcl/examples/windows/filemapping/FileMapping.dof trunk/jcl/examples/windows/filesummary/FileSummaryExample.dof trunk/jcl/examples/windows/fileversion/VerInfoExample.dof trunk/jcl/examples/windows/lanman/LanManExample.dof trunk/jcl/examples/windows/locales/LocalesExample.dof trunk/jcl/examples/windows/mapi/MapiExample.dof trunk/jcl/examples/windows/mapi/ReadMailExample.dof trunk/jcl/examples/windows/multimedia/MultiMediaExample.dof trunk/jcl/examples/windows/ntfs/JEDISoftLinks.dof trunk/jcl/examples/windows/ntservice/NtSvcExample.dof trunk/jcl/examples/windows/peimage/ApiHookExample.dof trunk/jcl/examples/windows/peimage/PeFuncExample.dof trunk/jcl/examples/windows/peimage/UnmangleNameExample.dof trunk/jcl/examples/windows/registry/RegistryExample.dof trunk/jcl/examples/windows/structstorage/StructStorageExample.dof trunk/jcl/examples/windows/sysinfo/SysInfoExample.dof trunk/jcl/examples/windows/tasks/TaskDemo.dof trunk/jcl/examples/windows/timezones/TimeZoneDemo.dof Added Paths: ----------- trunk/jcl/examples/D12.exc trunk/jcl/examples/D14.exc trunk/jcl/examples/D15.exc trunk/jcl/examples/windows/debug/reportconverter/ExceptionReportConverter.dof trunk/jcl/examples/windows/widestring/WideStringExample.dof Removed Paths: ------------- trunk/jcl/examples/C10.exc trunk/jcl/examples/C5.exc trunk/jcl/examples/D5.exc Deleted: trunk/jcl/examples/C10.exc =================================================================== --- trunk/jcl/examples/C10.exc 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/C10.exc 2010-11-03 14:01:53 UTC (rev 3413) @@ -1 +0,0 @@ -ExtraRequirements.exc Deleted: trunk/jcl/examples/C5.exc =================================================================== --- trunk/jcl/examples/C5.exc 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/C5.exc 2010-11-03 14:01:53 UTC (rev 3413) @@ -1 +0,0 @@ -ExtraRequirements.exc Copied: trunk/jcl/examples/D12.exc (from rev 3412, trunk/jcl/examples/D11.exc) =================================================================== --- trunk/jcl/examples/D12.exc (rev 0) +++ trunk/jcl/examples/D12.exc 2010-11-03 14:01:53 UTC (rev 3413) @@ -0,0 +1 @@ +ExtraRequirements.exc Copied: trunk/jcl/examples/D14.exc (from rev 3412, trunk/jcl/examples/D11.exc) =================================================================== --- trunk/jcl/examples/D14.exc (rev 0) +++ trunk/jcl/examples/D14.exc 2010-11-03 14:01:53 UTC (rev 3413) @@ -0,0 +1 @@ +ExtraRequirements.exc Copied: trunk/jcl/examples/D15.exc (from rev 3412, trunk/jcl/examples/D11.exc) =================================================================== --- trunk/jcl/examples/D15.exc (rev 0) +++ trunk/jcl/examples/D15.exc 2010-11-03 14:01:53 UTC (rev 3413) @@ -0,0 +1 @@ +ExtraRequirements.exc Deleted: trunk/jcl/examples/D5.exc =================================================================== --- trunk/jcl/examples/D5.exc 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/D5.exc 2010-11-03 14:01:53 UTC (rev 3413) @@ -1 +0,0 @@ -ExtraRequirements.exc Modified: trunk/jcl/examples/common/containers/algorithms/AlgorithmsExample.dof =================================================================== --- trunk/jcl/examples/common/containers/algorithms/AlgorithmsExample.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/common/containers/algorithms/AlgorithmsExample.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,2 +1,3 @@ [Directories] OutputDir=..\..\..\..\bin +UsePackages=0 Modified: trunk/jcl/examples/common/containers/algorithms/TestMoveArray.dof =================================================================== --- trunk/jcl/examples/common/containers/algorithms/TestMoveArray.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/common/containers/algorithms/TestMoveArray.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,2 +1,3 @@ [Directories] OutputDir=..\..\..\..\bin +UsePackages=0 Modified: trunk/jcl/examples/common/containers/hashing/HashingExample.dof =================================================================== --- trunk/jcl/examples/common/containers/hashing/HashingExample.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/common/containers/hashing/HashingExample.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,76 +1,3 @@ -[FileVersion] -Version=6.0 -[Compiler] -A=8 -B=0 -C=1 -D=1 -E=0 -F=0 -G=1 -H=1 -I=1 -J=0 -K=0 -L=1 -M=0 -N=1 -O=1 -P=1 -Q=0 -R=0 -S=0 -T=0 -U=0 -V=1 -W=0 -X=1 -Y=1 -Z=1 -ShowHints=1 -ShowWarnings=1 -UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -[Linker] -MapFile=0 -OutputObjs=0 -ConsoleApp=1 -DebugInfo=0 -RemoteSymbols=0 -MinStackSize=16384 -MaxStackSize=1048576 -ImageBase=4194304 -ExeDescription= [Directories] OutputDir=..\..\..\..\bin -UnitOutputDir= -PackageDLLOutputDir= -PackageDCPOutputDir= -SearchPath= -Packages= -Conditionals= -DebugSourceDirs= UsePackages=0 -[Parameters] -RunParams= -HostApplication= -Launcher= -UseLauncher=0 -DebugCWD= -[Language] -ActiveLang= -ProjectLang= -RootDir= -[Version Info] -IncludeVerInfo=0 -AutoIncBuild=0 -MajorVer=1 -MinorVer=0 -Release=0 -Build=0 -Debug=0 -PreRelease=0 -Special=0 -Private=0 -DLL=0 -Locale=1031 -CodePage=1252 Modified: trunk/jcl/examples/common/containers/lists/ListExample.dof =================================================================== --- trunk/jcl/examples/common/containers/lists/ListExample.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/common/containers/lists/ListExample.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,76 +1,3 @@ -[FileVersion] -Version=6.0 -[Compiler] -A=8 -B=0 -C=1 -D=1 -E=0 -F=0 -G=1 -H=1 -I=1 -J=0 -K=0 -L=1 -M=0 -N=1 -O=1 -P=1 -Q=0 -R=0 -S=0 -T=0 -U=0 -V=1 -W=0 -X=1 -Y=1 -Z=1 -ShowHints=1 -ShowWarnings=1 -UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -[Linker] -MapFile=0 -OutputObjs=0 -ConsoleApp=1 -DebugInfo=0 -RemoteSymbols=0 -MinStackSize=16384 -MaxStackSize=1048576 -ImageBase=4194304 -ExeDescription= [Directories] OutputDir=..\..\..\..\bin -UnitOutputDir= -PackageDLLOutputDir= -PackageDCPOutputDir= -SearchPath= -Packages= -Conditionals= -DebugSourceDirs= UsePackages=0 -[Parameters] -RunParams= -HostApplication= -Launcher= -UseLauncher=0 -DebugCWD= -[Language] -ActiveLang= -ProjectLang= -RootDir= -[Version Info] -IncludeVerInfo=0 -AutoIncBuild=0 -MajorVer=1 -MinorVer=0 -Release=0 -Build=0 -Debug=0 -PreRelease=0 -Special=0 -Private=0 -DLL=0 -Locale=1031 -CodePage=1252 Modified: trunk/jcl/examples/common/containers/performance/ContainerPerformance.dof =================================================================== --- trunk/jcl/examples/common/containers/performance/ContainerPerformance.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/common/containers/performance/ContainerPerformance.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] OutputDir=..\..\..\..\bin - +UsePackages=0 Modified: trunk/jcl/examples/common/containers/trees/TreeExample.dof =================================================================== --- trunk/jcl/examples/common/containers/trees/TreeExample.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/common/containers/trees/TreeExample.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,2 +1,3 @@ [Directories] OutputDir=..\..\..\..\bin +UsePackages=0 Modified: trunk/jcl/examples/common/containers/trees/TreeStructure.dof =================================================================== --- trunk/jcl/examples/common/containers/trees/TreeStructure.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/common/containers/trees/TreeStructure.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,2 +1,3 @@ [Directories] OutputDir=..\..\..\..\bin +UsePackages=0 Modified: trunk/jcl/examples/common/expreval/ExprEvalExample.dof =================================================================== --- trunk/jcl/examples/common/expreval/ExprEvalExample.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/common/expreval/ExprEvalExample.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] OutputDir=..\..\..\bin - +UsePackages=0 Modified: trunk/jcl/examples/common/filesearch/FileSearchDemo.dof =================================================================== --- trunk/jcl/examples/common/filesearch/FileSearchDemo.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/common/filesearch/FileSearchDemo.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,2 +1,3 @@ [Directories] -OutputDir=../../../bin +OutputDir=..\..\..\bin +UsePackages=0 Modified: trunk/jcl/examples/common/graphics/ClipLineDemo.dof =================================================================== --- trunk/jcl/examples/common/graphics/ClipLineDemo.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/common/graphics/ClipLineDemo.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] -OutputDir=../../../bin - +OutputDir=..\..\..\bin +UsePackages=0 Modified: trunk/jcl/examples/common/graphics/StretchGraphicExample.dof =================================================================== --- trunk/jcl/examples/common/graphics/StretchGraphicExample.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/common/graphics/StretchGraphicExample.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] OutputDir=..\..\..\bin - +UsePackages=0 Modified: trunk/jcl/examples/common/multimedia/MidiOutExample.dof =================================================================== --- trunk/jcl/examples/common/multimedia/MidiOutExample.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/common/multimedia/MidiOutExample.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] OutputDir=..\..\..\bin - +UsePackages=0 Modified: trunk/jcl/examples/common/numformat/NumFormatExample.dof =================================================================== --- trunk/jcl/examples/common/numformat/NumFormatExample.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/common/numformat/NumFormatExample.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,2 +1,3 @@ [Directories] -OutputDir=../../../bin +OutputDir=..\..\..\bin +UsePackages=0 Modified: trunk/jcl/examples/common/pcre/PCREDemo.dof =================================================================== --- trunk/jcl/examples/common/pcre/PCREDemo.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/common/pcre/PCREDemo.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,2 +1,3 @@ [Directories] OutputDir=..\..\..\bin +UsePackages=0 Modified: trunk/jcl/examples/common/rtti/RTTIExample.dof =================================================================== --- trunk/jcl/examples/common/rtti/RTTIExample.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/common/rtti/RTTIExample.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] OutputDir=..\..\..\bin - +UsePackages=0 Modified: trunk/jcl/examples/common/sysinfo/EnvironmentExample.dof =================================================================== --- trunk/jcl/examples/common/sysinfo/EnvironmentExample.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/common/sysinfo/EnvironmentExample.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] -OutputDir=../../../bin - +OutputDir=..\..\..\bin +UsePackages=0 Modified: trunk/jcl/examples/common/textconverter/TextConverter.dof =================================================================== --- trunk/jcl/examples/common/textconverter/TextConverter.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/common/textconverter/TextConverter.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] -OutputDir=../../../bin - +OutputDir=..\..\..\bin +UsePackages=0 Modified: trunk/jcl/examples/common/textreader/TextReaderExample.dof =================================================================== --- trunk/jcl/examples/common/textreader/TextReaderExample.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/common/textreader/TextReaderExample.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] OutputDir=..\..\..\bin - +UsePackages=0 Modified: trunk/jcl/examples/common/unitversioning/UnitVersioningTest.dof =================================================================== --- trunk/jcl/examples/common/unitversioning/UnitVersioningTest.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/common/unitversioning/UnitVersioningTest.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,2 +1,3 @@ [Directories] -OutputDir=..\..\..\bin \ No newline at end of file +OutputDir=..\..\..\bin +UsePackages=0 Modified: trunk/jcl/examples/common/unitversioning/UnitVersioningTestDLL.dof =================================================================== --- trunk/jcl/examples/common/unitversioning/UnitVersioningTestDLL.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/common/unitversioning/UnitVersioningTestDLL.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,2 +1,3 @@ [Directories] -OutputDir=..\..\..\bin \ No newline at end of file +OutputDir=..\..\..\bin +UsePackages=0 Modified: trunk/jcl/examples/windows/appinst/AppInstExample.dof =================================================================== --- trunk/jcl/examples/windows/appinst/AppInstExample.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/appinst/AppInstExample.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] OutputDir=..\..\..\bin - +UsePackages=0 Modified: trunk/jcl/examples/windows/appinst/SingleInstExample.dof =================================================================== --- trunk/jcl/examples/windows/appinst/SingleInstExample.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/appinst/SingleInstExample.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] OutputDir=..\..\..\bin - +UsePackages=0 Modified: trunk/jcl/examples/windows/asuser/CreateProcAsUserExample.dof =================================================================== --- trunk/jcl/examples/windows/asuser/CreateProcAsUserExample.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/asuser/CreateProcAsUserExample.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] OutputDir=..\..\..\bin - +UsePackages=0 Modified: trunk/jcl/examples/windows/clr/ClrDemo.dof =================================================================== --- trunk/jcl/examples/windows/clr/ClrDemo.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/clr/ClrDemo.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] OutputDir=..\..\..\bin - +UsePackages=0 Modified: trunk/jcl/examples/windows/compression/archive/ArchiveDemo.dof =================================================================== --- trunk/jcl/examples/windows/compression/archive/ArchiveDemo.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/compression/archive/ArchiveDemo.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] OutputDir=..\..\..\..\bin - +UsePackages=0 Modified: trunk/jcl/examples/windows/console/ConsoleExamples.dof =================================================================== --- trunk/jcl/examples/windows/console/ConsoleExamples.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/console/ConsoleExamples.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] OutputDir=..\..\..\bin - +UsePackages=0 Modified: trunk/jcl/examples/windows/debug/framestrack/FramesTrackExample.dof =================================================================== --- trunk/jcl/examples/windows/debug/framestrack/FramesTrackExample.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/debug/framestrack/FramesTrackExample.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] OutputDir=..\..\..\..\bin - +UsePackages=0 Modified: trunk/jcl/examples/windows/debug/mttest/JclDebugMTTest.dof =================================================================== --- trunk/jcl/examples/windows/debug/mttest/JclDebugMTTest.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/debug/mttest/JclDebugMTTest.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] OutputDir=..\..\..\..\bin - +UsePackages=0 Added: trunk/jcl/examples/windows/debug/reportconverter/ExceptionReportConverter.dof =================================================================== --- trunk/jcl/examples/windows/debug/reportconverter/ExceptionReportConverter.dof (rev 0) +++ trunk/jcl/examples/windows/debug/reportconverter/ExceptionReportConverter.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -0,0 +1,3 @@ +[Directories] +OutputDir=..\..\..\..\bin +UsePackages=0 Property changes on: trunk/jcl/examples/windows/debug/reportconverter/ExceptionReportConverter.dof ___________________________________________________________________ Added: svn:eol-style + native Modified: trunk/jcl/examples/windows/debug/sourceloc/SourceLocExample.dof =================================================================== --- trunk/jcl/examples/windows/debug/sourceloc/SourceLocExample.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/debug/sourceloc/SourceLocExample.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] OutputDir=..\..\..\..\bin - +UsePackages=0 Modified: trunk/jcl/examples/windows/debug/stacktrack/StackTrackDLLsComLibrary.dof =================================================================== --- trunk/jcl/examples/windows/debug/stacktrack/StackTrackDLLsComLibrary.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/debug/stacktrack/StackTrackDLLsComLibrary.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] OutputDir=..\..\..\..\bin -Conditionals=HOOK_DLL_EXCEPTIONS +UsePackages=0 Modified: trunk/jcl/examples/windows/debug/stacktrack/StackTrackDLLsDynamicLibrary.dof =================================================================== --- trunk/jcl/examples/windows/debug/stacktrack/StackTrackDLLsDynamicLibrary.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/debug/stacktrack/StackTrackDLLsDynamicLibrary.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] OutputDir=..\..\..\..\bin -Conditionals=HOOK_DLL_EXCEPTIONS +UsePackages=0 Modified: trunk/jcl/examples/windows/debug/stacktrack/StackTrackDLLsExample.dof =================================================================== --- trunk/jcl/examples/windows/debug/stacktrack/StackTrackDLLsExample.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/debug/stacktrack/StackTrackDLLsExample.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] OutputDir=..\..\..\..\bin -Conditionals=HOOK_DLL_EXCEPTIONS +UsePackages=0 Modified: trunk/jcl/examples/windows/debug/stacktrack/StackTrackDLLsStaticLibrary.dof =================================================================== --- trunk/jcl/examples/windows/debug/stacktrack/StackTrackDLLsStaticLibrary.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/debug/stacktrack/StackTrackDLLsStaticLibrary.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] OutputDir=..\..\..\..\bin -Conditionals=HOOK_DLL_EXCEPTIONS +UsePackages=0 Modified: trunk/jcl/examples/windows/debug/stacktrack/StackTrackExample.dof =================================================================== --- trunk/jcl/examples/windows/debug/stacktrack/StackTrackExample.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/debug/stacktrack/StackTrackExample.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] OutputDir=..\..\..\..\bin -Conditionals=HOOK_DLL_EXCEPTIONS +UsePackages=0 Modified: trunk/jcl/examples/windows/debug/threadexcept/ThreadExceptExample.dof =================================================================== --- trunk/jcl/examples/windows/debug/threadexcept/ThreadExceptExample.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/debug/threadexcept/ThreadExceptExample.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,4 +1,3 @@ [Directories] -OutputDir=../../../../bin - - +OutputDir=..\..\..\..\bin +UsePackages=0 Modified: trunk/jcl/examples/windows/debug/tools/MakeJclDbg.dof =================================================================== --- trunk/jcl/examples/windows/debug/tools/MakeJclDbg.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/debug/tools/MakeJclDbg.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] OutputDir=..\..\..\..\bin - +UsePackages=0 Modified: trunk/jcl/examples/windows/debug/tools/MapToJdbg.dof =================================================================== --- trunk/jcl/examples/windows/debug/tools/MapToJdbg.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/debug/tools/MapToJdbg.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] OutputDir=..\..\..\..\bin - +UsePackages=0 Modified: trunk/jcl/examples/windows/debug/tools/TlbToMap.dof =================================================================== --- trunk/jcl/examples/windows/debug/tools/TlbToMap.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/debug/tools/TlbToMap.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] OutputDir=..\..\..\..\bin - +UsePackages=0 Modified: trunk/jcl/examples/windows/delphitools/dependencyviewer/DependView.dof =================================================================== --- trunk/jcl/examples/windows/delphitools/dependencyviewer/DependView.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/delphitools/dependencyviewer/DependView.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,134 +1,3 @@ -[FileVersion] -Version=7.0 -[Compiler] -A=8 -B=0 -C=1 -D=1 -E=0 -F=0 -G=1 -H=1 -I=1 -J=0 -K=0 -L=1 -M=0 -N=1 -O=1 -P=1 -Q=0 -R=0 -S=0 -T=0 -U=0 -V=1 -W=0 -X=1 -Y=1 -Z=1 -ShowHints=1 -ShowWarnings=1 -UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -NamespacePrefix= -SymbolDeprecated=1 -SymbolLibrary=1 -SymbolPlatform=1 -UnitLibrary=1 -UnitPlatform=1 -UnitDeprecated=1 -HResultCompat=1 -HidingMember=1 -HiddenVirtual=1 -Garbage=1 -BoundsError=1 -ZeroNilCompat=1 -StringConstTruncated=1 -ForLoopVarVarPar=1 -TypedConstVarPar=1 -AsgToTypedConst=1 -CaseLabelRange=1 -ForVariable=1 -ConstructingAbstract=1 -ComparisonFalse=1 -ComparisonTrue=1 -ComparingSignedUnsigned=1 -CombiningSignedUnsigned=1 -UnsupportedConstruct=1 -FileOpen=1 -FileOpenUnitSrc=1 -BadGlobalSymbol=1 -DuplicateConstructorDestructor=1 -InvalidDirective=1 -PackageNoLink=1 -PackageThreadVar=1 -ImplicitImport=1 -HPPEMITIgnored=1 -NoRetVal=1 -UseBeforeDef=1 -ForLoopVarUndef=1 -UnitNameMismatch=1 -NoCFGFileFound=1 -MessageDirective=1 -ImplicitVariants=1 -UnicodeToLocale=1 -LocaleToUnicode=1 -ImagebaseMultiple=1 -SuspiciousTypecast=1 -PrivatePropAccessor=1 -UnsafeType=0 -UnsafeCode=0 -UnsafeCast=0 -[Linker] -MapFile=0 -OutputObjs=0 -ConsoleApp=1 -DebugInfo=0 -RemoteSymbols=0 -MinStackSize=16384 -MaxStackSize=1048576 -ImageBase=4194304 -ExeDescription= [Directories] OutputDir=..\..\..\..\bin -UnitOutputDir= -PackageDLLOutputDir= -PackageDCPOutputDir= -SearchPath=..\..\..\..\source\include;..\..\..\..\source\common;..\..\..\..\source\windows;..\..\..\..\source\vcl -Conditionals= -DebugSourceDirs= UsePackages=0 -[Parameters] -RunParams= -HostApplication= -Launcher= -UseLauncher=0 -DebugCWD= -[Language] -ActiveLang= -ProjectLang= -RootDir= -[Version Info] -IncludeVerInfo=1 -AutoIncBuild=0 -MajorVer=0 -MinorVer=5 -Release=4 -Build=9 -Debug=0 -PreRelease=0 -Special=0 -Private=0 -DLL=0 -Locale=1033 -CodePage=1252 -[Version Info Keys] -CompanyName=Petr Vones -FileDescription=Dependency Viewer -FileVersion=0.5.4.9 -InternalName=DEPENDVIEW -LegalCopyright=(c) 2002 Petr Vones -LegalTrademarks= -OriginalFilename=DEPENDVIEW.EXE -ProductName=Dependency Viewer -ProductVersion=0.5.4 Modified: trunk/jcl/examples/windows/delphitools/peviewer/PeViewer.dof =================================================================== --- trunk/jcl/examples/windows/delphitools/peviewer/PeViewer.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/delphitools/peviewer/PeViewer.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,134 +1,3 @@ -[FileVersion] -Version=7.0 -[Compiler] -A=8 -B=0 -C=1 -D=1 -E=0 -F=0 -G=1 -H=1 -I=1 -J=0 -K=0 -L=1 -M=0 -N=1 -O=1 -P=1 -Q=0 -R=0 -S=0 -T=0 -U=0 -V=1 -W=0 -X=1 -Y=1 -Z=1 -ShowHints=1 -ShowWarnings=1 -UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -NamespacePrefix= -SymbolDeprecated=1 -SymbolLibrary=1 -SymbolPlatform=1 -UnitLibrary=1 -UnitPlatform=1 -UnitDeprecated=1 -HResultCompat=1 -HidingMember=1 -HiddenVirtual=1 -Garbage=1 -BoundsError=1 -ZeroNilCompat=1 -StringConstTruncated=1 -ForLoopVarVarPar=1 -TypedConstVarPar=1 -AsgToTypedConst=1 -CaseLabelRange=1 -ForVariable=1 -ConstructingAbstract=1 -ComparisonFalse=1 -ComparisonTrue=1 -ComparingSignedUnsigned=1 -CombiningSignedUnsigned=1 -UnsupportedConstruct=1 -FileOpen=1 -FileOpenUnitSrc=1 -BadGlobalSymbol=1 -DuplicateConstructorDestructor=1 -InvalidDirective=1 -PackageNoLink=1 -PackageThreadVar=1 -ImplicitImport=1 -HPPEMITIgnored=1 -NoRetVal=1 -UseBeforeDef=1 -ForLoopVarUndef=1 -UnitNameMismatch=1 -NoCFGFileFound=1 -MessageDirective=1 -ImplicitVariants=1 -UnicodeToLocale=1 -LocaleToUnicode=1 -ImagebaseMultiple=1 -SuspiciousTypecast=1 -PrivatePropAccessor=1 -UnsafeType=0 -UnsafeCode=0 -UnsafeCast=0 -[Linker] -MapFile=0 -OutputObjs=0 -ConsoleApp=1 -DebugInfo=0 -RemoteSymbols=0 -MinStackSize=16384 -MaxStackSize=1048576 -ImageBase=4194304 -ExeDescription= [Directories] OutputDir=..\..\..\..\bin -UnitOutputDir= -PackageDLLOutputDir= -PackageDCPOutputDir= -SearchPath=..\..\..\..\source\ignore;..\..\..\..\source\common;..\..\..\..\source\windows;..\..\..\..\source\vcl -Conditionals= -DebugSourceDirs= UsePackages=0 -[Parameters] -RunParams= -HostApplication= -Launcher= -UseLauncher=0 -DebugCWD= -[Language] -ActiveLang= -ProjectLang= -RootDir= -[Version Info] -IncludeVerInfo=1 -AutoIncBuild=0 -MajorVer=0 -MinorVer=5 -Release=4 -Build=129 -Debug=0 -PreRelease=0 -Special=0 -Private=0 -DLL=0 -Locale=1033 -CodePage=1252 -[Version Info Keys] -CompanyName=Petr Vones -FileDescription=PE Viewer -FileVersion=0.5.4.129 -InternalName=PEVIEWER -LegalCopyright=(c) 2002 Petr Vones -LegalTrademarks= -OriginalFilename=PEVIEWER.EXE -ProductName=PE Viewer -ProductVersion=0.5.4 Modified: trunk/jcl/examples/windows/delphitools/resfix/ResFix.dof =================================================================== --- trunk/jcl/examples/windows/delphitools/resfix/ResFix.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/delphitools/resfix/ResFix.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,137 +1,3 @@ -[FileVersion] -Version=7.0 -[Compiler] -A=8 -B=0 -C=1 -D=1 -E=0 -F=0 -G=1 -H=1 -I=1 -J=0 -K=0 -L=1 -M=0 -N=1 -O=1 -P=1 -Q=0 -R=0 -S=0 -T=0 -U=0 -V=1 -W=0 -X=1 -Y=1 -Z=1 -ShowHints=1 -ShowWarnings=1 -UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -NamespacePrefix= -SymbolDeprecated=1 -SymbolLibrary=1 -SymbolPlatform=1 -UnitLibrary=1 -UnitPlatform=1 -UnitDeprecated=1 -HResultCompat=1 -HidingMember=1 -HiddenVirtual=1 -Garbage=1 -BoundsError=1 -ZeroNilCompat=1 -StringConstTruncated=1 -ForLoopVarVarPar=1 -TypedConstVarPar=1 -AsgToTypedConst=1 -CaseLabelRange=1 -ForVariable=1 -ConstructingAbstract=1 -ComparisonFalse=1 -ComparisonTrue=1 -ComparingSignedUnsigned=1 -CombiningSignedUnsigned=1 -UnsupportedConstruct=1 -FileOpen=1 -FileOpenUnitSrc=1 -BadGlobalSymbol=1 -DuplicateConstructorDestructor=1 -InvalidDirective=1 -PackageNoLink=1 -PackageThreadVar=1 -ImplicitImport=1 -HPPEMITIgnored=1 -NoRetVal=1 -UseBeforeDef=1 -ForLoopVarUndef=1 -UnitNameMismatch=1 -NoCFGFileFound=1 -MessageDirective=1 -ImplicitVariants=1 -UnicodeToLocale=1 -LocaleToUnicode=1 -ImagebaseMultiple=1 -SuspiciousTypecast=1 -PrivatePropAccessor=1 -UnsafeType=1 -UnsafeCode=1 -UnsafeCast=1 -[Linker] -MapFile=0 -OutputObjs=0 -ConsoleApp=1 -DebugInfo=0 -RemoteSymbols=0 -MinStackSize=16384 -MaxStackSize=1048576 -ImageBase=4194304 -ExeDescription= [Directories] OutputDir=..\..\..\..\bin -UnitOutputDir= -PackageDLLOutputDir= -PackageDCPOutputDir= -SearchPath=..\..\..\..\source\include;..\..\..\..\source\common;..\..\..\..\source\windows;..\..\..\..\source\vcl -Packages=vcl;rtl;Jcl -Conditionals= -DebugSourceDirs= UsePackages=0 -[Parameters] -RunParams= -HostApplication= -Launcher= -UseLauncher=0 -DebugCWD= -[Language] -ActiveLang= -ProjectLang= -RootDir= -[Version Info] -IncludeVerInfo=1 -AutoIncBuild=0 -MajorVer=0 -MinorVer=5 -Release=4 -Build=15 -Debug=0 -PreRelease=0 -Special=0 -Private=0 -DLL=0 -Locale=1033 -CodePage=1252 -[Version Info Keys] -CompanyName=Petr Vones -FileDescription=ResFix utility -FileVersion=0.5.4.15 -InternalName=RESFIX -LegalCopyright=(c) 2002 Petr Vones -LegalTrademarks= -OriginalFilename=RESFIX.EXE -ProductName=ResFix utility for Win95 -ProductVersion=0.5.4 -Comments= - Modified: trunk/jcl/examples/windows/delphitools/screenjpg/ScreenJPG.dof =================================================================== --- trunk/jcl/examples/windows/delphitools/screenjpg/ScreenJPG.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/delphitools/screenjpg/ScreenJPG.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,134 +1,3 @@ -[FileVersion] -Version=7.0 -[Compiler] -A=8 -B=0 -C=1 -D=1 -E=0 -F=0 -G=1 -H=1 -I=1 -J=0 -K=0 -L=1 -M=0 -N=1 -O=1 -P=1 -Q=0 -R=0 -S=0 -T=0 -U=0 -V=1 -W=0 -X=1 -Y=1 -Z=1 -ShowHints=1 -ShowWarnings=1 -UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -NamespacePrefix= -SymbolDeprecated=1 -SymbolLibrary=1 -SymbolPlatform=1 -UnitLibrary=1 -UnitPlatform=1 -UnitDeprecated=1 -HResultCompat=1 -HidingMember=1 -HiddenVirtual=1 -Garbage=1 -BoundsError=1 -ZeroNilCompat=1 -StringConstTruncated=1 -ForLoopVarVarPar=1 -TypedConstVarPar=1 -AsgToTypedConst=1 -CaseLabelRange=1 -ForVariable=1 -ConstructingAbstract=1 -ComparisonFalse=1 -ComparisonTrue=1 -ComparingSignedUnsigned=1 -CombiningSignedUnsigned=1 -UnsupportedConstruct=1 -FileOpen=1 -FileOpenUnitSrc=1 -BadGlobalSymbol=1 -DuplicateConstructorDestructor=1 -InvalidDirective=1 -PackageNoLink=1 -PackageThreadVar=1 -ImplicitImport=1 -HPPEMITIgnored=1 -NoRetVal=1 -UseBeforeDef=1 -ForLoopVarUndef=1 -UnitNameMismatch=1 -NoCFGFileFound=1 -MessageDirective=1 -ImplicitVariants=1 -UnicodeToLocale=1 -LocaleToUnicode=1 -ImagebaseMultiple=1 -SuspiciousTypecast=1 -PrivatePropAccessor=1 -UnsafeType=0 -UnsafeCode=0 -UnsafeCast=0 -[Linker] -MapFile=0 -OutputObjs=0 -ConsoleApp=1 -DebugInfo=0 -RemoteSymbols=0 -MinStackSize=16384 -MaxStackSize=1048576 -ImageBase=4194304 -ExeDescription= [Directories] OutputDir=..\..\..\..\bin -UnitOutputDir= -PackageDLLOutputDir= -PackageDCPOutputDir= -SearchPath=..\..\..\..\source\include;..\..\..\..\source\common;..\..\..\..\source\windows;..\..\..\..\source\vcl -Conditionals= -DebugSourceDirs= UsePackages=0 -[Parameters] -RunParams= -HostApplication= -Launcher= -UseLauncher=0 -DebugCWD= -[Language] -ActiveLang= -ProjectLang= -RootDir= -[Version Info] -IncludeVerInfo=1 -AutoIncBuild=0 -MajorVer=0 -MinorVer=5 -Release=4 -Build=3 -Debug=0 -PreRelease=0 -Special=0 -Private=0 -DLL=0 -Locale=1033 -CodePage=1252 -[Version Info Keys] -CompanyName=Petr Vones -FileDescription=Screen to JPEG convertor -FileVersion=0.5.4.3 -InternalName=PEVIEWER -LegalCopyright=(c) 2002 Petr Vones -LegalTrademarks= -OriginalFilename=SCREENJPG.EXE -ProductName=Screen to JPEG convertor -ProductVersion=0.5.4 Modified: trunk/jcl/examples/windows/delphitools/toolhelpview/ToolHelpViewer.dof =================================================================== --- trunk/jcl/examples/windows/delphitools/toolhelpview/ToolHelpViewer.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/delphitools/toolhelpview/ToolHelpViewer.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,134 +1,3 @@ -[FileVersion] -Version=7.0 -[Compiler] -A=8 -B=0 -C=1 -D=1 -E=0 -F=0 -G=1 -H=1 -I=1 -J=0 -K=0 -L=1 -M=0 -N=1 -O=1 -P=1 -Q=0 -R=0 -S=0 -T=0 -U=0 -V=1 -W=0 -X=1 -Y=1 -Z=1 -ShowHints=1 -ShowWarnings=1 -UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -NamespacePrefix= -SymbolDeprecated=1 -SymbolLibrary=1 -SymbolPlatform=1 -UnitLibrary=1 -UnitPlatform=1 -UnitDeprecated=1 -HResultCompat=1 -HidingMember=1 -HiddenVirtual=1 -Garbage=1 -BoundsError=1 -ZeroNilCompat=1 -StringConstTruncated=1 -ForLoopVarVarPar=1 -TypedConstVarPar=1 -AsgToTypedConst=1 -CaseLabelRange=1 -ForVariable=1 -ConstructingAbstract=1 -ComparisonFalse=1 -ComparisonTrue=1 -ComparingSignedUnsigned=1 -CombiningSignedUnsigned=1 -UnsupportedConstruct=1 -FileOpen=1 -FileOpenUnitSrc=1 -BadGlobalSymbol=1 -DuplicateConstructorDestructor=1 -InvalidDirective=1 -PackageNoLink=1 -PackageThreadVar=1 -ImplicitImport=1 -HPPEMITIgnored=1 -NoRetVal=1 -UseBeforeDef=1 -ForLoopVarUndef=1 -UnitNameMismatch=1 -NoCFGFileFound=1 -MessageDirective=1 -ImplicitVariants=1 -UnicodeToLocale=1 -LocaleToUnicode=1 -ImagebaseMultiple=1 -SuspiciousTypecast=1 -PrivatePropAccessor=1 -UnsafeType=0 -UnsafeCode=0 -UnsafeCast=0 -[Linker] -MapFile=0 -OutputObjs=0 -ConsoleApp=1 -DebugInfo=0 -RemoteSymbols=0 -MinStackSize=16384 -MaxStackSize=1048576 -ImageBase=4194304 -ExeDescription= [Directories] OutputDir=..\..\..\..\bin -UnitOutputDir= -PackageDLLOutputDir= -PackageDCPOutputDir= -SearchPath=..\..\..\..\source\include;..\..\..\..\source\common;..\..\..\..\source\windows;..\..\..\..\source\vcl -Conditionals= -DebugSourceDirs= UsePackages=0 -[Parameters] -RunParams= -HostApplication= -Launcher= -UseLauncher=0 -DebugCWD= -[Language] -ActiveLang= -ProjectLang= -RootDir= -[Version Info] -IncludeVerInfo=1 -AutoIncBuild=0 -MajorVer=0 -MinorVer=5 -Release=4 -Build=65 -Debug=0 -PreRelease=0 -Special=0 -Private=0 -DLL=0 -Locale=1033 -CodePage=1252 -[Version Info Keys] -CompanyName=Petr Vones -FileDescription=ToolHelp Viewer for Win95/98/2000 -FileVersion=0.5.4.65 -InternalName=TOOLHELPVIEWER -LegalCopyright=(c) 2002 Petr Vones -LegalTrademarks= -OriginalFilename=TOOLHELPVIEWER.EXE -ProductName=ToolHelp Viewer -ProductVersion=0.5.4 Modified: trunk/jcl/examples/windows/filemapping/FileMapping.dof =================================================================== --- trunk/jcl/examples/windows/filemapping/FileMapping.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/filemapping/FileMapping.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] OutputDir=..\..\..\bin - +UsePackages=0 Modified: trunk/jcl/examples/windows/filesummary/FileSummaryExample.dof =================================================================== --- trunk/jcl/examples/windows/filesummary/FileSummaryExample.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/filesummary/FileSummaryExample.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] OutputDir=..\..\..\bin - +UsePackages=0 Modified: trunk/jcl/examples/windows/fileversion/VerInfoExample.dof =================================================================== --- trunk/jcl/examples/windows/fileversion/VerInfoExample.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/fileversion/VerInfoExample.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,82 +1,3 @@ -[Compiler] -A=1 -B=0 -C=1 -D=1 -E=0 -F=0 -G=1 -H=1 -I=1 -J=1 -K=0 -L=1 -M=0 -N=1 -O=0 -P=1 -Q=0 -R=0 -S=0 -T=0 -U=0 -V=1 -W=0 -X=1 -Y=1 -Z=1 -ShowHints=1 -ShowWarnings=1 -UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -[Linker] -MapFile=0 -OutputObjs=0 -ConsoleApp=1 -DebugInfo=0 -RemoteSymbols=0 -MinStackSize=16384 -MaxStackSize=1048576 -ImageBase=4194304 -ExeDescription= [Directories] OutputDir=..\..\..\bin -UnitOutputDir= -PackageDLLOutputDir= -PackageDCPOutputDir= -SearchPath=$(DELPHI)\Lib\Debug;I:\Quellen\jedi\jcl\lib\d5\debug;I:\Quellen\jedi\jcl.cvs\jcl\lib\D5\debug;I:\Quellen\jedi\jcl\lib\D5\debug -Packages=rtl;vcl;Jcl -Conditionals= -DebugSourceDirs= UsePackages=0 -[Parameters] -RunParams= -HostApplication= -[Language] -ActiveLang= -ProjectLang=$00000407 -RootDir= -[Version Info] -IncludeVerInfo=0 -AutoIncBuild=0 -MajorVer=1 -MinorVer=0 -Release=0 -Build=0 -Debug=0 -PreRelease=0 -Special=0 -Private=0 -DLL=0 -Locale=1031 -CodePage=1252 -[Excluded Packages] -$(DELPHI)\Bin\dclie50.bpl=Internet Explorer Components -[HistoryLists\hlUnitAliases] -Count=1 -Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -[HistoryLists\hlSearchPath] -Count=1 -Item0=$(DELPHI)\Lib\Debug;I:\Quellen\jedi\jcl\lib\d5\debug;I:\Quellen\jedi\jcl.cvs\jcl\lib\D5\debug;I:\Quellen\jedi\jcl\lib\D5\debug -[HistoryLists\hlOutputDirectorry] -Count=1 -Item0=..\..\..\bin Modified: trunk/jcl/examples/windows/lanman/LanManExample.dof =================================================================== --- trunk/jcl/examples/windows/lanman/LanManExample.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/lanman/LanManExample.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] OutputDir=..\..\..\bin - +UsePackages=0 Modified: trunk/jcl/examples/windows/locales/LocalesExample.dof =================================================================== --- trunk/jcl/examples/windows/locales/LocalesExample.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/locales/LocalesExample.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] OutputDir=..\..\..\bin - +UsePackages=0 Modified: trunk/jcl/examples/windows/mapi/MapiExample.dof =================================================================== --- trunk/jcl/examples/windows/mapi/MapiExample.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/mapi/MapiExample.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] OutputDir=..\..\..\bin - +UsePackages=0 Modified: trunk/jcl/examples/windows/mapi/ReadMailExample.dof =================================================================== --- trunk/jcl/examples/windows/mapi/ReadMailExample.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/mapi/ReadMailExample.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] OutputDir=..\..\..\bin - +UsePackages=0 Modified: trunk/jcl/examples/windows/multimedia/MultiMediaExample.dof =================================================================== --- trunk/jcl/examples/windows/multimedia/MultiMediaExample.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/multimedia/MultiMediaExample.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] OutputDir=..\..\..\bin - +UsePackages=0 Modified: trunk/jcl/examples/windows/ntfs/JEDISoftLinks.dof =================================================================== --- trunk/jcl/examples/windows/ntfs/JEDISoftLinks.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/ntfs/JEDISoftLinks.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,4 +1,3 @@ [Directories] OutputDir=..\..\..\bin -[Parameters] -RunParams=/UNREGSERVER +UsePackages=0 Modified: trunk/jcl/examples/windows/ntservice/NtSvcExample.dof =================================================================== --- trunk/jcl/examples/windows/ntservice/NtSvcExample.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/ntservice/NtSvcExample.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] OutputDir=..\..\..\bin - +UsePackages=0 Modified: trunk/jcl/examples/windows/peimage/ApiHookExample.dof =================================================================== --- trunk/jcl/examples/windows/peimage/ApiHookExample.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/peimage/ApiHookExample.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] OutputDir=..\..\..\bin - +UsePackages=0 Modified: trunk/jcl/examples/windows/peimage/PeFuncExample.dof =================================================================== --- trunk/jcl/examples/windows/peimage/PeFuncExample.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/peimage/PeFuncExample.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] OutputDir=..\..\..\bin - +UsePackages=0 Modified: trunk/jcl/examples/windows/peimage/UnmangleNameExample.dof =================================================================== --- trunk/jcl/examples/windows/peimage/UnmangleNameExample.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/peimage/UnmangleNameExample.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] OutputDir=..\..\..\bin - +UsePackages=0 Modified: trunk/jcl/examples/windows/registry/RegistryExample.dof =================================================================== --- trunk/jcl/examples/windows/registry/RegistryExample.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/registry/RegistryExample.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] OutputDir=..\..\..\bin - +UsePackages=0 Modified: trunk/jcl/examples/windows/structstorage/StructStorageExample.dof =================================================================== --- trunk/jcl/examples/windows/structstorage/StructStorageExample.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/structstorage/StructStorageExample.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,2 +1,3 @@ [Directories] OutputDir=..\..\..\bin +UsePackages=0 Modified: trunk/jcl/examples/windows/sysinfo/SysInfoExample.dof =================================================================== --- trunk/jcl/examples/windows/sysinfo/SysInfoExample.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/sysinfo/SysInfoExample.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] OutputDir=..\..\..\bin - +UsePackages=0 Modified: trunk/jcl/examples/windows/tasks/TaskDemo.dof =================================================================== --- trunk/jcl/examples/windows/tasks/TaskDemo.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/tasks/TaskDemo.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,3 +1,3 @@ [Directories] OutputDir=..\..\..\bin - +UsePackages=0 Modified: trunk/jcl/examples/windows/timezones/TimeZoneDemo.dof =================================================================== --- trunk/jcl/examples/windows/timezones/TimeZoneDemo.dof 2010-11-03 11:40:33 UTC (rev 3412) +++ trunk/jcl/examples/windows/timezones/TimeZoneDemo.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -1,2 +1,3 @@ [Directories] -OutputDir=..\..\..\bin \ No newline at end of file +OutputDir=..\..\..\bin +UsePackages=0 Added: trunk/jcl/examples/windows/widestring/WideStringExample.dof =================================================================== --- trunk/jcl/examples/windows/widestring/WideStringExample.dof (rev 0) +++ trunk/jcl/examples/windows/widestring/WideStringExample.dof 2010-11-03 14:01:53 UTC (rev 3413) @@ -0,0 +1,3 @@ +[Directories] +OutputDir=..\..\..\bin +UsePackages=0 Property changes on: trunk/jcl/examples/windows/widestring/WideStringExample.dof ___________________________________________________________________ Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-11-03 11:40:40
|
Revision: 3412 http://jcl.svn.sourceforge.net/jcl/?rev=3412&view=rev Author: outchy Date: 2010-11-03 11:40:33 +0000 (Wed, 03 Nov 2010) Log Message: ----------- Open nested archives without extracting file content. Modified Paths: -------------- trunk/jcl/examples/windows/compression/archive/UMain.dfm trunk/jcl/examples/windows/compression/archive/UMain.pas trunk/jcl/source/common/JclCompression.pas trunk/jcl/source/common/JclResources.pas Modified: trunk/jcl/examples/windows/compression/archive/UMain.dfm =================================================================== --- trunk/jcl/examples/windows/compression/archive/UMain.dfm 2010-11-02 19:18:10 UTC (rev 3411) +++ trunk/jcl/examples/windows/compression/archive/UMain.dfm 2010-11-03 11:40:33 UTC (rev 3412) @@ -127,6 +127,22 @@ Action = ActionProperties TabOrder = 3 end + object ButtonDescend: TButton + Left = 361 + Top = 16 + Width = 75 + Height = 25 + Action = ActionDescendRO + TabOrder = 4 + end + object ButtonLevelUp: TButton + Left = 442 + Top = 16 + Width = 75 + Height = 25 + Action = ActionLevelUpRO + TabOrder = 5 + end end object TabSheetWriteOnly: TTabSheet Caption = 'Write-only' @@ -318,6 +334,18 @@ OnExecute = ActionPropertiesExecute OnUpdate = ActionPropertiesUpdate end + object ActionDescendRO: TAction + Category = 'ReadOnly' + Caption = 'Descend' + OnExecute = ActionDescendROExecute + OnUpdate = ActionDescendROUpdate + end + object ActionLevelUpRO: TAction + Category = 'ReadOnly' + Caption = 'Level up' + OnExecute = ActionLevelUpROExecute + OnUpdate = ActionLevelUpROUpdate + end end object OpenDialogArchiveRO: TOpenDialog FilterIndex = 0 Modified: trunk/jcl/examples/windows/compression/archive/UMain.pas =================================================================== --- trunk/jcl/examples/windows/compression/archive/UMain.pas 2010-11-02 19:18:10 UTC (rev 3411) +++ trunk/jcl/examples/windows/compression/archive/UMain.pas 2010-11-03 11:40:33 UTC (rev 3412) @@ -7,7 +7,8 @@ uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, - Dialogs, StdCtrls, ExtCtrls, ActnList, ComCtrls, ImgList, JclCompression; + Dialogs, StdCtrls, ExtCtrls, ActnList, ComCtrls, ImgList, Contnrs, + JclCompression; type TFormMain = class(TForm) @@ -52,6 +53,10 @@ ActionProperties: TAction; ButtonPropertiesWO: TButton; ButtonPropertiesRW: TButton; + ButtonDescend: TButton; + ActionDescendRO: TAction; + ActionLevelUpRO: TAction; + ButtonLevelUp: TButton; procedure ActionAlwaysEnabled(Sender: TObject); procedure ActionExtractSelectedROUpdate(Sender: TObject); procedure ActionExtractAllROUpdate(Sender: TObject); @@ -74,9 +79,15 @@ procedure FormCreate(Sender: TObject); procedure ActionPropertiesUpdate(Sender: TObject); procedure ActionPropertiesExecute(Sender: TObject); + procedure ActionDescendROUpdate(Sender: TObject); + procedure ActionLevelUpROUpdate(Sender: TObject); + procedure ActionDescendROExecute(Sender: TObject); + procedure ActionLevelUpROExecute(Sender: TObject); private + FArchiveStack: TObjectList; FArchive: TJclCompressionArchive; procedure CloseArchive; + procedure CloseAllArchive; procedure ArchiveProgress(Sender: TObject; const Value, MaxValue: Int64); public end; @@ -89,7 +100,8 @@ {$R *.dfm} uses - JclAnsiStrings, Sevenzip, FileCtrl, + Sevenzip, FileCtrl, + JclAnsiStrings, UProperties; function FileTimeToString(const FileTime: TFileTime): string; @@ -167,6 +179,40 @@ (Sender as TAction).Enabled := (FArchive is TJclUpdateArchive) and (ListView1.SelCount = 1); end; +procedure TFormMain.ActionDescendROExecute(Sender: TObject); +var + ArchiveItem: TJclCompressionItem; + ArchiveFileName: WideString; + AFormat: TJclDecompressArchiveClass; +begin + ArchiveItem := FArchive.Items[ListView1.ItemIndex]; + ArchiveFileName := ArchiveItem.NestedArchiveName; + AFormat := GetArchiveFormats.FindDecompressFormat(ArchiveFileName); + if AFormat <> nil then + begin + ListView1.Items.Clear; + FArchiveStack.Add(FArchive); + + FArchive := AFormat.Create(ArchiveItem.NestedArchiveStream, 0, True); + (FArchive as TJclDecompressArchive).ListFiles; + + ListView1.Items.BeginUpdate; + try + while ListView1.Items.Count < FArchive.ItemCount do + ListView1.Items.Add; + finally + ListView1.Items.EndUpdate; + end; + end + else + ShowMessage('not a supported format'); +end; + +procedure TFormMain.ActionDescendROUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := Assigned(FArchive) and (FArchive.SupportsNestedArchive) and (ListView1.SelCount = 1); +end; + procedure TFormMain.ActionExtractAllROExecute(Sender: TObject); var Directory: string; @@ -210,6 +256,16 @@ and (ListView1.SelCount > 0); end; +procedure TFormMain.ActionLevelUpROExecute(Sender: TObject); +begin + CloseArchive; +end; + +procedure TFormMain.ActionLevelUpROUpdate(Sender: TObject); +begin + (Sender as TAction).Enabled := FArchiveStack.Count > 0; +end; + procedure TFormMain.ActionNewWOExecute(Sender: TObject); var ArchiveFileName, VolumeSizeStr, Password: string; @@ -219,7 +275,7 @@ begin if SaveDialogArchiveWO.Execute then begin - CloseArchive; + CloseAllArchive; ArchiveFileName := SaveDialogArchiveWO.FileName; @@ -261,7 +317,7 @@ begin if SaveDialogArchiveRW.Execute then begin - CloseArchive; + CloseAllArchive; ArchiveFileName := SaveDialogArchiveRW.FileName; @@ -302,7 +358,7 @@ begin if OpenDialogArchiveRO.Execute then begin - CloseArchive; + CloseAllArchive; ArchiveFileName := OpenDialogArchiveRO.FileName; SplitArchive := AnsiSameText(ExtractFileExt(ArchiveFileName), '.001'); @@ -349,7 +405,7 @@ begin if OpenDialogArchiveRW.Execute then begin - CloseArchive; + CloseAllArchive; ArchiveFileName := OpenDialogArchiveRW.FileName; SplitArchive := AnsiSameText(ExtractFileExt(ArchiveFileName), '.001'); @@ -401,7 +457,7 @@ procedure TFormMain.ActionSaveExecute(Sender: TObject); begin (FArchive as TJclCompressArchive).Compress; - CloseArchive; + CloseAllArchive; end; procedure TFormMain.ActionSaveUpdate(Sender: TObject); @@ -425,10 +481,31 @@ ProgressBar1.Position := MyValue; end; +procedure TFormMain.CloseAllArchive; +begin + while Assigned(FArchive) do + CloseArchive; +end; + procedure TFormMain.CloseArchive; begin + ListView1.Items.Clear; FreeAndNil(FArchive); - ListView1.Items.Clear; + if FArchiveStack.Count > 0 then + begin + FArchive := FArchiveStack.Items[FArchiveStack.Count - 1] as TJclCompressionArchive; + FArchiveStack.Count := FArchiveStack.Count - 1; + end; + if Assigned(FArchive) then + begin + ListView1.Items.BeginUpdate; + try + while ListView1.Items.Count < FArchive.ItemCount do + ListView1.Items.Add; + finally + ListView1.Items.EndUpdate; + end; + end; end; procedure TFormMain.FormCreate(Sender: TObject); @@ -459,6 +536,8 @@ AFormats: TJclCompressionArchiveFormats; Index: Integer; begin + FArchiveStack := TObjectList.Create(False); + AFormats := GetArchiveFormats; AFilter := ''; @@ -488,7 +567,8 @@ procedure TFormMain.FormDestroy(Sender: TObject); begin - CloseArchive; + CloseAllArchive; + FArchiveStack.Free; end; procedure TFormMain.ListView1Data(Sender: TObject; Item: TListItem); Modified: trunk/jcl/source/common/JclCompression.pas =================================================================== --- trunk/jcl/source/common/JclCompression.pas 2010-11-02 19:18:10 UTC (rev 3411) +++ trunk/jcl/source/common/JclCompression.pas 2010-11-03 11:40:33 UTC (rev 3412) @@ -167,8 +167,9 @@ procedure Progress(Sender: TObject); dynamic; property OnProgress: TNotifyEvent read FOnProgress write FOnProgress; public + class function StreamExtensions: string; virtual; class function StreamName: string; virtual; - class function StreamExtensions: string; virtual; + class function StreamSubExtensions: string; virtual; constructor Create(AStream: TStream); destructor Destroy; override; @@ -248,8 +249,9 @@ procedure SetWindowBits(Value: Integer); public // stream description + class function StreamExtensions: string; override; class function StreamName: string; override; - class function StreamExtensions: string; override; + class function StreamSubExtensions: string; override; constructor Create(Destination: TStream; CompressionLevel: TJclCompressionLevel = -1); destructor Destroy; override; @@ -275,8 +277,9 @@ procedure SetWindowBits(Value: Integer); public // stream description + class function StreamExtensions: string; override; class function StreamName: string; override; - class function StreamExtensions: string; override; + class function StreamSubExtensions: string; override; constructor Create(Source: TStream; WindowBits: Integer = DEF_WBITS; AOwnsStream: Boolean = False); destructor Destroy; override; @@ -399,8 +402,9 @@ procedure ZLibStreamProgress(Sender: TObject); public // stream description + class function StreamExtensions: string; override; class function StreamName: string; override; - class function StreamExtensions: string; override; + class function StreamSubExtensions: string; override; constructor Create(Destination: TStream; CompressionLevel: TJclCompressionLevel = -1); destructor Destroy; override; @@ -453,8 +457,9 @@ procedure ZLibStreamProgress(Sender: TObject); public // stream description + class function StreamExtensions: string; override; class function StreamName: string; override; - class function StreamExtensions: string; override; + class function StreamSubExtensions: string; override; constructor Create(Source: TStream; CheckHeaderCRC: Boolean = True; AOwnsStream: Boolean = False); destructor Destroy; override; @@ -488,8 +493,9 @@ procedure SetCompressionLevel(const Value: Integer); public // stream description + class function StreamExtensions: string; override; class function StreamName: string; override; - class function StreamExtensions: string; override; + class function StreamSubExtensions: string; override; constructor Create(Destination: TStream; ACompressionLevel: TJclCompressionLevel = 9); destructor Destroy; override; @@ -508,8 +514,9 @@ BZLibRecord: bz_stream; public // stream description + class function StreamExtensions: string; override; class function StreamName: string; override; - class function StreamExtensions: string; override; + class function StreamSubExtensions: string; override; constructor Create(Source: TStream; AOwnsStream: Boolean = False); overload; destructor Destroy; override; @@ -597,6 +604,9 @@ FCRC: Cardinal; FMethod: WideString; FEncrypted: Boolean; + function WideChangeFileExt(const AFileName, AExtension: WideString): WideString; + function WideExtractFileExt(const AFileName: WideString): WideString; + function WideExtractFileName(const AFileName: WideString): WideString; protected // property checkers procedure CheckGetProperty(AProperty: TJclCompressionItemProperty); virtual; abstract; @@ -620,6 +630,8 @@ function GetLastAccessTime: TFileTime; function GetLastWriteTime: TFileTime; function GetMethod: WideString; + function GetNestedArchiveName: WideString; virtual; + function GetNestedArchiveStream: TStream; virtual; function GetPackedExtension: WideString; function GetPackedName: WideString; function GetPackedSize: Int64; @@ -673,6 +685,8 @@ property FileName: TFileName read GetFileName write SetFileName; property OwnsStream: Boolean read FOwnsStream write FOwnsStream; property Stream: TStream read GetStream write SetStream; + property NestedArchiveStream: TStream read GetNestedArchiveStream; + property NestedArchiveName: WideString read GetNestedArchiveName; // miscellaneous property Archive: TJclCompressionArchive read FArchive; property OperationSuccess: TJclCompressionOperationSuccess read FOperationSuccess @@ -741,6 +755,7 @@ function NeedStreamMaxSize(Index: Integer): Int64; procedure ReleaseVolumes; function GetItemClass: TJclCompressionItemClass; virtual; abstract; + function GetSupportsNestedArchive: Boolean; virtual; public { IInterface } function QueryInterface(const IID: TGUID; out Obj): HRESULT; stdcall; @@ -752,6 +767,7 @@ class function ItemAccess: TJclStreamAccess; virtual; class function ArchiveExtensions: string; virtual; class function ArchiveName: string; virtual; + class function ArchiveSubExtensions: string; virtual; constructor Create(Volume0: TStream; AVolumeMaxSize: Int64 = 0; AOwnVolume: Boolean = False); overload; virtual; @@ -795,6 +811,8 @@ property OnVolumeMaxSize: TJclCompressionVolumeMaxSizeEvent read FOnVolumeMaxSize write FOnVolumeMaxSize; property Password: WideString read FPassword write FPassword; + + property SupportsNestedArchive: Boolean read GetSupportsNestedArchive; end; TJclCompressionArchiveClass = class of TJclCompressionArchive; @@ -1186,6 +1204,7 @@ public class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveSubExtensions: string; override; { IJclArchiveNumberOfThreads } function GetNumberOfThreads: Cardinal; procedure SetNumberOfThreads(Value: Cardinal); @@ -1285,6 +1304,7 @@ public class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveSubExtensions: string; override; { IJclArchiveCompressionLevel } function GetCompressionLevel: Cardinal; function GetCompressionLevelMax: Cardinal; @@ -1308,6 +1328,7 @@ public class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveSubExtensions: string; override; { IJclArchiveCompressionMethod } function GetCompressionMethod: TJclCompressionMethod; function GetSupportedCompressionMethods: TJclCompressionMethods; @@ -1324,15 +1345,23 @@ // sevenzip classes for decompression type + TJclSevenzipDecompressItem = class(TJclDecompressItem) + protected + function GetNestedArchiveStream: TStream; override; + end; + TJclSevenzipDecompressArchive = class(TJclDecompressArchive, IInterface) private FInArchive: IInArchive; + FInArchiveGetStream: IInArchiveGetStream; FOpened: Boolean; protected procedure OpenArchive; function GetCLSID: TGUID; virtual; abstract; function GetInArchive: IInArchive; + function GetInArchiveGetStream: IInArchiveGetStream; function GetItemClass: TJclCompressionItemClass; override; + function GetSupportsNestedArchive: Boolean; override; public destructor Destroy; override; procedure ListFiles; override; @@ -1341,6 +1370,7 @@ procedure ExtractAll(const ADestinationDir: string = ''; AAutoCreateSubDir: Boolean = True); override; property InArchive: IInArchive read GetInArchive; + property InArchiveGetStream: IInArchiveGetStream read GetInArchiveGetStream; end; // file formats @@ -1369,6 +1399,7 @@ public class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveSubExtensions: string; override; { IJclArchiveNumberOfThreads } function GetNumberOfThreads: Cardinal; procedure SetNumberOfThreads(Value: Cardinal); @@ -1399,6 +1430,7 @@ class function MultipleItemContainer: Boolean; override; class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveSubExtensions: string; override; end; TJclLzhDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) @@ -1629,6 +1661,7 @@ public class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveSubExtensions: string; override; end; TJclXzDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) @@ -1637,6 +1670,7 @@ public class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveSubExtensions: string; override; end; TJclNtfsDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) @@ -1672,6 +1706,7 @@ public class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveSubExtensions: string; override; end; TJclMslzDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) @@ -1808,6 +1843,7 @@ public class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveSubExtensions: string; override; { IJclArchiveNumberOfThreads } function GetNumberOfThreads: Cardinal; procedure SetNumberOfThreads(Value: Cardinal); @@ -1899,6 +1935,7 @@ public class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveSubExtensions: string; override; { IJclArchiveCompressionLevel } function GetCompressionLevel: Cardinal; function GetCompressionLevelMax: Cardinal; @@ -1922,6 +1959,7 @@ public class function ArchiveExtensions: string; override; class function ArchiveName: string; override; + class function ArchiveSubExtensions: string; override; { IJclArchiveCompressionMethod } function GetCompressionMethod: TJclCompressionMethod; function GetSupportedCompressionMethods: TJclCompressionMethods; @@ -1960,6 +1998,18 @@ function SetSize(NewSize: Int64): HRESULT; stdcall; end; + TJclSevenzipNestedInStream = class(TJclStream) + private + FInStream: IInStream; + protected + procedure SetSize(const NewSize: Int64); override; + public + constructor Create(AInStream: IInStream); + function Read(var Buffer; Count: Longint): Longint; override; + function Write(const Buffer; Count: Longint): Longint; override; + function Seek(const Offset: Int64; Origin: TSeekOrigin): Int64; override; + end; + TJclSevenzipInStream = class(TInterfacedObject, ISequentialInStream, IInStream, IStreamGetSize, IUnknown) private @@ -2157,6 +2207,11 @@ Result := ''; end; +class function TJclCompressionStream.StreamSubExtensions: string; +begin + Result := ''; +end; + procedure TJclCompressionStream.Progress(Sender: TObject); begin if Assigned(FOnProgress) then @@ -2457,6 +2512,11 @@ Result := LoadResString(@RsCompressionZName); end; +class function TJclZLibCompressStream.StreamSubExtensions: string; +begin + Result := LoadResString(@RsCompressionZSubExtensions); +end; + procedure TJclZLibCompressStream.SetMethod(Value: Integer); begin FMethod := Value; @@ -2590,6 +2650,11 @@ Result := LoadResString(@RsCompressionZName); end; +class function TJclZLibDecompressStream.StreamSubExtensions: string; +begin + Result := LoadResString(@RsCompressionZSubExtensions); +end; + //=== { TJclGZIPCompressionStream } ========================================== constructor TJclGZIPCompressionStream.Create(Destination: TStream; CompressionLevel: TJclCompressionLevel); @@ -2682,6 +2747,11 @@ Result := LoadResString(@RsCompressionGZipName); end; +class function TJclGZIPCompressionStream.StreamSubExtensions: string; +begin + Result := LoadResString(@RsCompressionGZipSubExtensions); +end; + function TJclGZIPCompressionStream.Write(const Buffer; Count: Integer): Longint; begin if not FHeaderWritten then @@ -3069,6 +3139,11 @@ Result := LoadResString(@RsCompressionGZipName); end; +class function TJclGZIPDecompressionStream.StreamSubExtensions: string; +begin + Result := LoadResString(@RsCompressionGZipSubExtensions); +end; + procedure TJclGZIPDecompressionStream.ZLibStreamProgress(Sender: TObject); begin Progress(Self); @@ -3196,6 +3271,11 @@ Result := LoadResString(@RsCompressionBZip2Name); end; +class function TJclBZIP2CompressionStream.StreamSubExtensions: string; +begin + Result := LoadResString(@RsCompressionBZip2SubExtensions); +end; + function TJclBZIP2CompressionStream.Write(const Buffer; Count: Longint): Longint; begin if not FDeflateInitialized then @@ -3307,6 +3387,11 @@ Result := LoadResString(@RsCompressionBZip2Name); end; +class function TJclBZIP2DecompressionStream.StreamSubExtensions: string; +begin + Result := LoadResString(@RsCompressionBZip2SubExtensions); +end; + procedure InternalCompress(SourceStream: TStream; CompressStream: TJclCompressStream; ProgressCallback: TJclCompressStreamProgressCallback; UserData: Pointer); var @@ -3727,35 +3812,71 @@ Result := FMethod; end; -function TJclCompressionItem.GetPackedExtension: WideString; +function TJclCompressionItem.GetNestedArchiveName: WideString; var - Index: Integer; + ParentArchiveExtension, ArchiveFileName, ArchiveExtension: WideString; + ExtensionMap: TJclWideStrings; begin - CheckGetProperty(ipPackedExtension); - if FPackedName = '' then - Result := FPackedExtension + if ipPackedName in ValidProperties then + Result := PackedName else begin - Result := ''; + ArchiveFileName := ''; + ArchiveExtension := ''; - // Unicode version of ExtractFileExt - for Index := Length(FPackedName) downto 1 do + // find archive file name + if Archive.VolumeCount > 0 then + ArchiveFileName := WideExtractFileName(WideString(Archive.Volumes[0].FileName)); + if (ArchiveFileName <> '') and (WideExtractFileExt(ArchiveFileName) = '.001') then + ArchiveFileName := WideChangeFileExt(ArchiveFileName, ''); + ParentArchiveExtension := WideExtractFileExt(ArchiveFileName); + ArchiveFileName := WideChangeFileExt(ArchiveFileName, ''); + + // find item extension + ArchiveExtension := WideExtractFileExt(ArchiveFileName); + if ArchiveExtension <> '' then + ArchiveFileName := WideChangeFileExt(ArchiveFileName, '') + else + if ipPackedExtension in ValidProperties then + ArchiveExtension := PackedExtension + else + if ArchiveFileName <> '' then begin - case FPackedName[Index] of - '.': - begin - Result := Copy(FPackedName, Index, Length(FPackedName) - Index + 1); - Break; - end; - DirSeparator, - DirDelimiter: - // no extension - Break; + ExtensionMap := TJclWideStringList.Create; + try + ExtensionMap.Delimiter := ';'; + ExtensionMap.DelimitedText := Archive.ArchiveSubExtensions; + ArchiveExtension := ExtensionMap.Values[ParentArchiveExtension]; + finally + ExtensionMap.Free; end; end; + + // elaborate result + if (ArchiveFileName = '') and (ArchiveExtension = '') then + raise EJclCompressionError.CreateRes(@RsCompressionUnavailableProperty) + else + if ArchiveFileName = '' then + Result := ArchiveExtension + else + Result := WideChangeFileExt(ArchiveFileName, ArchiveExtension); end; end; +function TJclCompressionItem.GetNestedArchiveStream: TStream; +begin + raise EJclCompressionError.CreateRes(@RsCompressionNoNestedArchive); +end; + +function TJclCompressionItem.GetPackedExtension: WideString; +begin + CheckGetProperty(ipPackedExtension); + if FPackedName = '' then + Result := FPackedExtension + else + Result := WideExtractFileExt(FPackedName); +end; + function TJclCompressionItem.GetPackedName: WideString; begin CheckGetProperty(ipPackedName); @@ -4050,6 +4171,73 @@ Result := False; end; +function TJclCompressionItem.WideChangeFileExt(const AFileName, + AExtension: WideString): WideString; +var + Index: Integer; +begin + Result := AFileName; + // Unicode version of ChangeFileExt + for Index := Length(Result) downto 1 do + begin + case Result[Index] of + '.': + begin + Result := Copy(Result, 1, Index - 1) + AExtension; + Exit; + end; + DirSeparator, + DirDelimiter: + // no extension + Break; + end; + end; + Result := Result + AExtension; +end; + +function TJclCompressionItem.WideExtractFileExt( + const AFileName: WideString): WideString; +var + Index: Integer; +begin + Result := ''; + // Unicode version of ExtractFileExt + for Index := Length(AFileName) downto 1 do + begin + case AFileName[Index] of + '.': + begin + Result := Copy(AFileName, Index, Length(AFileName) - Index + 1); + Break; + end; + DirSeparator, + DirDelimiter: + // no extension + Break; + end; + end; +end; + +function TJclCompressionItem.WideExtractFileName( + const AFileName: WideString): WideString; +var + Index: Integer; +begin + Result := AFileName; + // Unicode version of ExtractFileName + for Index := Length(AFileName) downto 1 do + begin + case AFileName[Index] of + DirSeparator, + DirDelimiter: + begin + Result := Copy(AFileName, Index + 1, Length(AFileName) - Index); + Break; + end; + end; + end; +end; + //=== { TJclCompressionArchiveFormats } ====================================== constructor TJclCompressionArchiveFormats.Create; @@ -4366,6 +4554,11 @@ Result := ''; end; +class function TJclCompressionArchive.ArchiveSubExtensions: string; +begin + Result := ''; +end; + procedure TJclCompressionArchive.CheckOperationSuccess; var Index: Integer; @@ -4426,6 +4619,11 @@ Result := FItems.Count; end; +function TJclCompressionArchive.GetSupportsNestedArchive: Boolean; +begin + Result := False; +end; + function TJclCompressionArchive.GetVolume(Index: Integer): TJclCompressionVolume; begin Result := TJclCompressionVolume(FVolumes.Items[Index]); @@ -5300,6 +5498,36 @@ Result := S_FALSE; end; +//=== { TJclSevenzipNestedInStream } ========================================= + +constructor TJclSevenzipNestedInStream.Create(AInStream: IInStream); +begin + inherited Create; + FInStream := AInStream; +end; + +function TJclSevenzipNestedInStream.Read(var Buffer; Count: Integer): Longint; +begin + SevenzipCheck(FInStream.Read(@Buffer, Count, @Result)); +end; + +function TJclSevenzipNestedInStream.Seek(const Offset: Int64; + Origin: TSeekOrigin): Int64; +begin + SevenzipCheck(FInStream.Seek(Offset, Cardinal(Origin), @Result)); +end; + +procedure TJclSevenzipNestedInStream.SetSize(const NewSize: Int64); +begin + raise EJclCompressionError.CreateRes(@RsCompressionWriteNotSupported); +end; + +function TJclSevenzipNestedInStream.Write(const Buffer; + Count: Integer): Longint; +begin + raise EJclCompressionError.CreateRes(@RsCompressionWriteNotSupported); +end; + //=== { TJclSevenzipInStream } =============================================== constructor TJclSevenzipInStream.Create(AArchive: TJclCompressionArchive; AItemIndex: Integer); @@ -6546,6 +6774,11 @@ Result := LoadResString(@RsCompressionBZip2Name); end; +class function TJclBZ2CompressArchive.ArchiveSubExtensions: string; +begin + Result := LoadResString(@RsCompressionBZip2SubExtensions); +end; + function TJclBZ2CompressArchive.GetCLSID: TGUID; begin Result := CLSID_CFormatBZ2; @@ -6667,6 +6900,11 @@ Result := LoadResString(@RsCompressionGZipName); end; +class function TJclGZipCompressArchive.ArchiveSubExtensions: string; +begin + Result := LoadResString(@RsCompressionGZipSubExtensions); +end; + function TJclGZipCompressArchive.GetAlgorithm: Cardinal; begin Result := FAlgorithm; @@ -6757,6 +6995,11 @@ Result := LoadResString(@RsCompressionXzName); end; +class function TJclXzCompressArchive.ArchiveSubExtensions: string; +begin + Result := LoadResString(@RsCompressionXzSubExtensions); +end; + function TJclXzCompressArchive.GetCLSID: TGUID; begin Result := CLSID_CFormatXz; @@ -6931,11 +7174,31 @@ Result := S_OK; end; +//=== { TJclSevenzipDecompressItem } ========================================= + +function TJclSevenzipDecompressItem.GetNestedArchiveStream: TStream; +var + SequentialInStream: ISequentialInStream; + InStream: IInStream; + InterfaceID: TGUID; +begin + if Archive.SupportsNestedArchive and (Archive is TJclSevenzipDecompressArchive) then + begin + SevenzipCheck(TJclSevenzipDecompressArchive(Archive).InArchiveGetStream.GetStream(PackedIndex, SequentialInStream)); + InterfaceID := IInStream; + SevenzipCheck(SequentialInStream.QueryInterface(InterfaceID, InStream)); + Result := TJclSevenzipNestedInStream.Create(InStream); + end + else + Result := inherited GetNestedArchiveStream; +end; + //=== { TJclSevenzipDecompressArchive } ====================================== destructor TJclSevenzipDecompressArchive.Destroy; begin FInArchive := nil; + FInArchiveGetStream := nil; inherited Destroy; end; @@ -7049,11 +7312,35 @@ Result := FInArchive; end; +function TJclSevenzipDecompressArchive.GetInArchiveGetStream: IInArchiveGetStream; +var + InterfaceID: TGUID; +begin + if not Assigned(FInArchiveGetStream) then + begin + InterfaceID := Sevenzip.IInArchiveGetStream; + SevenzipCheck(InArchive.QueryInterface(InterfaceID, FInArchiveGetStream)); + end; + Result := FInArchiveGetStream; +end; + function TJclSevenzipDecompressArchive.GetItemClass: TJclCompressionItemClass; begin - Result := TJclDecompressItem; + Result := TJclSevenzipDecompressItem; end; +function TJclSevenzipDecompressArchive.GetSupportsNestedArchive: Boolean; +var + InterfaceID: TGUID; +begin + Result := Assigned(FInArchiveGetStream); + if not Result then + begin + InterfaceID := Sevenzip.IInArchiveGetStream; + Result := InArchive.QueryInterface(InterfaceID, FInArchiveGetStream) = ERROR_SUCCESS; + end; +end; + procedure TJclSevenzipDecompressArchive.ListFiles; var NumberOfItems: Cardinal; @@ -7164,6 +7451,11 @@ Result := LoadResString(@RsCompressionBZip2Name); end; +class function TJclBZ2DecompressArchive.ArchiveSubExtensions: string; +begin + Result := LoadResString(@RsCompressionBZip2SubExtensions); +end; + function TJclBZ2DecompressArchive.GetCLSID: TGUID; begin Result := CLSID_CFormatBZ2; @@ -7242,6 +7534,11 @@ Result := LoadResString(@RsCompressionZName); end; +class function TJclZDecompressArchive.ArchiveSubExtensions: string; +begin + Result := LoadResString(@RsCompressionZSubExtensions); +end; + function TJclZDecompressArchive.GetCLSID: TGUID; begin Result := CLSID_CFormatZ; @@ -7782,6 +8079,11 @@ Result := LoadResString(@RsCompressionGZipName); end; +class function TJclGZipDecompressArchive.ArchiveSubExtensions: string; +begin + Result := LoadResString(@RsCompressionGZipSubExtensions); +end; + function TJclGZipDecompressArchive.GetCLSID: TGUID; begin Result := CLSID_CFormatGZip; @@ -7799,6 +8101,11 @@ Result := LoadResString(@RsCompressionXzName); end; +class function TJclXzDecompressArchive.ArchiveSubExtensions: string; +begin + Result := LoadResString(@RsCompressionXzSubExtensions); +end; + function TJclXzDecompressArchive.GetCLSID: TGUID; begin Result := CLSID_CFormatXz; @@ -7882,6 +8189,11 @@ Result := LoadResString(@RsCompressionVhdName); end; +class function TJclVhdDecompressArchive.ArchiveSubExtensions: string; +begin + Result := LoadResString(@RsCompressionVhdSubExtensions); +end; + function TJclVhdDecompressArchive.GetCLSID: TGUID; begin Result := CLSID_CFormatVhd; @@ -8500,6 +8812,11 @@ Result := LoadResString(@RsCompressionBZip2Name); end; +class function TJclBZ2UpdateArchive.ArchiveSubExtensions: string; +begin + Result := LoadResString(@RsCompressionBZip2SubExtensions); +end; + function TJclBZ2UpdateArchive.GetCLSID: TGUID; begin Result := CLSID_CFormatBZ2; @@ -8810,6 +9127,11 @@ Result := LoadResString(@RsCompressionGZipName); end; +class function TJclGZipUpdateArchive.ArchiveSubExtensions: string; +begin + Result := LoadResString(@RsCompressionGZipSubExtensions); +end; + function TJclGZipUpdateArchive.GetAlgorithm: Cardinal; begin Result := FAlgorithm; @@ -8903,6 +9225,11 @@ Result := LoadResString(@RsCompressionXzExtensions); end; +class function TJclXzUpdateArchive.ArchiveSubExtensions: string; +begin + Result := LoadResString(@RsCompressionXzSubExtensions); +end; + function TJclXzUpdateArchive.GetCLSID: TGUID; begin Result := CLSID_CFormatXz; Modified: trunk/jcl/source/common/JclResources.pas =================================================================== --- trunk/jcl/source/common/JclResources.pas 2010-11-02 19:18:10 UTC (rev 3411) +++ trunk/jcl/source/common/JclResources.pas 2010-11-03 11:40:33 UTC (rev 3412) @@ -1001,6 +1001,7 @@ RsCompressionUnsupportedMethod = 'Unsupported method'; RsCompressionDataError = 'Data error'; RsCompressionCRCError = 'CRC error'; + RsCompressionNoNestedArchive = 'Nested archive is not supported'; RsCompressionUnknownError = 'Unknown error'; RsCompression7zLoadError = 'Sevenzip: Failed to load 7z.dll'; RsCompression7zReturnError = 'Sevenzip: Error result (%.8x) "%s"'; @@ -1023,10 +1024,12 @@ '*.mskin;' + // Maxthon skin '*.wmz;' + // Windows Media Player skin '*.ipa;' + // iPhone/iPad application + '*.docx;*.xlsx;*.pptx;' + // MsOffice '*.sxw;*.sxi;*.sxt;*.sxd;*.sxc;*.sxm;*.sxg;*.stw;*.sti;*.std;*.stc;' + // OpenOffice.org 1.x documents and templates '*.odh;*.odd;*.odt;*.odm;*.ods;*.ots;*.odg;*.otg;*.odp;*.otp;*.odf;*.odb'; // OpenOffice.org 2.x/3.x docs and templates RsCompressionBZip2Name = 'BZip2 archive'; RsCompressionBZip2Extensions = '*.bz2;*.bzip2;*.tbz2;*.tbz'; + RsCompressionBZip2SubExtensions = '.tbz2=.tar;.tbz=.tar'; RsCompressionRarName = 'Rar archive'; RsCompressionRarExtensions = '*.rar;*.r00;'+ '*.cbr'; // Comic reader file - RAR version @@ -1034,6 +1037,7 @@ RsCompressionArjExtensions = '*.arj'; RsCompressionZName = 'Z archive'; RsCompressionZExtensions = '*.z;*.taz'; + RsCompressionZSubExtensions = '.taz=.tar'; RsCompressionLzhName = 'Lzh archive'; RsCompressionLzhExtensions = '*.lzh;*.lha'; RsCompression7zName = '7z archive'; @@ -1056,7 +1060,7 @@ // TODO: extension might be *.*, but then TJclCompressionStreamFormats.FindDecompressFormat can fail RsCompressionMachoExtensions = '*.'; RsCompressionUdfName = 'Udf archive'; - RsCompressionUdfExtensions = '*.iso'; + RsCompressionUdfExtensions = '*.iso;*.img'; RsCompressionXarName = 'Xar archive'; RsCompressionXarExtensions = '*.xar;'+ '*.safariextz'; // Safari extensions @@ -1072,7 +1076,7 @@ RsCompressionWimName = 'Wim archive'; RsCompressionWimExtensions = '*.wim;*.swm'; RsCompressionIsoName = 'Iso archive'; - RsCompressionIsoExtensions = '*.iso'; + RsCompressionIsoExtensions = '*.iso;*.img'; RsCompressionChmName = 'Chm archive'; RsCompressionChmExtensions = '*.chm;*.chi;*.chq;*.chw;*.hxs;*.hxi;*.hxr;*.hxq;*.hxw;*.lit'; RsCompressionSplitName = 'Split archive'; @@ -1087,8 +1091,10 @@ RsCompressionTarExtensions = '*.tar'; RsCompressionGZipName = 'GZip archive'; RsCompressionGZipExtensions = '*.gz;*.gzip;*.tgz;*.tpz'; + RsCompressionGZipSubExtensions = '.tgz=.tar;.tpz=.tar'; RsCompressionXzName = 'Xz archive'; RsCompressionXzExtensions = '*.xz;*.txz'; + RsCompressionXzSubExtensions = '.txz=.tar'; RsCompressionNtfsName = 'Ntfs archive'; RsCompressionNtfsExtensions = '*.ntfs;*.img'; RsCompressionFatName = 'Fat archive'; @@ -1096,7 +1102,8 @@ RsCompressionMbrName = 'Mbr archive'; RsCompressionMbrExtensions = '*.mbr'; RsCompressionVhdName = 'Vhd archive'; - RsCompressionVhdExtensions = '*.vhd;*.mbr'; + RsCompressionVhdExtensions = '*.vhd'; + RsCompressionVhdSubExtensions = '.vhd=.mbr'; RsCompressionFlvName = 'Flv archive'; RsCompressionFlvExtensions = '*.flv'; RsCompressionMsLZName = 'MsLZ archive'; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-11-02 19:18:16
|
Revision: 3411 http://jcl.svn.sourceforge.net/jcl/?rev=3411&view=rev Author: outchy Date: 2010-11-02 19:18:10 +0000 (Tue, 02 Nov 2010) Log Message: ----------- workaround useless constructor overrides. Modified Paths: -------------- trunk/jcl/source/common/JclCompression.pas Modified: trunk/jcl/source/common/JclCompression.pas =================================================================== --- trunk/jcl/source/common/JclCompression.pas 2010-11-02 14:32:13 UTC (rev 3410) +++ trunk/jcl/source/common/JclCompression.pas 2010-11-02 19:18:10 UTC (rev 3411) @@ -1022,13 +1022,11 @@ procedure CheckNotDecompressing; procedure CheckListing; + procedure InitializeArchiveProperties; override; + function ValidateExtraction(Index: Integer; var FileName: TFileName; var AStream: TStream; var AOwnsStream: Boolean): Boolean; virtual; public - constructor Create(Volume0: TStream; AVolumeMaxSize: Int64 = 0; - AOwnVolume: Boolean = False); overload; override; - constructor Create(const VolumeFileName: TFileName; AVolumeMaxSize: Int64 = 0; - VolumeMask: Boolean = False); overload; override; class function VolumeAccess: TJclStreamAccess; override; class function ItemAccess: TJclStreamAccess; override; @@ -1062,15 +1060,11 @@ FOnTmpVolume: TJclCompressionVolumeEvent; protected function NeedTmpStream(Index: Integer): TStream; + procedure InitializeArchiveProperties; override; function InternalOpenTmpStream(const FileName: TFileName): TStream; public class function TmpVolumeAccess: TJclStreamAccess; virtual; - constructor Create(Volume0: TStream; AVolumeMaxSize: Int64 = 0; - AOwnVolume: Boolean = False); overload; override; - constructor Create(const VolumeFileName: TFileName; AVolumeMaxSize: Int64 = 0; - VolumeMask: Boolean = False); overload; override; - procedure Compress; override; property ReplaceVolumes: Boolean read FReplaceVolumes write FReplaceVolumes; @@ -4966,18 +4960,6 @@ raise EJclCompressionError.CreateRes(@RsCompressionDecompressingError); end; -constructor TJclUpdateArchive.Create(Volume0: TStream; AVolumeMaxSize: Int64; AOwnVolume: Boolean); -begin - inherited Create(Volume0, AVolumeMaxSize, AOwnVolume); - FDuplicateCheck := dcExisting; -end; - -constructor TJclUpdateArchive.Create(const VolumeFileName: TFileName; AVolumeMaxSize: Int64; VolumeMask: Boolean); -begin - inherited Create(VolumeFileName, AVolumeMaxSize, VolumeMask); - FDuplicateCheck := dcExisting; -end; - procedure TJclUpdateArchive.ExtractAll(const ADestinationDir: string; AAutoCreateSubDir: Boolean); begin @@ -4992,6 +4974,12 @@ // ReleaseVolumes; end; +procedure TJclUpdateArchive.InitializeArchiveProperties; +begin + inherited InitializeArchiveProperties; + FDuplicateCheck := dcExisting; +end; + class function TJclUpdateArchive.ItemAccess: TJclStreamAccess; begin Result := saReadWrite; @@ -5113,22 +5101,13 @@ end; end; -constructor TJclOutOfPlaceUpdateArchive.Create(Volume0: TStream; - AVolumeMaxSize: Int64; AOwnVolume: Boolean); +procedure TJclOutOfPlaceUpdateArchive.InitializeArchiveProperties; begin - inherited Create(Volume0, AVolumeMaxSize, AOwnVolume); + inherited InitializeArchiveProperties; FReplaceVolumes := True; FTmpVolumeIndex := -1; end; -constructor TJclOutOfPlaceUpdateArchive.Create(const VolumeFileName: TFileName; - AVolumeMaxSize: Int64; VolumeMask: Boolean); -begin - inherited Create(VolumeFileName, AVolumeMaxSize, VolumeMask); - FReplaceVolumes := True; - FTmpVolumeIndex := -1; -end; - function TJclOutOfPlaceUpdateArchive.InternalOpenTmpStream( const FileName: TFileName): TStream; begin This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-11-02 14:32:20
|
Revision: 3410 http://jcl.svn.sourceforge.net/jcl/?rev=3410&view=rev Author: outchy Date: 2010-11-02 14:32:13 +0000 (Tue, 02 Nov 2010) Log Message: ----------- >From Matteo Riso by email: iPhone and iPad applications are zip files. Modified Paths: -------------- trunk/jcl/source/common/JclResources.pas Modified: trunk/jcl/source/common/JclResources.pas =================================================================== --- trunk/jcl/source/common/JclResources.pas 2010-11-02 12:36:54 UTC (rev 3409) +++ trunk/jcl/source/common/JclResources.pas 2010-11-02 14:32:13 UTC (rev 3410) @@ -1011,18 +1011,19 @@ RsCompression7zWindows = 'Windows'; RsCompression7zUnix = 'Unix'; RsCompressionZipName = 'Zip archive'; - RsCompressionZipExtensions = '*.zip;'+ // Basic ZIP file - '*.jar;*.ear;*.war;'+ // JAVA files - '*.cbz;'+ //Comic reader files - ZIP version - '*.apk;'+ // Android application package - '*.wsz;*.wal;'+ // Winamp Skins - '*.xpi;*.crx;'+ // Firefox, Chrome extensions - '*.dfsz;'+ // ??? - '*.pcv;'+ // MozBackup file - '+*.bsz;'+ // BSplayer skin - '*.mskin;'+ // Maxthon skin - '*.wmz;'+ // Windows Media Player skin - '*.sxw;*.sxi;*.sxt;*.sxd;*.sxc;*.sxm;*.sxg;*.stw;*.sti;*.std;*.stc;'+ // OpenOffice.org 1.x documents and templates + RsCompressionZipExtensions = '*.zip;' + // Basic ZIP file + '*.jar;*.ear;*.war;' + // JAVA files + '*.cbz;' + //Comic reader files - ZIP version + '*.apk;' + // Android application package + '*.wsz;*.wal;' + // Winamp Skins + '*.xpi;*.crx;' + // Firefox, Chrome extensions + '*.dfsz;' + // ??? + '*.pcv;' + // MozBackup file + '*.bsz;' + // BSplayer skin + '*.mskin;' + // Maxthon skin + '*.wmz;' + // Windows Media Player skin + '*.ipa;' + // iPhone/iPad application + '*.sxw;*.sxi;*.sxt;*.sxd;*.sxc;*.sxm;*.sxg;*.stw;*.sti;*.std;*.stc;' + // OpenOffice.org 1.x documents and templates '*.odh;*.odd;*.odt;*.odm;*.ods;*.ots;*.odg;*.otg;*.odp;*.otp;*.odf;*.odb'; // OpenOffice.org 2.x/3.x docs and templates RsCompressionBZip2Name = 'BZip2 archive'; RsCompressionBZip2Extensions = '*.bz2;*.bzip2;*.tbz2;*.tbz'; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-11-02 12:37:01
|
Revision: 3409 http://jcl.svn.sourceforge.net/jcl/?rev=3409&view=rev Author: outchy Date: 2010-11-02 12:36:54 +0000 (Tue, 02 Nov 2010) Log Message: ----------- style cleanup. Modified Paths: -------------- trunk/jcl/source/vcl/JclGraphics.pas trunk/jcl/source/vcl/JclVclResources.pas Modified: trunk/jcl/source/vcl/JclGraphics.pas =================================================================== --- trunk/jcl/source/vcl/JclGraphics.pas 2010-11-02 12:02:44 UTC (rev 3408) +++ trunk/jcl/source/vcl/JclGraphics.pas 2010-11-02 12:36:54 UTC (rev 3409) @@ -54,7 +54,7 @@ uses Windows, -forms, Classes, SysUtils, + Forms, Classes, SysUtils, {$IFDEF UNITVERSIONING} JclUnitVersioning, {$ENDIF UNITVERSIONING} @@ -2141,21 +2141,22 @@ procedure ScreenShot(bm: TBitmap; ControlToPrint: TWinControl); overload; begin -//uses the ActiveForm property of TScreen to determine on which form the control will be searched for. + //uses the ActiveForm property of TScreen to determine on which form the control will be searched for. if ControlToPrint <> nil then ScreenShot(bm, Screen.ActiveForm, ControlToPrint) else raise EJclGraphicsError.CreateResFmt(@RSInvalidFormOrComponent, ['form']) - end; +end; procedure ScreenShot(bm: TBitmap; ControlToPrint: string); overload; begin -//uses the ActiveForm property of TScreen to determine on which form the control will be searched for. + //uses the ActiveForm property of TScreen to determine on which form the control will be searched for. if Length(ControlToPrint) > 0 then ScreenShot(bm, Screen.ActiveForm, ControlToPrint) else raise EJclGraphicsError.CreateResFmt(@RSInvalidFormOrComponent, ['Component']) end; + procedure ScreenShot(bm: TBitmap; FormToPrint: TCustomForm; ControlToPrint: TWinControl); overload; begin if FormToPrint <> nil then @@ -2165,7 +2166,8 @@ else raise EJclGraphicsError.CreateResFmt(@RSInvalidControlType,[ControlToPrint.Name]) end - else if ControlToPrint <> nil then + else + if ControlToPrint <> nil then raise EJclGraphicsError.CreateResFmt(@RSInvalidFormOrComponent, ['form']) else raise EJclGraphicsError.CreateResFmt(@RSInvalidFormOrComponent, ['form']) Modified: trunk/jcl/source/vcl/JclVclResources.pas =================================================================== --- trunk/jcl/source/vcl/JclVclResources.pas 2010-11-02 12:02:44 UTC (rev 3408) +++ trunk/jcl/source/vcl/JclVclResources.pas 2010-11-02 12:36:54 UTC (rev 3409) @@ -72,9 +72,9 @@ RsRegionCouldNotCreated = 'Region could not be created'; RsInvalidHandleForRegion = 'Invalid handle for region'; RsInvalidRegionInfo = 'Invalid RegionInfo'; - RsInvalidControlType = '%s is not descended from TWinControl'; - RsComponentDoesNotExist = '%s does not exist on form %s'; - RsInvalidFormOrComponent = 'A %s with a nil reference has been pass to the routine'; + RsInvalidControlType = '%s is not descended from TWinControl'; + RsComponentDoesNotExist = '%s does not exist on form %s'; + RsInvalidFormOrComponent = 'A %s with a nil reference has been pass to the routine'; RsBitmapExtension = '.bmp'; RsJpegExtension = '.jpg'; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sf...@us...> - 2010-11-02 12:02:50
|
Revision: 3408 http://jcl.svn.sourceforge.net/jcl/?rev=3408&view=rev Author: sfarrow Date: 2010-11-02 12:02:44 +0000 (Tue, 02 Nov 2010) Log Message: ----------- Added an overload to the ScreenShot function to allow printing a control name from the active form. Modified Paths: -------------- trunk/jcl/source/vcl/JclGraphics.pas Modified: trunk/jcl/source/vcl/JclGraphics.pas =================================================================== --- trunk/jcl/source/vcl/JclGraphics.pas 2010-11-02 11:00:19 UTC (rev 3407) +++ trunk/jcl/source/vcl/JclGraphics.pas 2010-11-02 12:02:44 UTC (rev 3408) @@ -511,6 +511,7 @@ procedure ScreenShot(bm: TBitmap; Left, Top, Width, Height: Integer; Window: THandle = HWND_DESKTOP); overload; procedure ScreenShot(bm: TBitmap; IncludeTaskBar: Boolean = True); overload; procedure ScreenShot(bm: TBitmap; ControlToPrint: TWinControl); overload; +procedure ScreenShot(bm: TBitmap; ControlToPrint: string); overload; procedure ScreenShot(bm: TBitmap; FormToPrint: TCustomForm; ControlToPrint: TWinControl); overload; procedure ScreenShot(bm: TBitmap; FormToPrint: TCustomForm); overload; procedure ScreenShot(bm: TBitmap; FormToPrint: TCustomForm; ControlToPrint: String); overload; @@ -2147,6 +2148,14 @@ raise EJclGraphicsError.CreateResFmt(@RSInvalidFormOrComponent, ['form']) end; +procedure ScreenShot(bm: TBitmap; ControlToPrint: string); overload; +begin +//uses the ActiveForm property of TScreen to determine on which form the control will be searched for. + if Length(ControlToPrint) > 0 then + ScreenShot(bm, Screen.ActiveForm, ControlToPrint) + else + raise EJclGraphicsError.CreateResFmt(@RSInvalidFormOrComponent, ['Component']) +end; procedure ScreenShot(bm: TBitmap; FormToPrint: TCustomForm; ControlToPrint: TWinControl); overload; begin if FormToPrint <> nil then This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-11-02 11:00:25
|
Revision: 3407 http://jcl.svn.sourceforge.net/jcl/?rev=3407&view=rev Author: outchy Date: 2010-11-02 11:00:19 +0000 (Tue, 02 Nov 2010) Log Message: ----------- Display help and source files in separate tables. Modified Paths: -------------- trunk/website/sourceforge/daily/index.php Modified: trunk/website/sourceforge/daily/index.php =================================================================== --- trunk/website/sourceforge/daily/index.php 2010-11-02 08:36:32 UTC (rev 3406) +++ trunk/website/sourceforge/daily/index.php 2010-11-02 11:00:19 UTC (rev 3407) @@ -44,7 +44,7 @@ all the latest bug fixes and improvements provided by the JCL developers.<br> <br> -The latest version is available for download below<br> +The latest source files are available for download below:<br> <br> <table style="width: 75%; text-align: left; margin-left: auto; margin-right: auto;" @@ -66,7 +66,11 @@ $filenames = array(); while (($filename = readdir($dh)) !== false) { - if (!is_dir($filename) && (substr($filename, 0, 4) == "jcl-")) + if (!is_dir($filename) && + (substr($filename, 0, 4) == "jcl-") && + (substr($filename, -11, 8) != "-winhelp") && + (substr($filename, -13, 10) != "-htmlhelp2") && + (substr($filename, -11, 8) != "-chmhelp")) { $filenames[] = $filename; } @@ -93,6 +97,59 @@ </tbody> </table> <br> +The latest help files are available for download below:<br> +<br> +<table + style="width: 75%; text-align: left; margin-left: auto; margin-right: auto;" + cellspacing="2" cellpadding="2"> + <tbody> + <tr> + <td style="vertical-align: top; font-weight: bold;">File<br> + </td> + <td style="vertical-align: top; font-weight: bold;">Date and time<br> + </td> + <td style="vertical-align: top;"><span style="font-weight: bold;">Size</span><br> + </td> +<!-- <td style="vertical-align: top;"><span style="font-weight: bold;">Description</span><br> + </td>--> + </tr> + <?php + + $dh = opendir("./"); + $filenames = array(); + while (($filename = readdir($dh)) !== false) + { + if (!is_dir($filename) && + (substr($filename, 0, 4) == "jcl-") && + ((substr($filename, -11, 8) == "-winhelp") || + (substr($filename, -13, 10) == "-htmlhelp2") || + (substr($filename, -11, 8) == "-chmhelp"))) + { + $filenames[] = $filename; + } + } + + // sort the array before displaying it + rsort($filenames); + + foreach ($filenames as $filename) + { + $filename_full = $filename; + echo '<tr>'; + echo ' <td style="vertical-align: top;"><a href="'.$filename_full.'">'.$filename_full.'</a><br>'; + echo ' </td>'; + echo ' <td style="vertical-align: top; white-space: nowrap;">'.GetDisplayFileDate($filename_full); + echo ' </td>'; + echo ' <td style="vertical-align: top; white-space: nowrap;">'.GetDisplayFileSize($filename_full); + echo ' </td>'; +// echo ' <td style="vertical-align: top;">The complete set of files<br>'; +// echo ' </td>'; + echo '</tr>'; + } + ?> + </tbody> +</table> +<br> The dates are presented according to the ISO standard (YYYY-MM-DD) and the hours are those of the location of the web server.<br> <br> Should you have any problems with those files, please do not hesitate This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sf...@us...> - 2010-11-02 08:36:39
|
Revision: 3406 http://jcl.svn.sourceforge.net/jcl/?rev=3406&view=rev Author: sfarrow Date: 2010-11-02 08:36:32 +0000 (Tue, 02 Nov 2010) Log Message: ----------- Provided overloads for the ScreenShot function, allowing the passing in of a TCustomForm descendent, a TWinControl Descendent or both. Also added the ability to print the contents of a control given it's name. Added relevant exception resource strings to JclVclResources. Modified Paths: -------------- trunk/jcl/source/vcl/JclGraphics.pas trunk/jcl/source/vcl/JclVclResources.pas Modified: trunk/jcl/source/vcl/JclGraphics.pas =================================================================== --- trunk/jcl/source/vcl/JclGraphics.pas 2010-10-31 21:33:36 UTC (rev 3405) +++ trunk/jcl/source/vcl/JclGraphics.pas 2010-11-02 08:36:32 UTC (rev 3406) @@ -54,7 +54,7 @@ uses Windows, - Classes, SysUtils, +forms, Classes, SysUtils, {$IFDEF UNITVERSIONING} JclUnitVersioning, {$ENDIF UNITVERSIONING} @@ -510,6 +510,10 @@ RegionBitmapMode: TJclRegionBitmapMode; UseAlphaChannel: Boolean = False): HRGN; procedure ScreenShot(bm: TBitmap; Left, Top, Width, Height: Integer; Window: THandle = HWND_DESKTOP); overload; procedure ScreenShot(bm: TBitmap; IncludeTaskBar: Boolean = True); overload; +procedure ScreenShot(bm: TBitmap; ControlToPrint: TWinControl); overload; +procedure ScreenShot(bm: TBitmap; FormToPrint: TCustomForm; ControlToPrint: TWinControl); overload; +procedure ScreenShot(bm: TBitmap; FormToPrint: TCustomForm); overload; +procedure ScreenShot(bm: TBitmap; FormToPrint: TCustomForm; ControlToPrint: String); overload; function MapWindowRect(hWndFrom, hWndTo: THandle; ARect: TRect):TRect; // PolyLines and Polygons @@ -2134,6 +2138,66 @@ ScreenShot(bm, R.Left, R.Top, R.Right, R.Bottom, HWND_DESKTOP); end; +procedure ScreenShot(bm: TBitmap; ControlToPrint: TWinControl); overload; +begin +//uses the ActiveForm property of TScreen to determine on which form the control will be searched for. + if ControlToPrint <> nil then + ScreenShot(bm, Screen.ActiveForm, ControlToPrint) + else + raise EJclGraphicsError.CreateResFmt(@RSInvalidFormOrComponent, ['form']) + end; + +procedure ScreenShot(bm: TBitmap; FormToPrint: TCustomForm; ControlToPrint: TWinControl); overload; +begin + if FormToPrint <> nil then + begin + if (ControlToPrint is TWinControl) then + ScreenShot(bm, FormToPrint, ControlToPrint.Name) + else + raise EJclGraphicsError.CreateResFmt(@RSInvalidControlType,[ControlToPrint.Name]) + end + else if ControlToPrint <> nil then + raise EJclGraphicsError.CreateResFmt(@RSInvalidFormOrComponent, ['form']) + else + raise EJclGraphicsError.CreateResFmt(@RSInvalidFormOrComponent, ['form']) +end; + +procedure ScreenShot(bm: TBitmap; FormToPrint: TCustomForm); overload; +begin + //Prints the entire forms area. + if FormToPrint <> nil then + ScreenShot(bm, FormToPrint.Left, FormToPrint.Top, FormToPrint.Width, FormToPrint.Height, FormToPrint.Handle) + else + raise EJclGraphicsError.CreateResFmt(@RSInvalidFormOrComponent, ['form']) +end; + +procedure ScreenShot(bm: TBitmap; FormToPrint: TCustomForm; ControlToPrint: String); overload; +var + Component: TComponent; +begin + if FormToPrint <> nil then + begin + if Length(ControlToPrint) =0 then + raise EJclGraphicsError.CreateResFmt(@RSInvalidFormOrComponent, ['component']) + else + begin + Component :=nil; + FormToPrint.FindComponent(ControlToPrint); + if Component =nil then + raise EJclGraphicsError.CreateResFmt(@RsComponentDoesNotExist,[ControlToPrint, FormToPrint.Name]) + else + begin + if Component is TWinControl then + ScreenShot(bm, TWinControl(Component).Left, TWinControl(Component).Top, TWinControl(Component).Width, TWinControl(Component).Height, TWinControl(Component).Handle) + else + raise EJclGraphicsError.CreateResFmt(@RSInvalidControlType,[ControlToPrint]); + end; + end; + end + else + raise EJclGraphicsError.CreateResFmt(@RSInvalidFormOrComponent, ['form']) +end; + function MapWindowRect(hWndFrom, hWndTo: THandle; ARect:TRect):TRect; begin MapWindowPoints(hWndFrom, hWndTo, ARect, 2); Modified: trunk/jcl/source/vcl/JclVclResources.pas =================================================================== --- trunk/jcl/source/vcl/JclVclResources.pas 2010-10-31 21:33:36 UTC (rev 3405) +++ trunk/jcl/source/vcl/JclVclResources.pas 2010-11-02 08:36:32 UTC (rev 3406) @@ -72,6 +72,9 @@ RsRegionCouldNotCreated = 'Region could not be created'; RsInvalidHandleForRegion = 'Invalid handle for region'; RsInvalidRegionInfo = 'Invalid RegionInfo'; + RsInvalidControlType = '%s is not descended from TWinControl'; + RsComponentDoesNotExist = '%s does not exist on form %s'; + RsInvalidFormOrComponent = 'A %s with a nil reference has been pass to the routine'; RsBitmapExtension = '.bmp'; RsJpegExtension = '.jpg'; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sf...@us...> - 2010-10-31 21:33:42
|
Revision: 3405 http://jcl.svn.sourceforge.net/jcl/?rev=3405&view=rev Author: sfarrow Date: 2010-10-31 21:33:36 +0000 (Sun, 31 Oct 2010) Log Message: ----------- Corrected spelling mistake pertaining to the naming of JclHookExceptions.jclUnkookExceptionsInModule renamed to JclHookExceptions.JclUnhookExceptionsInModule Modified Paths: -------------- trunk/jcl/source/windows/JclHookExcept.pas Modified: trunk/jcl/source/windows/JclHookExcept.pas =================================================================== --- trunk/jcl/source/windows/JclHookExcept.pas 2010-10-30 17:49:28 UTC (rev 3404) +++ trunk/jcl/source/windows/JclHookExcept.pas 2010-10-31 21:33:36 UTC (rev 3405) @@ -69,7 +69,7 @@ function JclExceptionsHooked: Boolean; function JclHookExceptionsInModule(Module: HMODULE): Boolean; -function JclUnkookExceptionsInModule(Module: HMODULE): Boolean; +function JclUnhookExceptionsInModule(Module: HMODULE): Boolean; // Exceptions hooking in libraries type @@ -509,7 +509,7 @@ TJclPeMapImgHooks.ReplaceImport(Pointer(Module), kernel32, RaiseExceptionAddress, @HookedRaiseException); end; -function JclUnkookExceptionsInModule(Module: HMODULE): Boolean; +function JclUnhookExceptionsInModule(Module: HMODULE): Boolean; begin Result := ExceptionsHooked and TJclPeMapImgHooks.ReplaceImport(Pointer(Module), kernel32, @HookedRaiseException, @Kernel32_RaiseException); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jfu...@us...> - 2010-10-30 17:49:34
|
Revision: 3404 http://jcl.svn.sourceforge.net/jcl/?rev=3404&view=rev Author: jfudickar Date: 2010-10-30 17:49:28 +0000 (Sat, 30 Oct 2010) Log Message: ----------- Tabs replaced by blanks Modified Paths: -------------- trunk/jcl/packages/xml/JclContainers-R.xml Modified: trunk/jcl/packages/xml/JclContainers-R.xml =================================================================== --- trunk/jcl/packages/xml/JclContainers-R.xml 2010-10-30 17:48:55 UTC (rev 3403) +++ trunk/jcl/packages/xml/JclContainers-R.xml 2010-10-30 17:49:28 UTC (rev 3404) @@ -17,18 +17,18 @@ </Requires> <Contains> <File Name="..\..\source\common\JclAbstractContainers.pas" Targets="all" Formname="" Condition=""/> - <File Name="..\..\source\common\JclAlgorithms.pas" Targets="all" Formname="" Condition=""/> - <File Name="..\..\source\common\JclArrayLists.pas" Targets="all" Formname="" Condition=""/> - <File Name="..\..\source\common\JclArraySets.pas" Targets="all" Formname="" Condition=""/> - <File Name="..\..\source\common\JclBinaryTrees.pas" Targets="all" Formname="" Condition=""/> - <File Name="..\..\source\common\JclContainerIntf.pas" Targets="all" Formname="" Condition=""/> - <File Name="..\..\source\common\JclHashMaps.pas" Targets="all" Formname="" Condition=""/> - <File Name="..\..\source\common\JclHashSets.pas" Targets="all" Formname="" Condition=""/> - <File Name="..\..\source\common\JclLinkedLists.pas" Targets="all" Formname="" Condition=""/> - <File Name="..\..\source\common\JclQueues.pas" Targets="all" Formname="" Condition=""/> - <File Name="..\..\source\common\JclSortedMaps.pas" Targets="all" Formname="" Condition=""/> - <File Name="..\..\source\common\JclStacks.pas" Targets="all" Formname="" Condition=""/> - <File Name="..\..\source\common\JclTrees.pas" Targets="all" Formname="" Condition=""/> + <File Name="..\..\source\common\JclAlgorithms.pas" Targets="all" Formname="" Condition=""/> + <File Name="..\..\source\common\JclArrayLists.pas" Targets="all" Formname="" Condition=""/> + <File Name="..\..\source\common\JclArraySets.pas" Targets="all" Formname="" Condition=""/> + <File Name="..\..\source\common\JclBinaryTrees.pas" Targets="all" Formname="" Condition=""/> + <File Name="..\..\source\common\JclContainerIntf.pas" Targets="all" Formname="" Condition=""/> + <File Name="..\..\source\common\JclHashMaps.pas" Targets="all" Formname="" Condition=""/> + <File Name="..\..\source\common\JclHashSets.pas" Targets="all" Formname="" Condition=""/> + <File Name="..\..\source\common\JclLinkedLists.pas" Targets="all" Formname="" Condition=""/> + <File Name="..\..\source\common\JclQueues.pas" Targets="all" Formname="" Condition=""/> + <File Name="..\..\source\common\JclSortedMaps.pas" Targets="all" Formname="" Condition=""/> + <File Name="..\..\source\common\JclStacks.pas" Targets="all" Formname="" Condition=""/> + <File Name="..\..\source\common\JclTrees.pas" Targets="all" Formname="" Condition=""/> <File Name="..\..\source\common\JclVectors.pas" Targets="all" Formname="" Condition=""/> </Contains> </Package> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jfu...@us...> - 2010-10-30 17:49:02
|
Revision: 3403 http://jcl.svn.sourceforge.net/jcl/?rev=3403&view=rev Author: jfudickar Date: 2010-10-30 17:48:55 +0000 (Sat, 30 Oct 2010) Log Message: ----------- Tabs replaced by blanks Modified Paths: -------------- trunk/jcl/source/common/JclSysUtils.pas trunk/jcl/source/common/JclUnicode.pas trunk/jcl/source/windows/JclDotNet.pas Modified: trunk/jcl/source/common/JclSysUtils.pas =================================================================== --- trunk/jcl/source/common/JclSysUtils.pas 2010-10-29 17:44:23 UTC (rev 3402) +++ trunk/jcl/source/common/JclSysUtils.pas 2010-10-30 17:48:55 UTC (rev 3403) @@ -167,8 +167,8 @@ function GetItem: T; procedure FreeItem; - constructor Create(Instance: T); - destructor Destroy; override; + constructor Create(Instance: T); + destructor Destroy; override; public class function New(Instance: T): ISafeGuard<T>; static; end; Modified: trunk/jcl/source/common/JclUnicode.pas =================================================================== --- trunk/jcl/source/common/JclUnicode.pas 2010-10-29 17:44:23 UTC (rev 3402) +++ trunk/jcl/source/common/JclUnicode.pas 2010-10-30 17:48:55 UTC (rev 3403) @@ -285,7 +285,7 @@ ccBidiControl, // Format control characters which have specific functions in the Unicode Bidirectional Algorithm [UAX9]. ccDash, // Punctuation characters explicitly called out as dashes in the Unicode Standard, plus their compatibility equivalents. Most of these have the General_Category value Pd, but some have the General_Category value Sm because of their use in mathematics. ccDeprecated, // For a machine-readable list of deprecated characters. No characters will ever be removed from the standard, but the usage of deprecated characters is strongly discouraged. - ccDiacritic, // Characters that linguistically modify the meaning of another character to which they apply. Some diacritics are not combining characters, and some combining characters are not diacritics. + ccDiacritic, // Characters that linguistically modify the meaning of another character to which they apply. Some diacritics are not combining characters, and some combining characters are not diacritics. ccExtender, // Characters whose principal function is to extend the value or shape of a preceding alphabetic character. Typical of these are length and iteration marks. ccHyphen, // Dashes which are used to mark connections between pieces of words, plus the Katakana middle dot. The Katakana middle dot functions like a hyphen, but is shaped like a dot rather than a dash. ccIdeographic, // Characters considered to be CJKV (Chinese, Japanese, Korean, and Vietnamese) ideographs. @@ -301,7 +301,7 @@ ccOtherIDStart, // Used for backward compatibility of ID_Start. ccOtherLowercase, // Used in deriving the Lowercase property. ccOtherMath, // Used in deriving the Math property. - ccOtherUppercase, // Used in deriving the Uppercase property. + ccOtherUppercase, // Used in deriving the Uppercase property. ccPatternSyntax, // Used for pattern syntax as described in UAX #31: Unicode Identifier and Pattern Syntax [UAX31]. ccPatternWhiteSpace, ccRadical, // Used in Ideographic Description Sequences. @@ -340,7 +340,7 @@ cftSmall, // Small variant form (CNS compatibility) cftSquare, // CJK squared font variant cftFraction, // Vulgar fraction form - cftCompat // Otherwise unspecified compatibility character + cftCompat // Otherwise unspecified compatibility character ); // used to hold information about the start and end Modified: trunk/jcl/source/windows/JclDotNet.pas =================================================================== --- trunk/jcl/source/windows/JclDotNet.pas 2010-10-29 17:44:23 UTC (rev 3402) +++ trunk/jcl/source/windows/JclDotNet.pas 2010-10-30 17:48:55 UTC (rev 3403) @@ -322,9 +322,9 @@ {$EXTERNALSYM CLSID_RESOLUTION_FLAGS} const - CLSID_RESOLUTION_DEFAULT = $0; + CLSID_RESOLUTION_DEFAULT = $0; {$EXTERNALSYM CLSID_RESOLUTION_DEFAULT} - CLSID_RESOLUTION_REGISTERED = $1; + CLSID_RESOLUTION_REGISTERED = $1; {$EXTERNALSYM CLSID_RESOLUTION_REGISTERED} function GetRequestedRuntimeVersionForCLSID(rclsid: TGuid; pVersion: PWideChar; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-10-29 17:44:29
|
Revision: 3402 http://jcl.svn.sourceforge.net/jcl/?rev=3402&view=rev Author: outchy Date: 2010-10-29 17:44:23 +0000 (Fri, 29 Oct 2010) Log Message: ----------- When C++Builder only is installed, the BPL output path is stored in an other XML setting node; Modified Paths: -------------- trunk/jcl/source/common/JclIDEUtils.pas Modified: trunk/jcl/source/common/JclIDEUtils.pas =================================================================== --- trunk/jcl/source/common/JclIDEUtils.pas 2010-10-28 19:15:05 UTC (rev 3401) +++ trunk/jcl/source/common/JclIDEUtils.pas 2010-10-29 17:44:23 UTC (rev 3402) @@ -3299,9 +3299,17 @@ Result := SubstitutePath(GetMsBuildEnvOption(MsBuildWin32DLLOutputPathNodeName)); end; 6, 7: - Result := SubstitutePath(GetMsBuildEnvOption(MsBuildWin32DLLOutputPathNodeName)); + begin + Result := SubstitutePath(GetMsBuildEnvOption(MsBuildCBuilderBPLOutputPathNodeName)); + if Result = '' then + Result := SubstitutePath(GetMsBuildEnvOption(MsBuildWin32DLLOutputPathNodeName)); + end; 8: - Result := SubstitutePath(GetMsBuildEnvOption(MsBuildDelphiDLLOutputPathNodeName)); + begin + Result := SubstitutePath(GetMsBuildEnvOption(MsBuildCBuilderBPLOutputPathNodeName)); + if Result = '' then + Result := SubstitutePath(GetMsBuildEnvOption(MsBuildDelphiDLLOutputPathNodeName)); + end; end; end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-10-28 19:15:11
|
Revision: 3401 http://jcl.svn.sourceforge.net/jcl/?rev=3401&view=rev Author: outchy Date: 2010-10-28 19:15:05 +0000 (Thu, 28 Oct 2010) Log Message: ----------- Mantis 5384: won't install with CBuilder XE. EnvOptions.proj is incomplete if only C++Builder XE is installed. A default value as to be evaluated in such situations. Modified Paths: -------------- trunk/jcl/source/common/JclIDEUtils.pas Modified: trunk/jcl/source/common/JclIDEUtils.pas =================================================================== --- trunk/jcl/source/common/JclIDEUtils.pas 2010-10-27 18:51:05 UTC (rev 3400) +++ trunk/jcl/source/common/JclIDEUtils.pas 2010-10-28 19:15:05 UTC (rev 3401) @@ -3567,7 +3567,11 @@ if not (bpBCBuilder32 in Personalities) then raise EJclBorRadException.CreateResFmt(@RsEDualPackageNotSupported, [Name]); if (RadToolKind = brBorlandDevStudio) and (IDEVersionNumber >= 8) then - Result := SubstitutePath(GetMsBuildEnvOption(MsBuildDelphiHPPOutputPathNodeName)) + begin + Result := SubstitutePath(GetMsBuildEnvOption(MsBuildDelphiHPPOutputPathNodeName)); + if Result = '' then + Result := SubstitutePath('$(BDSCOMMONDIR)\hpp'); + end else Result := inherited GetVclIncludeDir; end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-10-27 18:51:11
|
Revision: 3400 http://jcl.svn.sourceforge.net/jcl/?rev=3400&view=rev Author: outchy Date: 2010-10-27 18:51:05 +0000 (Wed, 27 Oct 2010) Log Message: ----------- Enable the tracking of exceptions raised from C++ code. Modified Paths: -------------- trunk/jcl/source/windows/JclHookExcept.pas Modified: trunk/jcl/source/windows/JclHookExcept.pas =================================================================== --- trunk/jcl/source/windows/JclHookExcept.pas 2010-10-26 15:35:58 UTC (rev 3399) +++ trunk/jcl/source/windows/JclHookExcept.pas 2010-10-27 18:51:05 UTC (rev 3400) @@ -278,10 +278,15 @@ Arguments: PExceptionArguments); stdcall; const cDelphiException = $0EEDFADE; - cNonContinuable = 1; + cNonContinuable = 1; // Delphi exceptions + cNonContinuableException = $C0000025; // C++Builder exceptions (sounds like a bug) + DelphiNumberOfArguments = 7; + CBuilderNumberOfArguments = 8; begin - if (ExceptionFlags = cNonContinuable) and (ExceptionCode = cDelphiException) and - (NumberOfArguments = 7) and (TJclAddr(Arguments) = TJclAddr(@Arguments) + SizeOf(Pointer)) then + if ((ExceptionFlags = cNonContinuable) or (ExceptionFlags = cNonContinuableException)) and + (ExceptionCode = cDelphiException) and + (NumberOfArguments in [DelphiNumberOfArguments,CBuilderNumberOfArguments]) and + (TJclAddr(Arguments) = TJclAddr(@Arguments) + SizeOf(Pointer)) then begin DoExceptNotify(Arguments.ExceptObj, Arguments.ExceptAddr, False, GetFramePointer); end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-10-26 15:36:04
|
Revision: 3399 http://jcl.svn.sourceforge.net/jcl/?rev=3399&view=rev Author: outchy Date: 2010-10-26 15:35:58 +0000 (Tue, 26 Oct 2010) Log Message: ----------- Fix one compilation hint. Modified Paths: -------------- trunk/jcl/examples/windows/delphitools/common/ToolsUtils.pas Modified: trunk/jcl/examples/windows/delphitools/common/ToolsUtils.pas =================================================================== --- trunk/jcl/examples/windows/delphitools/common/ToolsUtils.pas 2010-10-26 15:34:33 UTC (rev 3398) +++ trunk/jcl/examples/windows/delphitools/common/ToolsUtils.pas 2010-10-26 15:35:58 UTC (rev 3399) @@ -78,6 +78,9 @@ implementation uses + {$IFDEF HAS_UNIT_CHARACTER} + Character, + {$ENDIF HAS_UNIT_CHARACTER} About, CommCtrl, JclPeImage, JclWin32; resourcestring This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-10-26 15:34:40
|
Revision: 3398 http://jcl.svn.sourceforge.net/jcl/?rev=3398&view=rev Author: outchy Date: 2010-10-26 15:34:33 +0000 (Tue, 26 Oct 2010) Log Message: ----------- Fix issue when closing C++Builder applications with enabled UnitVersioning. Style cleaning of JclUnitVersioning (performance update). Modified Paths: -------------- trunk/jcl/examples/common/unitversioning/UnitVersioningTestMain.dfm trunk/jcl/examples/common/unitversioning/UnitVersioningTestMain.pas trunk/jcl/source/common/JclUnitVersioning.pas trunk/jcl/source/common/JclUnitVersioningProviders.pas Modified: trunk/jcl/examples/common/unitversioning/UnitVersioningTestMain.dfm =================================================================== --- trunk/jcl/examples/common/unitversioning/UnitVersioningTestMain.dfm 2010-10-26 15:27:39 UTC (rev 3397) +++ trunk/jcl/examples/common/unitversioning/UnitVersioningTestMain.dfm 2010-10-26 15:34:33 UTC (rev 3398) @@ -1,9 +1,9 @@ object frmUnitVersioningTestMain: TfrmUnitVersioningTestMain Left = 192 Top = 137 - Width = 703 - Height = 480 Caption = 'UnitVersioning Test' + ClientHeight = 453 + ClientWidth = 695 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Modified: trunk/jcl/examples/common/unitversioning/UnitVersioningTestMain.pas =================================================================== --- trunk/jcl/examples/common/unitversioning/UnitVersioningTestMain.pas 2010-10-26 15:27:39 UTC (rev 3397) +++ trunk/jcl/examples/common/unitversioning/UnitVersioningTestMain.pas 2010-10-26 15:34:33 UTC (rev 3398) @@ -84,9 +84,18 @@ procedure TfrmUnitVersioningTestMain.FormDestroy(Sender: TObject); var I: Integer; + UnitVersionInfoPtr: PUnitVersionInfo; begin for I := 0 to FFindMethodsInfoPtrs.Count - 1 do - Dispose(FFindMethodsInfoPtrs[I]); + begin + UnitVersionInfoPtr := PUnitVersionInfo(FFindMethodsInfoPtrs[I]); + StrDispose(UnitVersionInfoPtr^.RCSfile); + StrDispose(UnitVersionInfoPtr^.Revision); + StrDispose(UnitVersionInfoPtr^.Date); + StrDispose(UnitVersionInfoPtr^.LogPath); + StrDispose(UnitVersionInfoPtr^.Extra); + Dispose(UnitVersionInfoPtr); + end; FFindMethodsInfoPtrs.Free; FreeTestDLL; end; @@ -113,11 +122,11 @@ New(UnitVersionInfoPtr); with UnitVersionInfoPtr^ do begin - RCSfile := Format('unit%d.pas', [I]); - Revision := ''; - Date := ''; - LogPath := ''; - Extra := ''; + RCSfile := StrNew(PChar(Format('unit%d.pas', [I]))); + Revision := StrNew(''); + Date := StrNew(''); + LogPath := StrNew(''); + Extra := StrNew(''); Data := nil; end; FFindMethodsInfoPtrs.Add(UnitVersionInfoPtr); @@ -264,8 +273,8 @@ begin with UnitVersionInfo do begin - RCSfile := Format('unit%d.pas', [I]); - Revision := Format('0.%d', [I]); + RCSfile := PChar(Format('unit%d.pas', [I])); + Revision := PChar(Format('0.%d', [I])); Date := ''; LogPath := ''; Extra := ''; Modified: trunk/jcl/source/common/JclUnitVersioning.pas =================================================================== --- trunk/jcl/source/common/JclUnitVersioning.pas 2010-10-26 15:27:39 UTC (rev 3397) +++ trunk/jcl/source/common/JclUnitVersioning.pas 2010-10-26 15:34:33 UTC (rev 3398) @@ -49,11 +49,11 @@ type PUnitVersionInfo = ^TUnitVersionInfo; TUnitVersionInfo = record - RCSfile: string; // $'RCSfile$ - Revision: string; // $'Revision$ - Date: string; // $'Date$ in UTC (GMT) - LogPath: string; // logical file path - Extra: string; // user defined string + RCSfile: PChar; // $'RCSfile$ + Revision: PChar; // $'Revision$ + Date: PChar; // $'Date$ in UTC (GMT) + LogPath: PChar; // logical file path + Extra: PChar; // user defined string Data: Pointer; // user data end; @@ -107,10 +107,10 @@ FModules: TObjectList; FProviders: TObjectList; - function GetItems(Index: Integer): TUnitVersion; + function GetItem(Index: Integer): TUnitVersion; function GetCount: Integer; function GetModuleCount: Integer; - function GetModules(Index: Integer): TUnitVersioningModule; + function GetModule(Index: Integer): TUnitVersioningModule; procedure UnregisterModule(Module: TUnitVersioningModule); overload; procedure ValidateModules; @@ -131,11 +131,11 @@ // units by modules property ModuleCount: Integer read GetModuleCount; - property Modules[Index: Integer]: TUnitVersioningModule read GetModules; + property Modules[Index: Integer]: TUnitVersioningModule read GetModule; // all units property Count: Integer read GetCount; - property Items[Index: Integer]: TUnitVersion read GetItems; default; + property Items[Index: Integer]: TUnitVersion read GetItem; default; end; procedure RegisterUnitVersion(Instance: THandle; const Info: TUnitVersionInfo); @@ -380,14 +380,19 @@ end; function TUnitVersioningModule.IndexOf(const RCSfile: string; const LogPath: string): Integer; +var + Item: TUnitVersion; begin for Result := 0 to FItems.Count - 1 do - if CompareFilenames(Items[Result].RCSfile, RCSfile) = 0 then + begin + Item := Items[Result]; + if CompareFilenames(Item.RCSfile, RCSfile) = 0 then if LogPath = '*' then Exit else - if CompareFilenames(LogPath, Trim(Items[Result].LogPath)) = 0 then + if CompareFilenames(LogPath, Trim(Item.LogPath)) = 0 then Exit; + end; Result := -1; end; @@ -430,12 +435,15 @@ Module: TUnitVersioningModule; begin for I := 0 to FModules.Count - 1 do - if Modules[I].Instance = Instance then + begin + Module := Modules[I]; + if Module.Instance = Instance then begin - if Modules[I].IndexOfInfo(Info) = -1 then - Modules[I].Add(Info); + if Module.IndexOfInfo(Info) = -1 then + Module.Add(Info); Exit; end; + end; // create a new module entry Module := TUnitVersioningModule.Create(Instance); FModules.Add(Module); @@ -471,21 +479,23 @@ Inc(Result, Modules[I].Count); end; -function TUnitVersioning.GetItems(Index: Integer): TUnitVersion; +function TUnitVersioning.GetItem(Index: Integer): TUnitVersion; var Cnt, I: Integer; + Module: TUnitVersioningModule; begin Result := nil; ValidateModules; Cnt := 0; for I := 0 to FModules.Count - 1 do begin - if Index < Cnt + Modules[I].Count then + Module := Modules[I]; + if Index < Cnt + Module.Count then begin - Result := Modules[I].Items[Index - Cnt]; + Result := Module.Items[Index - Cnt]; Break; end; - Inc(Cnt, Modules[I].Count); + Inc(Cnt, Module.Count); end; end; @@ -495,7 +505,7 @@ Result := FModules.Count; end; -function TUnitVersioning.GetModules(Index: Integer): TUnitVersioningModule; +function TUnitVersioning.GetModule(Index: Integer): TUnitVersioningModule; begin Result := TUnitVersioningModule(FModules[Index]); end; @@ -510,19 +520,25 @@ procedure TUnitVersioning.ValidateModules; var I: Integer; + {$IFNDEF FPCUNIX} Buffer: string; + {$ENDIF ~FPCUNIX} + Module: TUnitVersioningModule; begin + {$IFNDEF FPCUNIX} + SetLength(Buffer, 1024); + {$ENDIF ~FPCUNIX} for I := FModules.Count - 1 downto 0 do begin - SetLength(Buffer, 1024); + Module := Modules[I]; {$IFDEF FPCUNIX} - if dlsym(Pointer(Modules[I].Instance), '_init') = nil then + if dlsym(Pointer(Module.Instance), '_init') = nil then {$ELSE ~FPCUNIX} - if GetModuleFileName(Modules[I].Instance, PChar(Buffer), 1024) = 0 then + if GetModuleFileName(Module.Instance, PChar(Buffer), 1024) = 0 then {$ENDIF ~FPCUNIX} // This module is no more in memory but has not unregistered itself so // unregister it here. - UnregisterModule(Modules[I]); + UnregisterModule(Module); end; end; @@ -542,18 +558,20 @@ function TUnitVersioning.IndexOf(const RCSfile: string; const LogPath: string): Integer; var I, Cnt, Index: Integer; + Module: TUnitVersioningModule; begin Result := -1; Cnt := 0; for I := 0 to FModules.Count - 1 do begin - Index := Modules[I].IndexOf(RCSfile, LogPath); + Module := Modules[I]; + Index := Module.IndexOf(RCSfile, LogPath); if Index <> -1 then begin Result := Cnt + Index; Break; end; - Inc(Cnt, Modules[I].Count); + Inc(Cnt, Module.Count); end; end; Modified: trunk/jcl/source/common/JclUnitVersioningProviders.pas =================================================================== --- trunk/jcl/source/common/JclUnitVersioningProviders.pas 2010-10-26 15:27:39 UTC (rev 3397) +++ trunk/jcl/source/common/JclUnitVersioningProviders.pas 2010-10-26 15:34:33 UTC (rev 3398) @@ -115,6 +115,33 @@ const JclUnitVersioningDataResName = 'JCLUV'; +function NewUnitVersionInfo: PUnitVersionInfo; +begin + New(Result); + FillChar(Result^ , SizeOf(Result^), 0); +end; + +procedure DisposeUnitVersionInfo(var Value: PUnitVersionInfo); +begin + StrDispose(Value^.RCSfile); + StrDispose(Value^.Revision); + StrDispose(Value^.Date); + StrDispose(Value^.LogPath); + StrDispose(Value^.Extra); + Dispose(Value); +end; + +function CopyUnitVersionInfo(Src: PUnitVersionInfo): PUnitVersionInfo; +begin + New(Result); + Result^.RCSfile := StrNew(Src^.RCSfile); + Result^.Revision := StrNew(Src^.Revision); + Result^.Date := StrNew(Src^.Date); + Result^.LogPath := StrNew(Src^.LogPath); + Result^.Extra := StrNew(Src^.Extra); + Result^.Data := Src^.Data; +end; + type TJclUnitVersioningHeader = record UnitCount: Integer; @@ -136,12 +163,8 @@ end; procedure TJclUnitVersioningList.Add(Info: TUnitVersionInfo); -var - UnitVersionInfoPtr: PUnitVersionInfo; begin - New(UnitVersionInfoPtr); - UnitVersionInfoPtr^ := Info; - FItems.Add(UnitVersionInfoPtr); + FItems.Add(CopyUnitVersionInfo(@Info)); end; procedure TJclUnitVersioningList.Clear; @@ -152,7 +175,7 @@ for I := FItems.Count - 1 downto 0 do begin Item := PUnitVersionInfo(FItems[I]); - Dispose(Item); + DisposeUnitVersionInfo(Item); end; FItems.Clear; end; @@ -180,7 +203,7 @@ end; end; -function ReadStringFromStream(AStream: TStream; var AString: string): Boolean; +function ReadStringFromStream(AStream: TStream; var AString: PChar): Boolean; var StringLength: Integer; begin @@ -196,27 +219,26 @@ begin if StringLength > 0 then begin - SetLength(AString, StringLength); - AStream.Read(PChar(AString)^, StringLength); - end; - Result := True; + AString := StrAlloc(StringLength); + Result := AStream.Read(AString^, StringLength) = StringLength; + end + else + Result := True; end; end; end; end; -function ReadUnitVersionInfo(AStream: TStream; var AVersionInfo: TUnitVersionInfo): Boolean; +function ReadUnitVersionInfo(AStream: TStream; out AVersionInfo: PUnitVersionInfo): Boolean; begin + AVersionInfo := NewUnitVersionInfo; Result := True; - with AVersionInfo do - begin - Result := Result and ReadStringFromStream(AStream, RCSfile); - Result := Result and ReadStringFromStream(AStream, Revision); - Result := Result and ReadStringFromStream(AStream, Date); - Result := Result and ReadStringFromStream(AStream, LogPath); - Result := Result and ReadStringFromStream(AStream, Extra); - Data := nil; - end; + Result := Result and ReadStringFromStream(AStream, AVersionInfo^.RCSfile); + Result := Result and ReadStringFromStream(AStream, AVersionInfo^.Revision); + Result := Result and ReadStringFromStream(AStream, AVersionInfo^.Date); + Result := Result and ReadStringFromStream(AStream, AVersionInfo^.LogPath); + Result := Result and ReadStringFromStream(AStream, AVersionInfo^.Extra); + AVersionInfo^.Data := nil; end; function TJclUnitVersioningList.Load(AModule: HMODULE): Boolean; @@ -279,11 +301,8 @@ LastReadOkay := True; while (UnitsToRead > 0) and LastReadOkay do begin - New(UnitVersionInfoPtr); - LastReadOkay := ReadUnitVersionInfo(AStream, UnitVersionInfoPtr^); - if not LastReadOkay then - Dispose(UnitVersionInfoPtr) - else + LastReadOkay := ReadUnitVersionInfo(AStream, UnitVersionInfoPtr); + if LastReadOkay then FItems.Add(UnitVersionInfoPtr); Dec(UnitsToRead); end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-10-26 15:27:47
|
Revision: 3397 http://jcl.svn.sourceforge.net/jcl/?rev=3397&view=rev Author: outchy Date: 2010-10-26 15:27:39 +0000 (Tue, 26 Oct 2010) Log Message: ----------- SVN keywords are case-sensitive. Modified Paths: -------------- trunk/jcl/examples/common/unitversioning/UnitVersioningTestDLL.dpr Modified: trunk/jcl/examples/common/unitversioning/UnitVersioningTestDLL.dpr =================================================================== --- trunk/jcl/examples/common/unitversioning/UnitVersioningTestDLL.dpr 2010-10-25 18:18:37 UTC (rev 3396) +++ trunk/jcl/examples/common/unitversioning/UnitVersioningTestDLL.dpr 2010-10-26 15:27:39 UTC (rev 3397) @@ -37,7 +37,7 @@ const UnitVersioning: TUnitVersionInfo = ( - RCSfile: '$Url:$'; + RCSfile: '$URL$'; Revision: '$Revision$'; Date: '$Date$'; LogPath: 'JCL\examples\common\unitversioning'; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-10-25 18:19:00
|
Revision: 3396 http://jcl.svn.sourceforge.net/jcl/?rev=3396&view=rev Author: outchy Date: 2010-10-25 18:18:37 +0000 (Mon, 25 Oct 2010) Log Message: ----------- New archive extensions proposed by Matteo Riso (from ZipGenius.it - by private email). Modified Paths: -------------- trunk/jcl/source/common/JclResources.pas Modified: trunk/jcl/source/common/JclResources.pas =================================================================== --- trunk/jcl/source/common/JclResources.pas 2010-10-25 15:55:53 UTC (rev 3395) +++ trunk/jcl/source/common/JclResources.pas 2010-10-25 18:18:37 UTC (rev 3396) @@ -1011,11 +1011,24 @@ RsCompression7zWindows = 'Windows'; RsCompression7zUnix = 'Unix'; RsCompressionZipName = 'Zip archive'; - RsCompressionZipExtensions = '*.zip;*.jar;*.xpi'; + RsCompressionZipExtensions = '*.zip;'+ // Basic ZIP file + '*.jar;*.ear;*.war;'+ // JAVA files + '*.cbz;'+ //Comic reader files - ZIP version + '*.apk;'+ // Android application package + '*.wsz;*.wal;'+ // Winamp Skins + '*.xpi;*.crx;'+ // Firefox, Chrome extensions + '*.dfsz;'+ // ??? + '*.pcv;'+ // MozBackup file + '+*.bsz;'+ // BSplayer skin + '*.mskin;'+ // Maxthon skin + '*.wmz;'+ // Windows Media Player skin + '*.sxw;*.sxi;*.sxt;*.sxd;*.sxc;*.sxm;*.sxg;*.stw;*.sti;*.std;*.stc;'+ // OpenOffice.org 1.x documents and templates + '*.odh;*.odd;*.odt;*.odm;*.ods;*.ots;*.odg;*.otg;*.odp;*.otp;*.odf;*.odb'; // OpenOffice.org 2.x/3.x docs and templates RsCompressionBZip2Name = 'BZip2 archive'; RsCompressionBZip2Extensions = '*.bz2;*.bzip2;*.tbz2;*.tbz'; RsCompressionRarName = 'Rar archive'; - RsCompressionRarExtensions = '*.rar;*.r00'; + RsCompressionRarExtensions = '*.rar;*.r00;'+ + '*.cbr'; // Comic reader file - RAR version RsCompressionArjName = 'Arj archive'; RsCompressionArjExtensions = '*.arj'; RsCompressionZName = 'Z archive'; @@ -1025,7 +1038,8 @@ RsCompression7zName = '7z archive'; RsCompression7zExtensions = '*.7z'; RsCompressionCabName = 'Cab archive'; - RsCompressionCabExtensions = '*.cab'; + RsCompressionCabExtensions = '*.cab;'+ + '*.fwp'; // FrontPage Web Package RsCompressionNsisName = 'Nsis archive'; RsCompressionNsisExtensions = '*.nsis'; RsCompressionLzmaName = 'Lzma archive'; @@ -1043,7 +1057,8 @@ RsCompressionUdfName = 'Udf archive'; RsCompressionUdfExtensions = '*.iso'; RsCompressionXarName = 'Xar archive'; - RsCompressionXarExtensions = '*.xar'; + RsCompressionXarExtensions = '*.xar;'+ + '*.safariextz'; // Safari extensions RsCompressionMubName = 'Mub archive'; // TODO: extension might be *.*, but then TJclCompressionStreamFormats.FindDecompressFormat can fail RsCompressionMubExtensions = '*.'; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-10-25 15:55:59
|
Revision: 3395 http://jcl.svn.sourceforge.net/jcl/?rev=3395&view=rev Author: outchy Date: 2010-10-25 15:55:53 +0000 (Mon, 25 Oct 2010) Log Message: ----------- New structures and functions to automatically cache strings parsed from MAP files and avoid duplicate conversions. Modified Paths: -------------- trunk/jcl/source/windows/JclDebug.pas Modified: trunk/jcl/source/windows/JclDebug.pas =================================================================== --- trunk/jcl/source/windows/JclDebug.pas 2010-10-25 14:46:18 UTC (rev 3394) +++ trunk/jcl/source/windows/JclDebug.pas 2010-10-25 15:55:53 UTC (rev 3395) @@ -178,6 +178,11 @@ property OnLineNumbers: TJclMapLineNumbersEvent read FOnLineNumbers write FOnLineNumbers; end; + TJclMapStringCache = record + CachedValue: string; + RawValue: PJclMapString; + end; + // MAP file scanner PJclMapSegmentClass = ^TJclMapSegmentClass; TJclMapSegmentClass = record @@ -186,8 +191,8 @@ Addr: DWORD; // start as in process memory VA: DWORD; // position relative to module base adress Len: DWORD; // segment length - SectionName: PJclMapString; - GroupName: PJclMapString; + SectionName: TJclMapStringCache; + GroupName: TJclMapStringCache; end; PJclMapSegment = ^TJclMapSegment; @@ -195,14 +200,14 @@ Segment: Word; StartVA: DWORD; // VA relative to (module base address + $10000) EndVA: DWORD; - UnitName: PJclMapString; + UnitName: TJclMapStringCache; end; PJclMapProcName = ^TJclMapProcName; TJclMapProcName = record Segment: Word; VA: DWORD; // VA relative to (module base address + $10000) - ProcName: PJclMapString; + ProcName: TJclMapStringCache; end; PJclMapLineNumber = ^TJclMapLineNumber; @@ -235,6 +240,11 @@ procedure Scan; public constructor Create(const MapFileName: TFileName; Module: HMODULE); override; + + class function MapStringCacheToFileName(var MapString: TJclMapStringCache): string; + class function MapStringCacheToModuleName(var MapString: TJclMapStringCache): string; + class function MapStringCacheToStr(var MapString: TJclMapStringCache; IgnoreSpaces: Boolean = False): string; + // Addr are virtual addresses relative to (module base address + $10000) function LineNumberFromAddr(Addr: DWORD): Integer; overload; function LineNumberFromAddr(Addr: DWORD; out Offset: Integer): Integer; overload; @@ -1668,6 +1678,39 @@ Result := Addr; end; +class function TJclMapScanner.MapStringCacheToFileName( + var MapString: TJclMapStringCache): string; +begin + Result := MapString.CachedValue; + if Result = '' then + begin + Result := MapStringToFileName(MapString.RawValue); + MapString.CachedValue := Result; + end; +end; + +class function TJclMapScanner.MapStringCacheToModuleName( + var MapString: TJclMapStringCache): string; +begin + Result := MapString.CachedValue; + if Result = '' then + begin + Result := MapStringToModuleName(MapString.RawValue); + MapString.CachedValue := Result; + end; +end; + +class function TJclMapScanner.MapStringCacheToStr(var MapString: TJclMapStringCache; + IgnoreSpaces: Boolean): string; +begin + Result := MapString.CachedValue; + if Result = '' then + begin + Result := MapStringToStr(MapString.RawValue, IgnoreSpaces); + MapString.CachedValue := Result; + end; +end; + procedure TJclMapScanner.ClassTableItem(const Address: TJclMapAddress; Len: Integer; SectionName, GroupName: PJclMapString); var @@ -1685,8 +1728,8 @@ else FSegmentClasses[C].VA := MAPAddrToVA(FSegmentClasses[C].Start); FSegmentClasses[C].Len := Len; - FSegmentClasses[C].SectionName := SectionName; - FSegmentClasses[C].GroupName := GroupName; + FSegmentClasses[C].SectionName.RawValue := SectionName; + FSegmentClasses[C].GroupName.RawValue := GroupName; if FModule <> 0 then begin @@ -1743,7 +1786,7 @@ if (FSegmentClasses[SegIndex].Segment = Address.Segment) and (DWORD(Address.Offset) < FSegmentClasses[SegIndex].Len) then begin - if StrLIComp(FSegmentClasses[SegIndex].GroupName, 'TLS', 3) = 0 then + if StrLIComp(FSegmentClasses[SegIndex].GroupName.RawValue, 'TLS', 3) = 0 then Va := Address.Offset else VA := MAPAddrToVA(Address.Offset + FSegmentClasses[SegIndex].Start); @@ -1767,7 +1810,7 @@ SetLength(FSourceNames, C + 1); FSourceNames[C].Segment := FSegmentClasses[SegIndex].Segment; FSourceNames[C].VA := VA; - FSourceNames[C].ProcName := FNewUnitFileName; + FSourceNames[C].ProcName.RawValue := FNewUnitFileName; FNewUnitFileName := nil; end; Break; @@ -1789,7 +1832,7 @@ for I := Length(FSegments) - 1 downto 0 do if (FSegments[I].StartVA <= Addr) and (Addr < FSegments[I].EndVA) then begin - Result := MapStringToModuleName(FSegments[I].UnitName); + Result := MapStringCacheToModuleName(FSegments[I].UnitName); Break; end; end; @@ -1830,7 +1873,7 @@ I := SearchDynArray(FProcNames, SizeOf(FProcNames[0]), Search_MapProcName, @Addr, True); if (I <> -1) and (FProcNames[I].VA >= ModuleStartAddr) then begin - Result := MapStringToStr(FProcNames[I].ProcName, True); + Result := MapStringCacheToStr(FProcNames[I].ProcName, True); Offset := Addr - FProcNames[I].VA; end; end; @@ -1851,11 +1894,11 @@ if FProcNamesCnt mod 256 = 0 then SetLength(FProcNames, FProcNamesCnt + 256); FProcNames[FProcNamesCnt].Segment := FSegmentClasses[SegIndex].Segment; - if StrLIComp(FSegmentClasses[SegIndex].GroupName, 'TLS', 3) = 0 then + if StrLIComp(FSegmentClasses[SegIndex].GroupName.RawValue, 'TLS', 3) = 0 then FProcNames[FProcNamesCnt].VA := Address.Offset else FProcNames[FProcNamesCnt].VA := MAPAddrToVA(Address.Offset + FSegmentClasses[SegIndex].Start); - FProcNames[FProcNamesCnt].ProcName := Name; + FProcNames[FProcNamesCnt].ProcName.RawValue := Name; Inc(FProcNamesCnt); Break; end; @@ -1901,7 +1944,7 @@ if (FSegmentClasses[SegIndex].Segment = Address.Segment) and (DWORD(Address.Offset) < FSegmentClasses[SegIndex].Len) then begin - if StrLIComp(FSegmentClasses[SegIndex].GroupName, 'TLS', 3) = 0 then + if StrLIComp(FSegmentClasses[SegIndex].GroupName.RawValue, 'TLS', 3) = 0 then VA := Address.Offset else VA := MAPAddrToVA(Address.Offset + FSegmentClasses[SegIndex].Start); @@ -1910,7 +1953,7 @@ FSegments[FSegmentCnt].Segment := FSegmentClasses[SegIndex].Segment; FSegments[FSegmentCnt].StartVA := VA; FSegments[FSegmentCnt].EndVA := VA + DWORD(Len); - FSegments[FSegmentCnt].UnitName := UnitName; + FSegments[FSegmentCnt].UnitName.RawValue := UnitName; Inc(FSegmentCnt); Break; end; @@ -1926,14 +1969,14 @@ Result := ''; I := SearchDynArray(FSourceNames, SizeOf(FSourceNames[0]), Search_MapProcName, @Addr, True); if (I <> -1) and (FSourceNames[I].VA >= ModuleStartVA) then - Result := MapStringToStr(FSourceNames[I].ProcName); + Result := MapStringCacheToStr(FSourceNames[I].ProcName); if Result = '' then begin // try with module names (C++Builder compliance) for I := Length(FSegments) - 1 downto 0 do if (FSegments[I].StartVA <= Addr) and (Addr < FSegments[I].EndVA) then begin - Result := MapStringToFileName(FSegments[I].UnitName); + Result := MapStringCacheToFileName(FSegments[I].UnitName); Break; end; end; @@ -2403,7 +2446,7 @@ if FSegmentClasses[SegIndex].Segment = SegID then begin LastSegmentID := FSegmentClasses[SegIndex].Segment; - GroupName := MapStringToStr(FSegmentClasses[SegIndex].GroupName); + GroupName := MapStringCacheToStr(FSegmentClasses[SegIndex].GroupName); LastSegmentStored := (GroupName = 'CODE') or (GroupName = 'ICODE'); Break; end; @@ -2439,7 +2482,7 @@ if IsSegmentStored(FSegments[I].Segment) then begin WriteValueOfs(FSegments[I].StartVA, L1); - WriteValueOfs(AddWord(MapStringToModuleName(FSegments[I].UnitName)), L2); + WriteValueOfs(AddWord(MapStringCacheToModuleName(FSegments[I].UnitName)), L2); end; WriteValue(MaxInt); @@ -2450,7 +2493,7 @@ if IsSegmentStored(FSourceNames[I].Segment) then begin WriteValueOfs(FSourceNames[I].VA, L1); - WriteValueOfs(AddWord(MapStringToStr(FSourceNames[I].ProcName)), L2); + WriteValueOfs(AddWord(MapStringCacheToStr(FSourceNames[I].ProcName)), L2); end; WriteValue(MaxInt); @@ -2463,7 +2506,7 @@ begin WriteValueOfs(FProcNames[I].VA, L1); // MAP files generated by C++Builder have spaces in their names - S := MapStringToStr(FProcNames[I].ProcName, True); + S := MapStringCacheToStr(FProcNames[I].ProcName, True); D := Pos('.', S); if D = 1 then begin This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-10-25 14:46:24
|
Revision: 3394 http://jcl.svn.sourceforge.net/jcl/?rev=3394&view=rev Author: outchy Date: 2010-10-25 14:46:18 +0000 (Mon, 25 Oct 2010) Log Message: ----------- Mantis 5185: TJclPeImage do not see exported anonymous functions. Modified Paths: -------------- trunk/jcl/source/windows/JclPeImage.pas Modified: trunk/jcl/source/windows/JclPeImage.pas =================================================================== --- trunk/jcl/source/windows/JclPeImage.pas 2010-10-25 09:47:06 UTC (rev 3393) +++ trunk/jcl/source/windows/JclPeImage.pas 2010-10-25 14:46:18 UTC (rev 3394) @@ -2262,7 +2262,7 @@ procedure TJclPeExportFuncList.CreateList; var Functions: Pointer; - Address: DWORD; + Address, NameCount: DWORD; NameOrdinals: PWORD; Names: PDWORD; I: Integer; @@ -2288,10 +2288,12 @@ Functions := RvaToVa(FExportDir^.AddressOfFunctions); NameOrdinals := RvaToVa(FExportDir^.AddressOfNameOrdinals); Names := RvaToVa(FExportDir^.AddressOfNames); - Count := FExportDir^.NumberOfNames; - for I := 0 to FExportDir^.NumberOfNames - 1 do + NameCount := FExportDir^.NumberOfNames; + Count := FExportDir^.NumberOfFunctions; + + for I := 0 to Count - 1 do begin - Address := PDWORD(TJclAddr(Functions) + NameOrdinals^ * SizeOf(DWORD))^; + Address := PDWORD(TJclAddr(Functions) + TJclAddr(I) * SizeOf(DWORD))^; if (Address >= ExportVABegin) and (Address <= ExportVAEnd) then begin FAnyForwards := True; @@ -2302,13 +2304,23 @@ else ForwardedName := ''; + ExportItem := TJclPeExportFuncItem.Create(Self, '', + ForwardedName, Address, $FFFF, TJclAddr(I) + FBase, icNotChecked); + + List^[I] := ExportItem; + end; + + for I := 0 to NameCount - 1 do + begin + // named function UTF8Name := PAnsiChar(RvaToVa(Names^)); if not TryUTF8ToString(UTF8Name, ExportName) then ExportName := string(UTF8Name); - ExportItem := TJclPeExportFuncItem.Create(Self, ExportName, - ForwardedName, Address, I, DWORD(NameOrdinals^) + FBase, icNotChecked); - List^[I] := ExportItem; + ExportItem := TJclPeExportFuncItem(List^[NameOrdinals^]); + ExportItem.FName := ExportName; + ExportItem.FHint := I; + Inc(NameOrdinals); Inc(Names); end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2010-10-25 09:47:13
|
Revision: 3393 http://jcl.svn.sourceforge.net/jcl/?rev=3393&view=rev Author: outchy Date: 2010-10-25 09:47:06 +0000 (Mon, 25 Oct 2010) Log Message: ----------- use AnsiLineBreak rather than sLineBreak. Modified Paths: -------------- trunk/jcl/source/common/JclAnsiStrings.pas Modified: trunk/jcl/source/common/JclAnsiStrings.pas =================================================================== --- trunk/jcl/source/common/JclAnsiStrings.pas 2010-10-25 09:40:15 UTC (rev 3392) +++ trunk/jcl/source/common/JclAnsiStrings.pas 2010-10-25 09:47:06 UTC (rev 3393) @@ -904,9 +904,9 @@ begin Result := ''; for I := 0 to Count - 2 do - Result := Result + Strings[I] + sLineBreak; + Result := Result + Strings[I] + AnsiLineBreak; if Count > 0 then - Result := Result + Strings[Count - 1] + sLineBreak; + Result := Result + Strings[Count - 1] + AnsiLineBreak; end; procedure TJclAnsiStrings.SetText(const Value: AnsiString); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |