11.1Schristos 21.1SchristosThis directory contains a Pascal (Delphi, Kylix) interface to the 31.1Schristoszlib data compression library. 41.1Schristos 51.1Schristos 61.1SchristosDirectory listing 71.1Schristos================= 81.1Schristos 91.1Schristoszlibd32.mak makefile for Borland C++ 101.1Schristosexample.pas usage example of zlib 111.1Schristoszlibpas.pas the Pascal interface to zlib 121.1Schristosreadme.txt this file 131.1Schristos 141.1Schristos 151.1SchristosCompatibility notes 161.1Schristos=================== 171.1Schristos 181.1Schristos- Although the name "zlib" would have been more normal for the 191.1Schristos zlibpas unit, this name is already taken by Borland's ZLib unit. 201.1Schristos This is somehow unfortunate, because that unit is not a genuine 211.1Schristos interface to the full-fledged zlib functionality, but a suite of 221.1Schristos class wrappers around zlib streams. Other essential features, 231.1Schristos such as checksums, are missing. 241.1Schristos It would have been more appropriate for that unit to have a name 251.1Schristos like "ZStreams", or something similar. 261.1Schristos 271.1Schristos- The C and zlib-supplied types int, uInt, long, uLong, etc. are 281.1Schristos translated directly into Pascal types of similar sizes (Integer, 291.1Schristos LongInt, etc.), to avoid namespace pollution. In particular, 301.1Schristos there is no conversion of unsigned int into a Pascal unsigned 311.1Schristos integer. The Word type is non-portable and has the same size 321.1Schristos (16 bits) both in a 16-bit and in a 32-bit environment, unlike 331.1Schristos Integer. Even if there is a 32-bit Cardinal type, there is no 341.1Schristos real need for unsigned int in zlib under a 32-bit environment. 351.1Schristos 361.1Schristos- Except for the callbacks, the zlib function interfaces are 371.1Schristos assuming the calling convention normally used in Pascal 381.1Schristos (__pascal for DOS and Windows16, __fastcall for Windows32). 391.1Schristos Since the cdecl keyword is used, the old Turbo Pascal does 401.1Schristos not work with this interface. 411.1Schristos 421.1Schristos- The gz* function interfaces are not translated, to avoid 431.1Schristos interfacing problems with the C runtime library. Besides, 441.1Schristos gzprintf(gzFile file, const char *format, ...) 451.1Schristos cannot be translated into Pascal. 461.1Schristos 471.1Schristos 481.1SchristosLegal issues 491.1Schristos============ 501.1Schristos 511.1SchristosThe zlibpas interface is: 521.1Schristos Copyright (C) 1995-2003 Jean-loup Gailly and Mark Adler. 531.1Schristos Copyright (C) 1998 by Bob Dellaca. 541.1Schristos Copyright (C) 2003 by Cosmin Truta. 551.1Schristos 561.1SchristosThe example program is: 571.1Schristos Copyright (C) 1995-2003 by Jean-loup Gailly. 581.1Schristos Copyright (C) 1998,1999,2000 by Jacques Nomssi Nzali. 591.1Schristos Copyright (C) 2003 by Cosmin Truta. 601.1Schristos 611.1Schristos This software is provided 'as-is', without any express or implied 621.1Schristos warranty. In no event will the author be held liable for any damages 631.1Schristos arising from the use of this software. 641.1Schristos 651.1Schristos Permission is granted to anyone to use this software for any purpose, 661.1Schristos including commercial applications, and to alter it and redistribute it 671.1Schristos freely, subject to the following restrictions: 681.1Schristos 691.1Schristos 1. The origin of this software must not be misrepresented; you must not 701.1Schristos claim that you wrote the original software. If you use this software 711.1Schristos in a product, an acknowledgment in the product documentation would be 721.1Schristos appreciated but is not required. 731.1Schristos 2. Altered source versions must be plainly marked as such, and must not be 741.1Schristos misrepresented as being the original software. 751.1Schristos 3. This notice may not be removed or altered from any source distribution. 761.1Schristos 77