ZLib support replacement
For the past few days, I have been working on a new ZLib header.
Previously, we had used ZLibEx. While this is an excellent package, we
decided that we could not use it. For the past few days, I have been
working on a replacement header and so far, I have verified that this does work
properly. The header is derived from a header I found in the ZLib standard distribution contrib/delphi folder
along with some enhancements from the Enhanced zlib package (Code Central ID: 23490). The
header I made has the following advantages:
- It exposes most functions from the zlib.h header file.
- The header should be able to work on Kylix with newer Linux distributions.
- The header uses the new InflateBackInit_, InflateBack, and InflateBackEnd
functions for decompressing streams. which is more efficient than using the
standard InflateInit_, InflateInit2_, Inflate, and InflateEnd functions.
- The decompress stream routine can work with GZIP, standard ZLib Deflate,
and raw deflate streams and can autodetect the appropriate type.
- It is compatible with Borland's ZLib.pas file.
- You can easily replace ZLib objs after building them from the standard
ZLib distribution using a make file that is provided in the package's
contrib\delphi folder. This means that the .obj files can be quickly
replaced if there is another Cert advisory effecting ZLib.
I know that this is quite a change. The class, TIdCompressorZLibEx, will not
be renamed for compatiability though it no longer uses ZLibEx.