Bladeren bron

Merged revisions 4220 via svnmerge from
svn+ssh://svn.freepascal.org/FPC/svn/fpc/trunk

........
r4220 | michael | 2006-07-16 12:13:14 +0200 (Sun, 16 Jul 2006) | 1 line

+ Added SkipHeader parameter to compression stream creator. Allows to create zip files
........

git-svn-id: branches/fixes_2_0@4221 -

michael 19 jaren geleden
bovenliggende
commit
67fc02a9aa
1 gewijzigde bestanden met toevoegingen van 7 en 4 verwijderingen
  1. 7 4
      fcl/inc/zstream.pp

+ 7 - 4
fcl/inc/zstream.pp

@@ -30,7 +30,7 @@ interface
 uses
   Sysutils, Classes
 {$ifdef usepaszlib}
-  ,paszlib
+  ,paszlib,zbase
 {$else}
   ,zlib
 {$endif}
@@ -66,7 +66,7 @@ type
     procedure CompressBuf(const InBuf: Pointer; InBytes: Integer;
                           var OutBuf: Pointer; var OutBytes: Integer);
   public
-    constructor Create(CompressionLevel: TCompressionLevel; Dest: TStream);
+    constructor Create(CompressionLevel: TCompressionLevel; Dest: TStream; ASkipHeader : Boolean = False);
     destructor Destroy; override;
     function Read(var Buffer; Count: Longint): Longint; override;
     function Write(const Buffer; Count: Longint): Longint; override;
@@ -212,7 +212,7 @@ end;
 // TCompressionStream
 
 constructor TCompressionStream.Create(CompressionLevel: TCompressionLevel;
-  Dest: TStream);
+  Dest: TStream; ASkipHeader : Boolean = False);
 const
   Levels: array [TCompressionLevel] of ShortInt =
     (Z_NO_COMPRESSION, Z_BEST_SPEED, Z_DEFAULT_COMPRESSION, Z_BEST_COMPRESSION);
@@ -220,7 +220,10 @@ begin
   inherited Create(Dest);
   FZRec.next_out := @FBuffer;
   FZRec.avail_out := sizeof(FBuffer);
-  CompressionCheck(deflateInit(FZRec, Levels[CompressionLevel]));
+  If ASkipHeader then
+    CompressionCheck(deflateInit2(FZRec, Levels[CompressionLevel],Z_DEFLATED, -MAX_WBITS, DEF_MEM_LEVEL, 0))
+  else
+    CompressionCheck(deflateInit(FZRec, Levels[CompressionLevel]));
 end;
 
 destructor TCompressionStream.Destroy;