Files
itgmania212121/stepmania/src/RageFileDriverZip.h
T
Glenn Maynard 33a04b79de beginning GPL->X11 license transition
The conventions I'm using are to put the entire copyright notice at the bottom
of each file, and to put the summary of the source file's use at the top of the
header.

Putting the license text in each file avoids confusion, and is normal practice
for many projects.  Putting it at the bottom gets it out of the way; it's a
ton of clutter to put at the top.

The description is in the header.  People who don't know what a class is for,
or how to use it, are probably looking at the header to see the interface,
not the implementation, so let's put the description in there.  Keep it brief
(one line); any substantial implementation notes should go in the source file.
2004-05-06 00:42:06 +00:00

80 lines
3.6 KiB
C++

#ifndef RAGE_FILE_DRIVER_ZIP_H
#define RAGE_FILE_DRIVER_ZIP_H
#include "RageFileDriver.h"
struct FileInfo;
struct end_central_dir_record;
class RageFileDriverZip: public RageFileDriver
{
public:
RageFileDriverZip( CString path );
virtual ~RageFileDriverZip();
RageFileObj *Open( const CString &path, int mode, RageFile &p, int &err );
void FlushDirCache( const CString &sPath );
private:
RageFile zip;
vector<FileInfo *> Files;
void ParseZipfile();
static void ReadEndCentralRecord( RageFile &zip, end_central_dir_record &ec );
static int ProcessCdirFileHdr( RageFile &zip, FileInfo &info );
};
#endif
/*
* Copyright (c) 1990-2002 Info-ZIP. All rights reserved.
* Copyright (c) 2003-2004 Glenn Maynard. All rights reserved.
*
* For the purposes of this copyright and license, "Info-ZIP" is defined as
* the following set of individuals:
*
* Mark Adler, John Bush, Karl Davis, Harald Denker, Jean-Michel Dubois,
* Jean-loup Gailly, Hunter Goatley, Ian Gorman, Chris Herborth, Dirk Haase,
* Greg Hartwig, Robert Heath, Jonathan Hudson, Paul Kienitz, David Kirschbaum,
* Johnny Lee, Onno van der Linden, Igor Mandrichenko, Steve P. Miller,
* Sergio Monesi, Keith Owens, George Petrov, Greg Roelofs, Kai Uwe Rommel,
* Steve Salisbury, Dave Smith, Christian Spieler, Antoine Verheijen,
* Paul von Behren, Rich Wales, Mike White
*
* This software is provided "as is," without warranty of any kind, express
* or implied. In no event shall Info-ZIP or its contributors be held liable
* for any direct, indirect, incidental, special or consequential damages
* arising out of the use of or inability to use this software.
*
* Permission is granted to anyone to use this software for any purpose,
* including commercial applications, and to alter it and redistribute it
* freely, subject to the following restrictions:
*
* 1. Redistributions of source code must retain the above copyright notice,
* definition, disclaimer, and this list of conditions.
*
* 2. Redistributions in binary form (compiled executables) must reproduce
* the above copyright notice, definition, disclaimer, and this list of
* conditions in documentation and/or other materials provided with the
* distribution. The sole exception to this condition is redistribution
* of a standard UnZipSFX binary as part of a self-extracting archive;
* that is permitted without inclusion of this license, as long as the
* normal UnZipSFX banner has not been removed from the binary or disabled.
*
* 3. Altered versions--including, but not limited to, ports to new operating
* systems, existing ports with new graphical interfaces, and dynamic,
* shared, or static library versions--must be plainly marked as such
* and must not be misrepresented as being the original source. Such
* altered versions also must not be misrepresented as being Info-ZIP
* releases--including, but not limited to, labeling of the altered
* versions with the names "Info-ZIP" (or any variation thereof, including,
* but not limited to, different capitalizations), "Pocket UnZip," "WiZ"
* or "MacZip" without the explicit permission of Info-ZIP. Such altered
* versions are further prohibited from misrepresentative use of the
* Zip-Bugs or Info-ZIP e-mail addresses or of the Info-ZIP URL(s).
*
* 4. Info-ZIP retains the right to use the names "Info-ZIP," "Zip," "UnZip,"
* "UnZipSFX," "WiZ," "Pocket UnZip," "Pocket Zip," and "MacZip" for its
* own source and binary releases.
*/