|
1
|
|
|
2
|
This directory contains a Pascal (Delphi, Kylix) interface to the |
|
3
|
zlib data compression library. |
|
4
|
|
|
5
|
|
|
6
|
Directory listing |
|
7
|
================= |
|
8
|
|
|
9
|
zlibd32.mak makefile for Borland C++ |
|
10
|
example.pas usage example of zlib |
|
11
|
zlibpas.pas the Pascal interface to zlib |
|
12
|
readme.txt this file |
|
13
|
|
|
14
|
|
|
15
|
Compatibility notes |
|
16
|
=================== |
|
17
|
|
|
18
|
- Although the name "zlib" would have been more normal for the |
|
19
|
zlibpas unit, this name is already taken by Borland's ZLib unit. |
|
20
|
This is somehow unfortunate, because that unit is not a genuine |
|
21
|
interface to the full-fledged zlib functionality, but a suite of |
|
22
|
class wrappers around zlib streams. Other essential features, |
|
23
|
such as checksums, are missing. |
|
24
|
It would have been more appropriate for that unit to have a name |
|
25
|
like "ZStreams", or something similar. |
|
26
|
|
|
27
|
- The C and zlib-supplied types int, uInt, long, uLong, etc. are |
|
28
|
translated directly into Pascal types of similar sizes (Integer, |
|
29
|
LongInt, etc.), to avoid namespace pollution. In particular, |
|
30
|
there is no conversion of unsigned int into a Pascal unsigned |
|
31
|
integer. The Word type is non-portable and has the same size |
|
32
|
(16 bits) both in a 16-bit and in a 32-bit environment, unlike |
|
33
|
Integer. Even if there is a 32-bit Cardinal type, there is no |
|
34
|
real need for unsigned int in zlib under a 32-bit environment. |
|
35
|
|
|
36
|
- Except for the callbacks, the zlib function interfaces are |
|
37
|
assuming the calling convention normally used in Pascal |
|
38
|
(__pascal for DOS and Windows16, __fastcall for Windows32). |
|
39
|
Since the cdecl keyword is used, the old Turbo Pascal does |
|
40
|
not work with this interface. |
|
41
|
|
|
42
|
- The gz* function interfaces are not translated, to avoid |
|
43
|
interfacing problems with the C runtime library. Besides, |
|
44
|
gzprintf(gzFile file, const char *format, ...) |
|
45
|
cannot be translated into Pascal. |
|
46
|
|
|
47
|
|
|
48
|
Legal issues |
|
49
|
============ |
|
50
|
|
|
51
|
The zlibpas interface is: |
|
52
|
Copyright (C) 1995-2003 Jean-loup Gailly and Mark Adler. |
|
53
|
Copyright (C) 1998 by Bob Dellaca. |
|
54
|
Copyright (C) 2003 by Cosmin Truta. |
|
55
|
|
|
56
|
The example program is: |
|
57
|
Copyright (C) 1995-2003 by Jean-loup Gailly. |
|
58
|
Copyright (C) 1998,1999,2000 by Jacques Nomssi Nzali. |
|
59
|
Copyright (C) 2003 by Cosmin Truta. |
|
60
|
|
|
61
|
This software is provided 'as-is', without any express or implied |
|
62
|
warranty. In no event will the author be held liable for any damages |
|
63
|
arising from the use of this software. |
|
64
|
|
|
65
|
Permission is granted to anyone to use this software for any purpose, |
|
66
|
including commercial applications, and to alter it and redistribute it |
|
67
|
freely, subject to the following restrictions: |
|
68
|
|
|
69
|
1. The origin of this software must not be misrepresented; you must not |
|
70
|
claim that you wrote the original software. If you use this software |
|
71
|
in a product, an acknowledgment in the product documentation would be |
|
72
|
appreciated but is not required. |
|
73
|
2. Altered source versions must be plainly marked as such, and must not be |
|
74
|
misrepresented as being the original software. |
|
75
|
3. This notice may not be removed or altered from any source distribution. |
|
76
|
|
|
77
|
|