w1146869587
2022-03-04 2efb30bdc5c62273d77443180aba586f64c097f9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
/**
 * \mainpage QuaZIP - Qt/C++ wrapper for ZIP/UNZIP package
 *
\htmlonly
<a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=142688&amp;type=7" style="width:210; height:62; border:none; float:right;" alt="Powered by SourceForge.net" /></a>
\endhtmlonly
 * \section overview Overview
 * 
 * QuaZIP is a simple C++ wrapper over <a
 * href="http://www.winimage.com/zLibDll/minizip.html">Gilles Vollant's ZIP/UNZIP
 * package</a> that can be used to access ZIP archives. It uses <a
 * href="http://qt.digia.com/">the Qt toolkit</a>.
 *
 * If you do not know what Qt is, you have two options:
 * - Just forget about QuaZIP.
 * - Learn more about Qt by downloading it and/or reading the excellent <a
 *   href="http://qt-project.org/doc/">official Qt documentation</a>
 *
 * The choice is yours, but if you are really interested in
 * cross-platform (Windows/Linux/BSD/UNIX/Mac/Others) software
 * development, I would definitely recommend you the latter ^_^
 *
 * QuaZIP allows you to access files inside ZIP archives using QIODevice
 * API, and - yes! - that means that you can also use QTextStream,
 * QDataStream or whatever you would like to use on your zipped files.
 *
 * QuaZIP provides complete abstraction of the ZIP/UNZIP API, for both
 * reading from and writing to ZIP archives.
 *
 * \section download Download QuaZIP
 *
 * Downloads are available from <a
 * href="http://sourceforge.net/projects/quazip/">QuaZIP project's page
 * at SourceForge.net</a>.
 *
 * \section platforms Platforms supported
 *
 * QuaZIP has been currently tested on the following platforms:
 * - linux-g++ (Ubuntu 11.10, Qt 4.7.4)
 * - freebsd-g++ (Qt 4.0.0
 * - hpux-acc (HP-UX 11.11)
 * - hpux-g++ (HP-UX 11.11)
 * - win32-g++ (MinGW)
 * - win32-msvc2010 (MS VS 2010 Express, Qt 4.8.4)
 * - win32-msvc2010 (Qt Creator, Qt 5.0.1)
 * - win32-msvc2012 (Qt Creator, Qt 5.2.0)
 * - some Symbian version, reportedly
 * 
 * No testing has been officially done on other systems. Of course, patches to
 * make it work on any platform that it currently does not work on are
 * always welcome!
 *
 * \section whats-new What is new in this version of QuaZIP?
 *
 * See the NEWS.txt file supplied with the distribution.
 *
 * \section Requirements
 *
 * Just <a href="http://www.zlib.org/">zlib</a> and Qt 4/5. Well, Qt 4
 * depends on zlib anyway, but you will need zlib headers to compile
 * QuaZIP. With Qt5 sometimes you need the zlib library as well (on
 * Windows, for example).
 *
 * \section building Building, testing and installing
 *
 * \note Instructions given in this section assume that you are
 * using some UNIX dialect, but the build process should be very similar
 * on win32-g++ platform too. On other platforms it's essentially the
 * same process, maybe with some qmake adjustments not specific to
 * QuaZIP itself.
 *
 * To build the library, run:
\verbatim
$ cd /wherever/quazip/source/is/quazip-x.y.z/quazip
$ qmake [PREFIX=where-to-install]
$ make
\endverbatim
 *
 * Make sure that you have Qt 4/5 installed with all required headers and
 * utilities (that is, including the 'dev' or 'devel' package on Linux)
 * and that you run qmake utility of the Qt 4, not some other version
 * you may have already installed (you may need to type full path to
 * qmake like /usr/local/qt4/bin/qmake).
 *
 * To reconfigure (with another PREFIX, for example), just run qmake
 * with appropriate arguments again.
 *
 * If you need to specify additional include path or libraries, use
 * qmake features (see qmake reference in the Qt documentation). For
 * example:
 *
\verbatim
$ qmake LIBS+=-L/usr/local/zlib/lib INCLUDEPATH+=/usr/local/zlib/include
\endverbatim
 * (note abscence of "-I" before the include path and the presence of "-L"
 * before the lib path)
 *
 * Also note that you may or may not need to define ZLIB_WINAPI (qmake
 * DEFINES+=ZLIB_WINAPI) when linking to zlib on Windows, depending on
 * how zlib was built (generally, if using zlibwapi.dll, this define is
 * needed).
 *
 * To install compiled library:
\verbatim
$ make install
\endverbatim
 *
 * By default, QuaZIP compiles as a DLL/SO, but you have other
 * options:
 * - Just copy appropriate source files to your project and use them,
 * but you need to define QUAZIP_STATIC before including any QuaZIP
 * headers (best done as a compiler option). This will save you from
 * possible side effects of importing/exporting QuaZIP symbols.
 * - Compile it as a static library using CONFIG += staticlib qmake
 * option. QUAZIP_STATIC is defined automatically by qmake in this case.
 *
 * Binary compatibility is guaranteed between minor releases starting
 * with version 0.5, thanks to the Pimpl idiom. That is, the next binary
 * incompatible version will be 1.x.
 *
 * \section test Testing
 *
 * To check if QuaZIP's basic features work OK on your platform, you may
 * wish to compile the test suite provided in test directory:
\verbatim
$ cd /wherever/quazip/source/is/quazip-x.y.z/qztest
$ qmake
$ make
$ ./qztest
\endverbatim
 *
 * Note that the test suite looks for the quazip library in the "quazip"
 * folder of the project ("../quazip"), but you may wish to use LIBS
 * for some systems (Windows often puts the library in the separate
 * "debug" or "release" directory). If you wish to use the quazip
 * version that's already installed, provide the appropriate path.
 *
 * On some systems you may need to set PATH, LD_LIBRARY_PATH or
 * SHLIB_PATH to get "qztest" to actually run.
 *
 * If everything went fine, the test suite should report a lot of PASS
 * messages. If something goes wrong, it will provide details and a
 * warning that some tests failed.
 *
 * \section using Using
 *
 * See \ref usage "usage page".
 * 
 * \section contacts Authors and contacts
 *
 * This wrapper has been written by Sergey A. Tachenov, AKA Alqualos.
 * This is my first open source project, so it may suck, but I did not
 * find anything like that, so I just had no other choice but to write
 * it.
 *
 * If you have anything to say to me about QuaZIP library, feel free to
 * do so (read the \ref faq first, though). I can not promise,
 * though, that I fix all the bugs you report in, add any features you
 * want, or respond to your critics, or respond to your feedback at all.
 * I may be busy, I may be tired of working on QuaZIP, I may be even
 * dead already (you never know...).
 *
 * To report bugs or to post ideas about what should be done, use
 * SourceForge.net's <a
 * href="http://sourceforge.net/tracker/?group_id=142688">trackers</a>.
 * If you want to send me a private message, use my e-mail address
 * stachenov@gmail.com.
 *
 * Do not use e-mail to report bugs, please. Reporting bugs and problems
 * with the SourceForge.net's bug report system has that advantage that
 * it is visible to public, and I can always search for open tickets
 * that were created long ago. It is highly unlikely that I will search
 * my mail for that kind of stuff, so if a bug reported by mail isn't
 * fixed immediately, it will likely be forgotten forever.
 *
 * Copyright (C) 2005-2014 Sergey A. Tachenov and contributors
 **/