File Annotation

Not logged in
c2b7a98c21 2011-02-23        kinaba: module libbz2.bzlib;
c2b7a98c21 2011-02-23        kinaba: private import std.c.stdio;
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba: //----------------------------------------------------------------
c2b7a98c21 2011-02-23        kinaba: // bzlib.d :
c2b7a98c21 2011-02-23        kinaba: //   manually translated from "bzlib.h" to d header module.
c2b7a98c21 2011-02-23        kinaba: //                                       2004/08/19 k.inaba
c2b7a98c21 2011-02-23        kinaba: //----------------------------------------------------------------
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba: //       VVV   original copyright notice of "bzlib.h" VVV       //
c2b7a98c21 2011-02-23        kinaba: /*--
c2b7a98c21 2011-02-23        kinaba:   This file is a part of bzip2 and/or libbzip2, a program and
c2b7a98c21 2011-02-23        kinaba:   library for lossless, block-sorting data compression.
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba:   Copyright (C) 1996-2002 Julian R Seward.  All rights reserved.
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba:   Redistribution and use in source and binary forms, with or without
c2b7a98c21 2011-02-23        kinaba:   modification, are permitted provided that the following conditions
c2b7a98c21 2011-02-23        kinaba:   are met:
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba:   1. Redistributions of source code must retain the above copyright
c2b7a98c21 2011-02-23        kinaba:      notice, this list of conditions and the following disclaimer.
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba:   2. The origin of this software must not be misrepresented; you must
c2b7a98c21 2011-02-23        kinaba:      not claim that you wrote the original software.  If you use this
c2b7a98c21 2011-02-23        kinaba:      software in a product, an acknowledgment in the product
c2b7a98c21 2011-02-23        kinaba:      documentation would be appreciated but is not required.
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba:   3. Altered source versions must be plainly marked as such, and must
c2b7a98c21 2011-02-23        kinaba:      not be misrepresented as being the original software.
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba:   4. The name of the author may not be used to endorse or promote
c2b7a98c21 2011-02-23        kinaba:      products derived from this software without specific prior written
c2b7a98c21 2011-02-23        kinaba:      permission.
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba:   THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
c2b7a98c21 2011-02-23        kinaba:   OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
c2b7a98c21 2011-02-23        kinaba:   WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
c2b7a98c21 2011-02-23        kinaba:   ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
c2b7a98c21 2011-02-23        kinaba:   DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
c2b7a98c21 2011-02-23        kinaba:   DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
c2b7a98c21 2011-02-23        kinaba:   GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
c2b7a98c21 2011-02-23        kinaba:   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
c2b7a98c21 2011-02-23        kinaba:   WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
c2b7a98c21 2011-02-23        kinaba:   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
c2b7a98c21 2011-02-23        kinaba:   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba:   Julian Seward, Cambridge, UK.
c2b7a98c21 2011-02-23        kinaba:   jseward@acm.org
c2b7a98c21 2011-02-23        kinaba:   bzip2/libbzip2 version 1.0 of 21 March 2000
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba:   This program is based on (at least) the work of:
c2b7a98c21 2011-02-23        kinaba:      Mike Burrows
c2b7a98c21 2011-02-23        kinaba:      David Wheeler
c2b7a98c21 2011-02-23        kinaba:      Peter Fenwick
c2b7a98c21 2011-02-23        kinaba:      Alistair Moffat
c2b7a98c21 2011-02-23        kinaba:      Radford Neal
c2b7a98c21 2011-02-23        kinaba:      Ian H. Witten
c2b7a98c21 2011-02-23        kinaba:      Robert Sedgewick
c2b7a98c21 2011-02-23        kinaba:      Jon L. Bentley
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba:   For more information on these sources, see the manual.
c2b7a98c21 2011-02-23        kinaba: --*/
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba: enum
c2b7a98c21 2011-02-23        kinaba: {
c2b7a98c21 2011-02-23        kinaba: 	BZ_RUN    = 0,
c2b7a98c21 2011-02-23        kinaba: 	BZ_FLUSH  = 1,
c2b7a98c21 2011-02-23        kinaba: 	BZ_FINISH = 2,
c2b7a98c21 2011-02-23        kinaba: }
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba: enum
c2b7a98c21 2011-02-23        kinaba: {
c2b7a98c21 2011-02-23        kinaba: 	BZ_OK                = 0,
c2b7a98c21 2011-02-23        kinaba: 	BZ_RUN_OK            = 1,
c2b7a98c21 2011-02-23        kinaba: 	BZ_FLUSH_OK          = 2,
c2b7a98c21 2011-02-23        kinaba: 	BZ_FINISH_OK         = 3,
c2b7a98c21 2011-02-23        kinaba: 	BZ_STREAM_END        = 4,
c2b7a98c21 2011-02-23        kinaba: 	BZ_SEQUENCE_ERROR    = (-1),
c2b7a98c21 2011-02-23        kinaba: 	BZ_PARAM_ERROR       = (-2),
c2b7a98c21 2011-02-23        kinaba: 	BZ_MEM_ERROR         = (-3),
c2b7a98c21 2011-02-23        kinaba: 	BZ_DATA_ERROR        = (-4),
c2b7a98c21 2011-02-23        kinaba: 	BZ_DATA_ERROR_MAGIC  = (-5),
c2b7a98c21 2011-02-23        kinaba: 	BZ_IO_ERROR          = (-6),
c2b7a98c21 2011-02-23        kinaba: 	BZ_UNEXPECTED_EOF    = (-7),
c2b7a98c21 2011-02-23        kinaba: 	BZ_OUTBUFF_FULL      = (-8),
c2b7a98c21 2011-02-23        kinaba: 	BZ_CONFIG_ERROR      = (-9),
c2b7a98c21 2011-02-23        kinaba: }
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba: struct bz_stream
c2b7a98c21 2011-02-23        kinaba: {
c2b7a98c21 2011-02-23        kinaba:     char *next_in;
c2b7a98c21 2011-02-23        kinaba:     uint avail_in;
c2b7a98c21 2011-02-23        kinaba:     uint total_in_lo32;
c2b7a98c21 2011-02-23        kinaba:     uint total_in_hi32;
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba:     char *next_out;
c2b7a98c21 2011-02-23        kinaba:     uint avail_out;
c2b7a98c21 2011-02-23        kinaba:     uint total_out_lo32;
c2b7a98c21 2011-02-23        kinaba:     uint total_out_hi32;
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba:     void *state;
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba:     void *(*bzalloc)(void *,int,int);
c2b7a98c21 2011-02-23        kinaba:     void (*bzfree)(void *,void *);
c2b7a98c21 2011-02-23        kinaba:     void *opaque;
c2b7a98c21 2011-02-23        kinaba: }
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba: extern(Windows)
c2b7a98c21 2011-02-23        kinaba: {
c2b7a98c21 2011-02-23        kinaba: /*-- Core (low-level) library functions --*/
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba: 	int BZ2_bzCompressInit(
c2b7a98c21 2011-02-23        kinaba: 	      bz_stream* strm,
c2b7a98c21 2011-02-23        kinaba: 	      int        blockSize100k,
c2b7a98c21 2011-02-23        kinaba: 	      int        verbosity,
c2b7a98c21 2011-02-23        kinaba: 	      int        workFactor
c2b7a98c21 2011-02-23        kinaba: 	   );
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba: 	int BZ2_bzCompress(
c2b7a98c21 2011-02-23        kinaba: 	      bz_stream* strm,
c2b7a98c21 2011-02-23        kinaba: 	      int action
c2b7a98c21 2011-02-23        kinaba: 	   );
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba: 	int BZ2_bzCompressEnd(
c2b7a98c21 2011-02-23        kinaba: 	      bz_stream* strm
c2b7a98c21 2011-02-23        kinaba: 	   );
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba: 	int BZ2_bzDecompressInit(
c2b7a98c21 2011-02-23        kinaba: 	      bz_stream *strm,
c2b7a98c21 2011-02-23        kinaba: 	      int       verbosity,
c2b7a98c21 2011-02-23        kinaba: 	      int       small
c2b7a98c21 2011-02-23        kinaba: 	   );
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba: 	int BZ2_bzDecompress(
c2b7a98c21 2011-02-23        kinaba: 	      bz_stream* strm
c2b7a98c21 2011-02-23        kinaba: 	   );
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba: 	int BZ2_bzDecompressEnd(
c2b7a98c21 2011-02-23        kinaba: 	      bz_stream *strm
c2b7a98c21 2011-02-23        kinaba: 	   );
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba: /*-- High(er) level library functions --*/
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba: 	enum { BZ_MAX_UNUSED = 5000 }
c2b7a98c21 2011-02-23        kinaba: 	alias void BZFILE;
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba: 	BZFILE* BZ2_bzReadOpen(
c2b7a98c21 2011-02-23        kinaba: 	      int*  bzerror,
c2b7a98c21 2011-02-23        kinaba: 	      FILE* f,
c2b7a98c21 2011-02-23        kinaba: 	      int   verbosity,
c2b7a98c21 2011-02-23        kinaba: 	      int   small,
c2b7a98c21 2011-02-23        kinaba: 	      void* unused,
c2b7a98c21 2011-02-23        kinaba: 	      int   nUnused
c2b7a98c21 2011-02-23        kinaba: 	   );
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba: 	void BZ2_bzReadClose(
c2b7a98c21 2011-02-23        kinaba: 	      int*    bzerror,
c2b7a98c21 2011-02-23        kinaba: 	      BZFILE* b
c2b7a98c21 2011-02-23        kinaba: 	   );
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba: 	void BZ2_bzReadGetUnused(
c2b7a98c21 2011-02-23        kinaba: 	      int*    bzerror,
c2b7a98c21 2011-02-23        kinaba: 	      BZFILE* b,
c2b7a98c21 2011-02-23        kinaba: 	      void**  unused,
c2b7a98c21 2011-02-23        kinaba: 	      int*    nUnused
c2b7a98c21 2011-02-23        kinaba: 	   );
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba: 	int BZ2_bzRead(
c2b7a98c21 2011-02-23        kinaba: 	      int*    bzerror,
c2b7a98c21 2011-02-23        kinaba: 	      BZFILE* b,
c2b7a98c21 2011-02-23        kinaba: 	      void*   buf,
c2b7a98c21 2011-02-23        kinaba: 	      int     len
c2b7a98c21 2011-02-23        kinaba: 	   );
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba: 	BZFILE* BZ2_bzWriteOpen(
c2b7a98c21 2011-02-23        kinaba: 	      int*  bzerror,
c2b7a98c21 2011-02-23        kinaba: 	      FILE* f,
c2b7a98c21 2011-02-23        kinaba: 	      int   blockSize100k,
c2b7a98c21 2011-02-23        kinaba: 	      int   verbosity,
c2b7a98c21 2011-02-23        kinaba: 	      int   workFactor
c2b7a98c21 2011-02-23        kinaba: 	   );
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba: 	void BZ2_bzWrite(
c2b7a98c21 2011-02-23        kinaba: 	      int*    bzerror,
c2b7a98c21 2011-02-23        kinaba: 	      BZFILE* b,
c2b7a98c21 2011-02-23        kinaba: 	      void*   buf,
c2b7a98c21 2011-02-23        kinaba: 	      int     len
c2b7a98c21 2011-02-23        kinaba: 	   );
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba: 	void BZ2_bzWriteClose(
c2b7a98c21 2011-02-23        kinaba: 	      int*          bzerror,
c2b7a98c21 2011-02-23        kinaba: 	      BZFILE*       b,
c2b7a98c21 2011-02-23        kinaba: 	      int           abandon,
c2b7a98c21 2011-02-23        kinaba: 	      uint*         nbytes_in,
c2b7a98c21 2011-02-23        kinaba: 	      uint*         nbytes_out
c2b7a98c21 2011-02-23        kinaba: 	   );
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba: 	void BZ2_bzWriteClose64(
c2b7a98c21 2011-02-23        kinaba: 	      int*          bzerror,
c2b7a98c21 2011-02-23        kinaba: 	      BZFILE*       b,
c2b7a98c21 2011-02-23        kinaba: 	      int           abandon,
c2b7a98c21 2011-02-23        kinaba: 	      uint*         nbytes_in_lo32,
c2b7a98c21 2011-02-23        kinaba: 	      uint*         nbytes_in_hi32,
c2b7a98c21 2011-02-23        kinaba: 	      uint*         nbytes_out_lo32,
c2b7a98c21 2011-02-23        kinaba: 	      uint*         nbytes_out_hi32
c2b7a98c21 2011-02-23        kinaba: 	   );
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba: /*-- Utility functions --*/
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba: 	int BZ2_bzBuffToBuffCompress(
c2b7a98c21 2011-02-23        kinaba: 	      char*         dest,
c2b7a98c21 2011-02-23        kinaba: 	      uint*         destLen,
c2b7a98c21 2011-02-23        kinaba: 	      char*         source,
c2b7a98c21 2011-02-23        kinaba: 	      uint          sourceLen,
c2b7a98c21 2011-02-23        kinaba: 	      int           blockSize100k,
c2b7a98c21 2011-02-23        kinaba: 	      int           verbosity,
c2b7a98c21 2011-02-23        kinaba: 	      int           workFactor
c2b7a98c21 2011-02-23        kinaba: 	   );
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba: 	int BZ2_bzBuffToBuffDecompress(
c2b7a98c21 2011-02-23        kinaba: 	      char*         dest,
c2b7a98c21 2011-02-23        kinaba: 	      uint*         destLen,
c2b7a98c21 2011-02-23        kinaba: 	      char*         source,
c2b7a98c21 2011-02-23        kinaba: 	      int           sourceLen,
c2b7a98c21 2011-02-23        kinaba: 	      int           small,
c2b7a98c21 2011-02-23        kinaba: 	      int           verbosity
c2b7a98c21 2011-02-23        kinaba: 	   );
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba: /*--
c2b7a98c21 2011-02-23        kinaba:    Code contributed by Yoshioka Tsuneo
c2b7a98c21 2011-02-23        kinaba:    (QWF00133@niftyserve.or.jp/tsuneo-y@is.aist-nara.ac.jp),
c2b7a98c21 2011-02-23        kinaba:    to support better zlib compatibility.
c2b7a98c21 2011-02-23        kinaba:    This code is not _officially_ part of libbzip2 (yet);
c2b7a98c21 2011-02-23        kinaba:    I haven't tested it, documented it, or considered the
c2b7a98c21 2011-02-23        kinaba:    threading-safeness of it.
c2b7a98c21 2011-02-23        kinaba:    If this code breaks, please contact both Yoshioka and me.
c2b7a98c21 2011-02-23        kinaba: --*/
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba: 	char* BZ2_bzlibVersion(
c2b7a98c21 2011-02-23        kinaba: 	   );
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba: 	BZFILE * BZ2_bzopen(
c2b7a98c21 2011-02-23        kinaba: 	      char *path,
c2b7a98c21 2011-02-23        kinaba: 	      char *mode
c2b7a98c21 2011-02-23        kinaba: 	   );
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba: 	BZFILE * BZ2_bzdopen(
c2b7a98c21 2011-02-23        kinaba: 	      int        fd,
c2b7a98c21 2011-02-23        kinaba: 	      char *mode
c2b7a98c21 2011-02-23        kinaba: 	   );
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba: 	int BZ2_bzread(
c2b7a98c21 2011-02-23        kinaba: 	      BZFILE* b,
c2b7a98c21 2011-02-23        kinaba: 	      void* buf,
c2b7a98c21 2011-02-23        kinaba: 	      int len
c2b7a98c21 2011-02-23        kinaba: 	   );
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba: 	int BZ2_bzwrite(
c2b7a98c21 2011-02-23        kinaba: 	      BZFILE* b,
c2b7a98c21 2011-02-23        kinaba: 	      void*   buf,
c2b7a98c21 2011-02-23        kinaba: 	      int     len
c2b7a98c21 2011-02-23        kinaba: 	   );
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba: 	int BZ2_bzflush(
c2b7a98c21 2011-02-23        kinaba: 	      BZFILE* b
c2b7a98c21 2011-02-23        kinaba: 	   );
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba: 	void BZ2_bzclose(
c2b7a98c21 2011-02-23        kinaba: 	      BZFILE* b
c2b7a98c21 2011-02-23        kinaba: 	   );
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba: 	char * BZ2_bzerror(
c2b7a98c21 2011-02-23        kinaba: 	      BZFILE *b,
c2b7a98c21 2011-02-23        kinaba: 	      int    *errnum
c2b7a98c21 2011-02-23        kinaba: 	   );
c2b7a98c21 2011-02-23        kinaba: }