interface
-uses Windows, ActiveX, Classes, Graphics, OleCtrls, StdVCL;
+uses
+ Windows{, ActiveX, Classes, Graphics, OleCtrls, StdVCL};
// *********************************************************************//
// GUIDS declared in the TypeLibrary. Following prefixes are used: //
interface
uses
- ComObj, ActiveX, UnpackDFMLib_TLB;
+ ComObj, UnpackDFMLib_TLB;
type
TWinMergeScript = class(TAutoObject, IWinMergeScript)
implementation
-uses ComServ, SysUtils, Dialogs, Classes;
+uses
+ ComServ, SysUtils, Classes;
function TWinMergeScript.Get_PluginDescription : WideString;
begin
// ------------------------------------------------------------------
function TWinMergeScript.UnpackFile(const fileSrc, fileDst : WideString;
var pChanged : WordBool; var pSubcode : Integer) : WordBool;
+const
+ FilerSignature = integer($30465054); // 'TPF0'
+ ResSignature = integer($00000AFF); // FF 04 00
var
- src : TFileStream;
- dst : TFileStream;
+ src: TFileStream;
+ dst: TFileStream;
+ Signature: Integer;
begin
+ result := false;
+ pChanged := false;
try
src := TFileStream.Create(fileSrc, fmOpenRead);
try
- dst := TFileStream.Create(fileDst, fmCreate);
- try
- ObjectResourceToText(src, dst);
- finally
- dst.Free;
+ //if (TestStreamFormat(src) = sofBinary) then begin
+ src.Read(Signature, SizeOf(Signature));
+ if (Signature = FilerSignature) or (Signature and $00FFFFFF = ResSignature) then begin
+ src.Seek(0, soFromBeginning);
+ dst := TFileStream.Create(fileDst, fmCreate);
+ try
+ ObjectResourceToText(src, dst);
+ pChanged := true;
+ finally
+ dst.Free;
+ end;
end;
+ result := true;
finally
src.Free;
end;
- pChanged := true;
- result := true;
except
- pChanged := false;
- result := false;
end;
end;
src new files: WMGotoDlg.h WMGotoDlg.cpp
src: Merge.dsp Merge.rc MergeEditView.h MergeEditView.cpp resource.h
src/Languages: *.rc resource.h
+ PATCH: [ 872413 ] UnpackDFM TestStreamFormat
+ Submitted by Michael Richter
+ Plugins/Delphi/UnpackFDM: UnpackFDM.dpr UnpackFDMLib_TLB.pas
+ WinMergeUnit.pas
+ Plugins/dlls: UnpackFDM.dll
2004-01-17 Kimmo
PATCH: [ 871789 ] Add "Copy to..." items to dirview context menu