Slow and undone code in ziputils.pas and zipper.pp from PasZLib package

ziputils.pas Looks like code for work with streams will not use/work coz file have definitions:

interface

{$undef UseStream}

{$ifdef WIN32}
  {$define Delphi}
  {$ifdef UseStream}
    {$define Streams}
  {$endif}
{$endif}

//uses  Classes, SysUtils;

zipper.pp I got VERY SLOW work when i tried to unpack some files 1 by 1. Discovering shows what UnZipFile function calls lot of similar overloads: UnZipFile -> UnZipFiles -> UnZipAllFiles with file list creation even for single file. And UnZipAllFiles function have another slowliness: line 2918: ReadZipDirectory, recreate zip files directory even if it didn't changed line 2920: FTotSize := CalcTotalSize(AllFiles); doing lot of useless operations in case of single file and useless (didn't call) at all in case of FOnProgressEx is not assigned.

Edited by Awkward